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) (show whitespace changes)
-rw-r--r--core/pim/datebook/datebookweek.cpp2
1 files changed, 2 insertions, 0 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
@@ -78,131 +78,133 @@ DateBookWeekView::DateBookWeekView( bool ap, bool startOnMonday,
connect( header, SIGNAL(clicked(int)), this, SIGNAL(showDay(int)) );
QObject::connect(qApp, SIGNAL(clockChanged(bool)),
this, SLOT(slotChangeClock(bool)));
QFontMetrics fm( font() );
rowHeight = fm.height()+2;
resizeContents( width(), 24*rowHeight );
}
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 );
+ 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;
y2 += db_round30min( ev.end().minute() );
if ( y > 47 )
y = 47;
if ( y2 > 48 )
y2 = 48;
y = y * rowHeight / 2;
y2 = y2 * rowHeight / 2;
int h;
if ( ev.event().type() == Event::AllDay ) {
h = 48 * rowHeight / 2;
y = 0;
} else {
h=y2-y;
if ( h < 1 ) h = 1;