summaryrefslogtreecommitdiff
authorumopapisdn <umopapisdn>2003-03-23 20:33:00 (UTC)
committer umopapisdn <umopapisdn>2003-03-23 20:33:00 (UTC)
commitb5606a63c9f3524f9475b6ac79f0b6bcc7162fa6 (patch) (side-by-side diff)
treed4c7bd2dbf63858d3ac70926514d91a4bd6d63e0
parentdfa17505b14011b50822d50c925cc6aa0299b1b4 (diff)
downloadopie-b5606a63c9f3524f9475b6ac79f0b6bcc7162fa6.zip
opie-b5606a63c9f3524f9475b6ac79f0b6bcc7162fa6.tar.gz
opie-b5606a63c9f3524f9475b6ac79f0b6bcc7162fa6.tar.bz2
Bugfix: (bug #0000211) Events ending at mat the following day. Fix for dayview.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebookday.cpp32
1 files changed, 17 insertions, 15 deletions
diff --git a/core/pim/datebook/datebookday.cpp b/core/pim/datebook/datebookday.cpp
index a6a1be3..42f026a 100644
--- a/core/pim/datebook/datebookday.cpp
+++ b/core/pim/datebook/datebookday.cpp
@@ -294,38 +294,40 @@ void DateBookDay::dateChanged( int y, int m, int d )
selectedWidget = 0;
}
void DateBookDay::redraw()
{
if ( isUpdatesEnabled() )
relayoutPage();
}
void DateBookDay::getEvents()
{
- widgetList.clear();
-
- QValueList<EffectiveEvent> eventList = db->getEffectiveEvents( currDate,
- currDate );
- QValueListIterator<EffectiveEvent> it;
- for ( it = eventList.begin(); it != eventList.end(); ++it ) {
- DateBookDayWidget* w = new DateBookDayWidget( *it, this );
- connect( w, SIGNAL( deleteMe( const Event & ) ),
- this, SIGNAL( removeEvent( const Event & ) ) );
- connect( w, SIGNAL( editMe( const Event & ) ),
- this, SIGNAL( editEvent( const Event & ) ) );
- connect( w, SIGNAL( beamMe( const Event & ) ),
- this, SIGNAL( beamEvent( const Event & ) ) );
- widgetList.append( w );
+ widgetList.clear();
+
+ QValueList<EffectiveEvent> eventList = db->getEffectiveEvents( currDate, currDate );
+ QValueListIterator<EffectiveEvent> it;
+ for ( it = eventList.begin(); it != eventList.end(); ++it ) {
+ EffectiveEvent ev=*it;
+ if(!(ev.end().hour()==ev.start().hour() && ev.end().minute()==ev.start().minute())) { // Skip effective events with no duration. (i.e ending at 00:00)
+ DateBookDayWidget* w = new DateBookDayWidget( *it, this );
+ connect( w, SIGNAL( deleteMe( const Event & ) ),
+ this, SIGNAL( removeEvent( const Event & ) ) );
+ connect( w, SIGNAL( editMe( const Event & ) ),
+ this, SIGNAL( editEvent( const Event & ) ) );
+ connect( w, SIGNAL( beamMe( const Event & ) ),
+ this, SIGNAL( beamEvent( const Event & ) ) );
+ widgetList.append( w );
+ }
}
}
static int place( const DateBookDayWidget *item, bool *used, int maxn )
{
int place = 0;
int start = item->event().start().hour();
QTime e = item->event().end();
int end = e.hour();
if ( e.minute() < 5 )
end--;
@@ -351,25 +353,25 @@ static int place( const DateBookDayWidget *item, bool *used, int maxn )
used[10*start+place] = TRUE;
start++;
}
return place;
}
void DateBookDay::relayoutPage( bool fromResize )
{
setUpdatesEnabled( FALSE );
if ( !fromResize )
getEvents(); // no need we already have them!
-
+
widgetList.sort();
//sorts the widgetList by the heights of the widget so that the tallest widgets are at the beginning
//this is needed for the simple algo below to work correctly, otherwise some widgets would be drawn outside the view
int wCount = widgetList.count();
int wid = view->columnWidth(0)-1;
int wd;
int n = 1;
QArray<int> anzIntersect(wCount); //this stores the number of maximal intersections of each widget
for (int i = 0; i<wCount; anzIntersect[i] = 1, i++);