summaryrefslogtreecommitdiff
authorumopapisdn <umopapisdn>2003-03-23 19:55:23 (UTC)
committer umopapisdn <umopapisdn>2003-03-23 19:55:23 (UTC)
commitdfa17505b14011b50822d50c925cc6aa0299b1b4 (patch) (side-by-side diff)
tree1445d0e8dcc4762cc93d666007564af0525aac37
parent46c09d5732bcac4de2be5dfbf17bee054aba9478 (diff)
downloadopie-dfa17505b14011b50822d50c925cc6aa0299b1b4.zip
opie-dfa17505b14011b50822d50c925cc6aa0299b1b4.tar.gz
opie-dfa17505b14011b50822d50c925cc6aa0299b1b4.tar.bz2
Bugfix: (bug #0000211) Events ending at midnight shouldn't be displayed at the following day. Fix for weekview.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebookweek.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/core/pim/datebook/datebookweek.cpp b/core/pim/datebook/datebookweek.cpp
index e30c776..5bbf86a 100644
--- a/core/pim/datebook/datebookweek.cpp
+++ b/core/pim/datebook/datebookweek.cpp
@@ -90,104 +90,106 @@ DateBookWeekView::DateBookWeekView( bool ap, bool startOnMonday,
void DateBookWeekView::initNames()
{
static bool bFirst = true;
if ( bFirst ) {
if ( bOnMonday ) {
header->addLabel( tr("M", "Monday" ) );
header->addLabel( tr("T", "Tuesday") );
header->addLabel( tr("W", "Wednesday" ) );
header->addLabel( tr("T", "Thursday" ) );
header->addLabel( tr("F", "Friday" ) );
header->addLabel( tr("S", "Saturday" ) );
header->addLabel( tr("S", "Sunday" ) );
} else {
header->addLabel( tr("S", "Sunday" ) );
header->addLabel( tr("M", "Monday") );
header->addLabel( tr("T", "Tuesday") );
header->addLabel( tr("W", "Wednesday" ) );
header->addLabel( tr("T", "Thursday" ) );
header->addLabel( tr("F", "Friday" ) );
header->addLabel( tr("S", "Saturday" ) );
}
bFirst = false;
} else {
// we are change things...
if ( bOnMonday ) {
header->setLabel( 1, tr("M", "Monday") );
header->setLabel( 2, tr("T", "Tuesday") );
header->setLabel( 3, tr("W", "Wednesday" ) );
header->setLabel( 4, tr("T", "Thursday" ) );
header->setLabel( 5, tr("F", "Friday" ) );
header->setLabel( 6, tr("S", "Saturday" ) );
header->setLabel( 7, tr("S", "Sunday" ) );
} else {
header->setLabel( 1, tr("S", "Sunday" ) );
header->setLabel( 2, tr("M", "Monday") );
header->setLabel( 3, tr("T", "Tuesday") );
header->setLabel( 4, tr("W", "Wednesday" ) );
header->setLabel( 5, tr("T", "Thursday" ) );
header->setLabel( 6, tr("F", "Friday" ) );
header->setLabel( 7, tr("S", "Saturday" ) );
}
}
}
void DateBookWeekView::showEvents( QValueList<EffectiveEvent> &ev )
{
- items.clear();
- QValueListIterator<EffectiveEvent> it;
- for ( it = ev.begin(); it != ev.end(); ++it ) {
- DateBookWeekItem *i = new DateBookWeekItem( *it );
- positionItem( i );
- items.append( i );
- }
- viewport()->update();
+ items.clear();
+ QValueListIterator<EffectiveEvent> it;
+ for ( it = ev.begin(); it != ev.end(); ++it ) {
+ DateBookWeekItem *i = new DateBookWeekItem( *it );
+ if(!(i->event().end().hour()==i->event().start().hour() && i->event().end().minute()==i->event().start().minute())) { // Skip effective events with no duration. (i.e ending at 00:00)
+ positionItem( i );
+ items.append( i );
+ }
+ }
+ viewport()->update();
}
void DateBookWeekView::moveToHour( int h )
{
int offset = h*rowHeight;
setContentsPos( 0, offset );
}
void DateBookWeekView::keyPressEvent( QKeyEvent *e )
{
e->ignore();
}
void DateBookWeekView::slotChangeClock( bool c )
{
ampm = c;
viewport()->update();
}
static inline int db_round30min( int m )
{
if ( m < 15 )
m = 0;
else if ( m < 45 )
m = 1;
else
m = 2;
return m;
}
void DateBookWeekView::alterDay( int day )
{
if ( !bOnMonday ) {
day--;
}
emit showDay( day );
}
void DateBookWeekView::positionItem( DateBookWeekItem *i )
{
const int Width = 8;
const EffectiveEvent ev = i->event();
// 30 minute intervals
int y = ev.start().hour() * 2;
y += db_round30min( ev.start().minute() );
int y2 = ev.end().hour() * 2;