summaryrefslogtreecommitdiff
path: root/core/pim/datebook/datebook.cpp
Side-by-side diff
Diffstat (limited to 'core/pim/datebook/datebook.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebook.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp
index 832b2f8..24affd0 100644
--- a/core/pim/datebook/datebook.cpp
+++ b/core/pim/datebook/datebook.cpp
@@ -999,2 +999,4 @@ void DateBook::slotDoFind( const QString& txt, const QDate &dt,
static QDate searchDate = dt;
+ // if true at the end we will start at the begin again and afterwards
+ // we will emit string not found
static bool wrapAround = true;
@@ -1006,2 +1008,9 @@ void DateBook::slotDoFind( const QString& txt, const QDate &dt,
// find the candidate for the first repeat that matches...
+ // first check if there can ever be a match and then compute
+ // the next occurence from start. See if this event is closer
+ // to the beginning (start. next < dtEnd) and not smaller then the last
+ // result. If we find a canditate we set the dtEnd to the time
+ // of the ocurrence and rev to this occurence.
+ // set wrap around to true because there might be more events coming
+ // and we're not at the end.
QValueListConstIterator<Event> it;
@@ -1025,2 +1034,5 @@ void DateBook::slotDoFind( const QString& txt, const QDate &dt,
// now the for first non repeat...
+ // dtEnd is set by the previous iteration of repeatingEvents
+ // check if we find a closer item. Also set dtEnd to find even
+ // more close occurrence
QValueList<Event> nonRepeats = db->getNonRepeatingEvents( dt, dtEnd.date() );