]> ToastFreeware Gitweb - toast/confclerk.git/blobdiff - src/mvc/eventmodel.cpp
Add .pro.user.* to svn:ignore and remove it in the release target.
[toast/confclerk.git] / src / mvc / eventmodel.cpp
index 174eefb52fae9900c386565eec2a358811cb9874..79b36710ca5c8f2688b5b420bd6bba0734493a30 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2010 Ixonos Plc.
- * Copyright (C) 2011-2012 Philipp Spitzer, gregor herrmann
+ * Copyright (C) 2011-2012 Philipp Spitzer, gregor herrmann, Stefan Stahl
  *
  * This file is part of ConfClerk.
  *
@@ -48,17 +48,16 @@ void EventModel::createTimeGroups()
     mParents.clear();
     if (mEvents.empty()) return;
 
-    const int minTimeSpan = 3600; // one hour
-    const int minChildCount = 3; // minimum number of events in one group
+    const int minTimeSpan = 3600; // one hour // minimum duration of a group in seconds
+    const int minChildCount = 3;  // minimum number of events in one group
 
-    // Create the first time group. The events have to be sorted by start time at this point!
-    QDateTime groupStartDateTime(mEvents.first().start().date(), mEvents.first().start().time());
+    QDateTime groupStartDateTime(mEvents.first().start().date(), QTime(mEvents.first().start().time().hour(), 0), mEvents.first().start().timeSpec());
     QDateTime groupEndDateTime = groupStartDateTime.addSecs(mEvents.first().duration());
     mGroups << EventModel::Group("", 0);
     int timeSpan = minTimeSpan;
 
     for (int i = 0; i != mEvents.count(); ++i) {
-        QDateTime eventStartDateTime (mEvents.at(i).start().date(), mEvents.at(i).start().time());
+        QDateTime eventStartDateTime = mEvents.at(i).start();
         QDateTime eventEndDateTime = eventStartDateTime.addSecs(mEvents.at(i).duration());
 
         if (eventStartDateTime >= groupStartDateTime.addSecs(timeSpan)) {
@@ -66,7 +65,7 @@ void EventModel::createTimeGroups()
             if (mGroups.last().mChildCount < minChildCount) {
                 // too few events in the group => no new group
                 // except a gap in time would occur that is longer than minTimeSpan
-                QDateTime prevEventStartDateTime (mEvents.at(i).start().date(), mEvents.at(i).start().time());
+                QDateTime prevEventStartDateTime = mEvents.at(i).start();
                 if (i > 0 && qMax(prevEventStartDateTime.addSecs(mEvents.at(i-1).duration()), groupEndDateTime).secsTo(eventStartDateTime) < minTimeSpan) {
                     timeSpan += minTimeSpan;
                     --i;