[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE_3_2_BRANCH: kdepim/libkcal
From:       David Jarvie <software () astrojar ! org ! uk>
Date:       2004-05-29 23:41:30
Message-ID: 20040529234130.19D20126C7 () office ! kde ! org
[Download RAW message or body]

CVS commit by djarvie: 

Backport the following fixes:
- Fix kddebug.
- Handle weekly recurring events properly (prevents some inf. loops in Korganizer).
- Fixes for weekly recurrences to take proper account of user's start day of week.


  M +11 -13    recurrence.cpp   1.33.4.1


--- kdepim/libkcal/recurrence.cpp  #1.33:1.33.4.1
@@ -1141,5 +1141,5 @@ QDate Recurrence::getNextDateNoTime(cons
 
     case rWeekly: {
-      QDate start = dStart.addDays(1 - dStart.dayOfWeek());   // start of week for \
dStart +      QDate start = dStart.addDays(-((dStart.dayOfWeek() - rWeekStart + \
7)%7));  // start of week for dStart  int earliestDayOfWeek = \
earliestDate.dayOfWeek();  int weeksAhead = start.daysTo(earliestDate) / 7;
@@ -1151,5 +1151,5 @@ QDate Recurrence::getNextDateNoTime(cons
         weekday = getFirstDayInWeek(earliestDayOfWeek);
       // Check for a day in the next scheduled week
-      if (!weekday  &&  earliestDayOfWeek > 1)
+      if (!weekday)
         weekday = getFirstDayInWeek(rWeekStart) + rFreq*7;
       if (weekday)
@@ -1237,5 +1237,5 @@ QDate Recurrence::getPreviousDateNoTime(
 
     case rWeekly: {
-      QDate start = dStart.addDays(1 - dStart.dayOfWeek());   // start of week for \
dStart +      QDate start = dStart.addDays(-((dStart.dayOfWeek() - rWeekStart + \
7)%7));  // start of week for dStart  int latestDayOfWeek = latestDate.dayOfWeek();
       int weeksAhead = start.daysTo(latestDate) / 7;
@@ -1248,11 +1248,9 @@ QDate Recurrence::getPreviousDateNoTime(
       // Check for a day in the previous scheduled week
       if (!weekday) {
-        int weekEnd = (rWeekStart + 5)%7 + 1;
-        if (latestDayOfWeek < weekEnd) {
           if (!notThisWeek)
             weeksAhead -= rFreq;
+        int weekEnd = (rWeekStart + 5)%7 + 1;
           weekday = getLastDayInWeek(weekEnd);
         }
-      }
       if (weekday)
         prevDate = start.addDays(weeksAhead*7 + weekday - 1);
@@ -3407,12 +3405,12 @@ QDate Recurrence::getLastDateInYear(cons
 void Recurrence::dump() const
 {
-  kdDebug() << "Recurrence::dump():" << endl;
+  kdDebug(5800) << "Recurrence::dump():" << endl;
 
-  kdDebug() << "  type: " << recurs << endl;
+  kdDebug(5800) << "  type: " << recurs << endl;
   
-  kdDebug() << "  rDays: " << endl;
+  kdDebug(5800) << "  rDays: " << endl;
   int i;
   for( i = 0; i < 7; ++i ) {
-    kdDebug() << "    " << i << ": "
+    kdDebug(5800) << "    " << i << ": "
               << ( rDays.testBit( i ) ? "true" : "false" ) << endl;
   }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic