summaryrefslogtreecommitdiffabout
path: root/libkcal
authorzautrix <zautrix>2004-08-09 12:44:25 (UTC)
committer zautrix <zautrix>2004-08-09 12:44:25 (UTC)
commit48f53b2d2e7ed189e88f924259693ab66ff44b7f (patch) (side-by-side diff)
tree19bcb263aef667ee236b4d49cea89985331805bd /libkcal
parente0ba2d4770094974ec4a2a48af436a7df9a055bc (diff)
downloadkdepimpi-48f53b2d2e7ed189e88f924259693ab66ff44b7f.zip
kdepimpi-48f53b2d2e7ed189e88f924259693ab66ff44b7f.tar.gz
kdepimpi-48f53b2d2e7ed189e88f924259693ab66ff44b7f.tar.bz2
recurrence fixes
Diffstat (limited to 'libkcal') (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/phoneformat.cpp34
1 files changed, 25 insertions, 9 deletions
diff --git a/libkcal/phoneformat.cpp b/libkcal/phoneformat.cpp
index bc1b863..596148e 100644
--- a/libkcal/phoneformat.cpp
+++ b/libkcal/phoneformat.cpp
@@ -345,3 +345,3 @@ public:
QString recurString = "no";
- if ( repeating ) {
+ if ( repeating && repeat_frequency != -1) {
recurString = "y";
@@ -361,6 +361,8 @@ public:
QDate startDate, endDate;
- if ( repeat_startdate.Day > 0 )
+ if ( repeat_startdate.Day > 0 ) {
startDate = datefromGSM ( &repeat_startdate );
- else
+ event->setDtStart(QDateTime ( startDate, event->dtStart().time()));
+ } else {
startDate = event->dtStart().date();
+ }
int freq = repeat_frequency;
@@ -373,3 +375,3 @@ public:
uint weekDaysNum = repeat_dayofweek ;
-
+ // 1 == monday, 7 == sunday
QBitArray weekDays( 7 );
@@ -400,3 +402,3 @@ public:
if ( repeat_weekofmonth >= 0 ) {
- rtype = 2;
+ rtype = 2; // ************************ 2 MonthlyPos
pos = repeat_weekofmonth;
@@ -404,8 +406,22 @@ public:
dayOfWeek = repeat_dayofweek;
+ if (repeat_month > 0) {
+ if ( repeat_month != event->dtStart().date().month() ) {
+ QDate date (event->dtStart().date().year(),repeat_month,event->dtStart().date().day() );
+ event->setDtStart(QDateTime ( date , event->dtStart().time()) );
+ }
+ if ( freq == 1 )
+ freq = 12;
+ }
} else if ( repeat_dayofweek >= 0 ) {
- rtype = 1;
- } if ( repeat_dayofweek >= 0 ) {
- rtype = 1;
+ rtype = 1;// ************************ 1 Weekly
+ } else if ( repeat_day >= 0 ) {
+ if ( repeat_month > 0) {
+ rtype = 4;
+ } else {
+ rtype = 3;
+ }
+ } else {
+ rtype = 0 ;
}
-
+
if ( rtype == 0 ) {