Diffstat (limited to 'korganizer/koeditorrecurrence.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | korganizer/koeditorrecurrence.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/korganizer/koeditorrecurrence.cpp b/korganizer/koeditorrecurrence.cpp index 4209e10..bedc75a 100644 --- a/korganizer/koeditorrecurrence.cpp +++ b/korganizer/koeditorrecurrence.cpp | |||
@@ -39,12 +39,13 @@ | |||
39 | #include <klocale.h> | 39 | #include <klocale.h> |
40 | #include <kiconloader.h> | 40 | #include <kiconloader.h> |
41 | #include <kdebug.h> | 41 | #include <kdebug.h> |
42 | #include <knumvalidator.h> | 42 | #include <knumvalidator.h> |
43 | 43 | ||
44 | #include <libkcal/event.h> | 44 | #include <libkcal/event.h> |
45 | #include <libkcal/todo.h> | ||
45 | 46 | ||
46 | #include <libkdepim/kdateedit.h> | 47 | #include <libkdepim/kdateedit.h> |
47 | 48 | ||
48 | #include "koprefs.h" | 49 | #include "koprefs.h" |
49 | 50 | ||
50 | #include "koeditorrecurrence.h" | 51 | #include "koeditorrecurrence.h" |
@@ -902,22 +903,29 @@ void KOEditorRecurrence::setDefaults( QDateTime from, QDateTime to, bool ) | |||
902 | mMonthly->setByDay( from.date().day()-1 ); | 903 | mMonthly->setByDay( from.date().day()-1 ); |
903 | mYearly->setFrequency( 1 ); | 904 | mYearly->setFrequency( 1 ); |
904 | mYearly->setByDay( from.date().dayOfYear() ); | 905 | mYearly->setByDay( from.date().dayOfYear() ); |
905 | mYearly->setByMonth( from.date().month(), from.date().day() ); | 906 | mYearly->setByMonth( from.date().month(), from.date().day() ); |
906 | } | 907 | } |
907 | 908 | ||
908 | void KOEditorRecurrence::readEvent(Event *event) | 909 | void KOEditorRecurrence::readEvent(Incidence *event) |
909 | { | 910 | { |
910 | setDefaults( event->dtStart(), event->dtEnd(), true ); | 911 | |
912 | QDateTime dtEnd; | ||
913 | if ( event->type() == "Event" ) | ||
914 | dtEnd = ((Event*)event)->dtEnd(); | ||
915 | else | ||
916 | dtEnd = ((Todo*)event)->dtDue(); | ||
917 | |||
918 | setDefaults( event->dtStart(), dtEnd, true ); | ||
911 | QBitArray rDays( 7 ); | 919 | QBitArray rDays( 7 ); |
912 | QPtrList<Recurrence::rMonthPos> rmp; | 920 | QPtrList<Recurrence::rMonthPos> rmp; |
913 | QPtrList<int> rmd; | 921 | QPtrList<int> rmd; |
914 | int day = 0; | 922 | int day = 0; |
915 | int count = 0; | 923 | int count = 0; |
916 | int month = 0; | 924 | int month = 0; |
917 | setDateTimes( event->dtStart(), event->dtEnd() ); | 925 | setDateTimes( event->dtStart(), dtEnd ); |
918 | 926 | ||
919 | Recurrence *r = event->recurrence(); | 927 | Recurrence *r = event->recurrence(); |
920 | int f = r->frequency(); | 928 | int f = r->frequency(); |
921 | 929 | ||
922 | int recurs = r->doesRecur(); | 930 | int recurs = r->doesRecur(); |
923 | 931 | ||
@@ -925,13 +933,13 @@ void KOEditorRecurrence::readEvent(Event *event) | |||
925 | setEnabled( recurs ); | 933 | setEnabled( recurs ); |
926 | 934 | ||
927 | int recurrenceType = RecurrenceChooser::Weekly; | 935 | int recurrenceType = RecurrenceChooser::Weekly; |
928 | 936 | ||
929 | switch ( recurs ) { | 937 | switch ( recurs ) { |
930 | case Recurrence::rNone: | 938 | case Recurrence::rNone: |
931 | setDefaults( event->dtStart(), event->dtEnd(), true ); | 939 | setDefaults( event->dtStart(), dtEnd, true ); |
932 | break; | 940 | break; |
933 | case Recurrence::rDaily: | 941 | case Recurrence::rDaily: |
934 | recurrenceType = RecurrenceChooser::Daily; | 942 | recurrenceType = RecurrenceChooser::Daily; |
935 | mDaily->setFrequency( f ); | 943 | mDaily->setFrequency( f ); |
936 | break; | 944 | break; |
937 | case Recurrence::rWeekly: | 945 | case Recurrence::rWeekly: |
@@ -997,13 +1005,13 @@ void KOEditorRecurrence::readEvent(Event *event) | |||
997 | qDebug("Recurrence::rYearlyDay: "); | 1005 | qDebug("Recurrence::rYearlyDay: "); |
998 | recurrenceType = RecurrenceChooser::Yearly; | 1006 | recurrenceType = RecurrenceChooser::Yearly; |
999 | mYearly->setByDay( event->dtStart().date().dayOfYear() ); | 1007 | mYearly->setByDay( event->dtStart().date().dayOfYear() ); |
1000 | mYearly->setFrequency( f ); | 1008 | mYearly->setFrequency( f ); |
1001 | break; | 1009 | break; |
1002 | default: | 1010 | default: |
1003 | setDefaults( event->dtStart(), event->dtEnd(), true ); | 1011 | setDefaults( event->dtStart(), dtEnd, true ); |
1004 | break; | 1012 | break; |
1005 | } | 1013 | } |
1006 | 1014 | ||
1007 | mRecurrenceChooser->setType( recurrenceType ); | 1015 | mRecurrenceChooser->setType( recurrenceType ); |
1008 | showCurrentRule( recurrenceType ); | 1016 | showCurrentRule( recurrenceType ); |
1009 | 1017 | ||
@@ -1021,13 +1029,13 @@ void KOEditorRecurrence::readEvent(Event *event) | |||
1021 | mRecurrenceRange->setEndDate( event->dtStart().date() ); | 1029 | mRecurrenceRange->setEndDate( event->dtStart().date() ); |
1022 | } | 1030 | } |
1023 | 1031 | ||
1024 | mExceptions->setDates( event->exDates() ); | 1032 | mExceptions->setDates( event->exDates() ); |
1025 | } | 1033 | } |
1026 | 1034 | ||
1027 | void KOEditorRecurrence::writeEvent( Event *event ) | 1035 | void KOEditorRecurrence::writeEvent( Incidence *event ) |
1028 | { | 1036 | { |
1029 | Recurrence *r = event->recurrence(); | 1037 | Recurrence *r = event->recurrence(); |
1030 | 1038 | ||
1031 | // clear out any old settings; | 1039 | // clear out any old settings; |
1032 | r->unsetRecurs(); | 1040 | r->unsetRecurs(); |
1033 | 1041 | ||