author | zautrix <zautrix> | 2005-06-13 13:57:22 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-06-13 13:57:22 (UTC) |
commit | 56de219c5ce910a470a01a0e5003d1a113837ef4 (patch) (unidiff) | |
tree | 3393cb306cec8dcdc05d6ed0fae3ae7d374f2794 /libkcal | |
parent | 4f3ff02932b39bf16b9692c3cb69c101a28b4616 (diff) | |
download | kdepimpi-56de219c5ce910a470a01a0e5003d1a113837ef4.zip kdepimpi-56de219c5ce910a470a01a0e5003d1a113837ef4.tar.gz kdepimpi-56de219c5ce910a470a01a0e5003d1a113837ef4.tar.bz2 |
fixxx
-rw-r--r-- | libkcal/alarm.cpp | 2 | ||||
-rw-r--r-- | libkcal/calendar.cpp | 54 | ||||
-rw-r--r-- | libkcal/calendar.h | 1 | ||||
-rw-r--r-- | libkcal/calendarlocal.cpp | 56 | ||||
-rw-r--r-- | libkcal/calendarlocal.h | 1 |
5 files changed, 87 insertions, 27 deletions
diff --git a/libkcal/alarm.cpp b/libkcal/alarm.cpp index 0afa0a7..79e0464 100644 --- a/libkcal/alarm.cpp +++ b/libkcal/alarm.cpp | |||
@@ -368,12 +368,14 @@ QString Alarm::offsetText() | |||
368 | if ( min > 0 ) { | 368 | if ( min > 0 ) { |
369 | if ( !message.isEmpty() ) message += "/"; | 369 | if ( !message.isEmpty() ) message += "/"; |
370 | message += i18n("%1min").arg( min ); | 370 | message += i18n("%1min").arg( min ); |
371 | } | 371 | } |
372 | if ( message.isEmpty() ) | 372 | if ( message.isEmpty() ) |
373 | message = i18n("%1min").arg( 0 ); | 373 | message = i18n("%1min").arg( 0 ); |
374 | if ( !mParent->alarmEnabled() ) | ||
375 | return "!"+message + i18n("(disabled)"); | ||
374 | return message; | 376 | return message; |
375 | } | 377 | } |
376 | 378 | ||
377 | 379 | ||
378 | QDateTime Alarm::time() const | 380 | QDateTime Alarm::time() const |
379 | { | 381 | { |
diff --git a/libkcal/calendar.cpp b/libkcal/calendar.cpp index 5092d1a..a662eeb 100644 --- a/libkcal/calendar.cpp +++ b/libkcal/calendar.cpp | |||
@@ -427,39 +427,39 @@ void Calendar::setupRelations( Incidence *incidence ) | |||
427 | } | 427 | } |
428 | 428 | ||
429 | // If a task with subtasks is deleted, move it's subtasks to the orphans list | 429 | // If a task with subtasks is deleted, move it's subtasks to the orphans list |
430 | void Calendar::removeRelations( Incidence *incidence ) | 430 | void Calendar::removeRelations( Incidence *incidence ) |
431 | { | 431 | { |
432 | // qDebug("Calendar::removeRelations "); | 432 | // qDebug("Calendar::removeRelations "); |
433 | QString uid = incidence->uid(); | 433 | QString uid = incidence->uid(); |
434 | 434 | ||
435 | QPtrList<Incidence> relations = incidence->relations(); | 435 | QPtrList<Incidence> relations = incidence->relations(); |
436 | for( Incidence* i = relations.first(); i; i = relations.next() ) | 436 | for( Incidence* i = relations.first(); i; i = relations.next() ) |
437 | if( !mOrphanUids.find( i->uid() ) ) { | 437 | if( !mOrphanUids.find( i->uid() ) ) { |
438 | mOrphans.insert( uid, i ); | 438 | mOrphans.insert( uid, i ); |
439 | mOrphanUids.insert( i->uid(), i ); | 439 | mOrphanUids.insert( i->uid(), i ); |
440 | i->setRelatedTo( 0 ); | 440 | i->setRelatedTo( 0 ); |
441 | i->setRelatedToUid( uid ); | 441 | i->setRelatedToUid( uid ); |
442 | } | 442 | } |
443 | 443 | ||
444 | // If this incidence is related to something else, tell that about it | 444 | // If this incidence is related to something else, tell that about it |
445 | if( incidence->relatedTo() ) | 445 | if( incidence->relatedTo() ) |
446 | incidence->relatedTo()->removeRelation( incidence ); | 446 | incidence->relatedTo()->removeRelation( incidence ); |
447 | 447 | ||
448 | // Remove this one from the orphans list | 448 | // Remove this one from the orphans list |
449 | if( mOrphanUids.remove( uid ) ) | 449 | if( mOrphanUids.remove( uid ) ) |
450 | // This incidence is located in the orphans list - it should be removed | 450 | // This incidence is located in the orphans list - it should be removed |
451 | if( !( incidence->relatedTo() != 0 && mOrphans.remove( incidence->relatedTo()->uid() ) ) ) { | 451 | if( !( incidence->relatedTo() != 0 && mOrphans.remove( incidence->relatedTo()->uid() ) ) ) { |
452 | // Removing wasn't that easy | 452 | // Removing wasn't that easy |
453 | for( QDictIterator<Incidence> it( mOrphans ); it.current(); ++it ) { | 453 | for( QDictIterator<Incidence> it( mOrphans ); it.current(); ++it ) { |
454 | if( it.current()->uid() == uid ) { | 454 | if( it.current()->uid() == uid ) { |
455 | mOrphans.remove( it.currentKey() ); | 455 | mOrphans.remove( it.currentKey() ); |
456 | break; | 456 | break; |
457 | } | 457 | } |
458 | } | 458 | } |
459 | } | 459 | } |
460 | } | 460 | } |
461 | 461 | ||
462 | void Calendar::registerObserver( Observer *observer ) | 462 | void Calendar::registerObserver( Observer *observer ) |
463 | { | 463 | { |
464 | mObserver = observer; | 464 | mObserver = observer; |
465 | mNewObserver = true; | 465 | mNewObserver = true; |
diff --git a/libkcal/calendar.h b/libkcal/calendar.h index 73f82bb..2243e28 100644 --- a/libkcal/calendar.h +++ b/libkcal/calendar.h | |||
@@ -309,12 +309,13 @@ public: | |||
309 | public slots: | 309 | public slots: |
310 | void setDefaultCalendar( int ); | 310 | void setDefaultCalendar( int ); |
311 | virtual void setCalendarEnabled( int id, bool enable ) = 0; | 311 | virtual void setCalendarEnabled( int id, bool enable ) = 0; |
312 | virtual void setAlarmEnabled( int id, bool enable ) = 0; | 312 | virtual void setAlarmEnabled( int id, bool enable ) = 0; |
313 | virtual void setReadOnly( int id, bool enable ) = 0; | 313 | virtual void setReadOnly( int id, bool enable ) = 0; |
314 | virtual void setDefaultCalendarEnabledOnly() = 0; | 314 | virtual void setDefaultCalendarEnabledOnly() = 0; |
315 | virtual void setCalendarRemove( int id ) = 0; | ||
315 | signals: | 316 | signals: |
316 | void calendarChanged(); | 317 | void calendarChanged(); |
317 | void calendarSaved(); | 318 | void calendarSaved(); |
318 | void calendarLoaded(); | 319 | void calendarLoaded(); |
319 | void addAlarm(const QDateTime &qdt, const QString ¬i ); | 320 | void addAlarm(const QDateTime &qdt, const QString ¬i ); |
320 | void removeAlarm(const QDateTime &qdt, const QString ¬i ); | 321 | void removeAlarm(const QDateTime &qdt, const QString ¬i ); |
diff --git a/libkcal/calendarlocal.cpp b/libkcal/calendarlocal.cpp index e48122a..749d9f6 100644 --- a/libkcal/calendarlocal.cpp +++ b/libkcal/calendarlocal.cpp | |||
@@ -82,32 +82,51 @@ void CalendarLocal::addCalendar( Calendar* cal ) | |||
82 | { | 82 | { |
83 | cal->setDontDeleteIncidencesOnClose(); | 83 | cal->setDontDeleteIncidencesOnClose(); |
84 | { | 84 | { |
85 | QPtrList<Event> EventList = cal->rawEvents(); | 85 | QPtrList<Event> EventList = cal->rawEvents(); |
86 | Event * ev = EventList.first(); | 86 | Event * ev = EventList.first(); |
87 | while ( ev ) { | 87 | while ( ev ) { |
88 | ev->unRegisterObserver( cal ); | ||
89 | ev->registerObserver( this ); | ||
88 | mEventList.append( ev ); | 90 | mEventList.append( ev ); |
89 | ev = EventList.next(); | 91 | ev = EventList.next(); |
90 | } | 92 | } |
91 | } | 93 | } |
92 | { | 94 | { |
95 | |||
93 | QPtrList<Todo> TodoList = cal->rawTodos(); | 96 | QPtrList<Todo> TodoList = cal->rawTodos(); |
94 | Todo * ev = TodoList.first(); | 97 | Todo * ev = TodoList.first(); |
95 | while ( ev ) { | 98 | while ( ev ) { |
99 | QString rel = ev->relatedToUid(); | ||
100 | if ( !rel.isEmpty() ){ | ||
101 | ev->setRelatedTo ( 0 ); | ||
102 | ev->setRelatedToUid( rel ); | ||
103 | } | ||
104 | ev = TodoList.next(); | ||
105 | } | ||
106 | //TodoList = cal->rawTodos(); | ||
107 | ev = TodoList.first(); | ||
108 | while ( ev ) { | ||
109 | ev->unRegisterObserver( cal ); | ||
110 | ev->registerObserver( this ); | ||
96 | mTodoList.append( ev ); | 111 | mTodoList.append( ev ); |
112 | setupRelations( ev ); | ||
97 | ev = TodoList.next(); | 113 | ev = TodoList.next(); |
98 | } | 114 | } |
99 | } | 115 | } |
100 | { | 116 | { |
101 | QPtrList<Journal> JournalList = cal->journals(); | 117 | QPtrList<Journal> JournalList = cal->journals(); |
102 | Journal * ev = JournalList.first(); | 118 | Journal * ev = JournalList.first(); |
103 | while ( ev ) { | 119 | while ( ev ) { |
120 | ev->unRegisterObserver( cal ); | ||
121 | ev->registerObserver( this ); | ||
104 | mJournalList.append( ev ); | 122 | mJournalList.append( ev ); |
105 | ev = JournalList.next(); | 123 | ev = JournalList.next(); |
106 | } | 124 | } |
107 | } | 125 | } |
126 | setModified( true ); | ||
108 | } | 127 | } |
109 | bool CalendarLocal::load( const QString &fileName ) | 128 | bool CalendarLocal::load( const QString &fileName ) |
110 | { | 129 | { |
111 | FileStorage storage( this, fileName ); | 130 | FileStorage storage( this, fileName ); |
112 | return storage.load(); | 131 | return storage.load(); |
113 | } | 132 | } |
@@ -778,12 +797,48 @@ QPtrList<Journal> CalendarLocal::journals() | |||
778 | { | 797 | { |
779 | QPtrList<Journal> el; | 798 | QPtrList<Journal> el; |
780 | for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) | 799 | for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) |
781 | if ( it->calEnabled() ) el.append( it ); | 800 | if ( it->calEnabled() ) el.append( it ); |
782 | return el; | 801 | return el; |
783 | } | 802 | } |
803 | void CalendarLocal::setCalendarRemove( int id ) | ||
804 | { | ||
805 | |||
806 | { | ||
807 | QPtrList<Event> EventList = mEventList; | ||
808 | Event * ev = EventList.first(); | ||
809 | while ( ev ) { | ||
810 | if ( ev->calID() == id ) | ||
811 | deleteEvent( ev ); | ||
812 | ev = EventList.next(); | ||
813 | } | ||
814 | } | ||
815 | { | ||
816 | |||
817 | QPtrList<Todo> TodoList = mTodoList; | ||
818 | Todo * ev = TodoList.first(); | ||
819 | while ( ev ) { | ||
820 | if ( ev->calID() == id ) | ||
821 | deleteTodo( ev ); | ||
822 | ev = TodoList.next(); | ||
823 | } | ||
824 | } | ||
825 | { | ||
826 | QPtrList<Journal> JournalList = mJournalList; | ||
827 | Journal * ev = JournalList.first(); | ||
828 | while ( ev ) { | ||
829 | if ( ev->calID() == id ) | ||
830 | deleteJournal( ev ); | ||
831 | ev = JournalList.next(); | ||
832 | } | ||
833 | } | ||
834 | |||
835 | if ( mUndoIncidence ) delete mUndoIncidence; | ||
836 | mUndoIncidence = 0; | ||
837 | |||
838 | } | ||
784 | 839 | ||
785 | void CalendarLocal::setCalendarEnabled( int id, bool enable ) | 840 | void CalendarLocal::setCalendarEnabled( int id, bool enable ) |
786 | { | 841 | { |
787 | for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) | 842 | for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) |
788 | if ( it->calID() == id ) it->setCalEnabled( enable ); | 843 | if ( it->calID() == id ) it->setCalEnabled( enable ); |
789 | 844 | ||
@@ -815,12 +870,13 @@ void CalendarLocal::setAlarmEnabled( int id, bool enable ) | |||
815 | 870 | ||
816 | for ( Event *it = mEventList.first(); it; it = mEventList.next() ) | 871 | for ( Event *it = mEventList.first(); it; it = mEventList.next() ) |
817 | if ( it->calID() == id ) it->setAlarmEnabled( enable ); | 872 | if ( it->calID() == id ) it->setAlarmEnabled( enable ); |
818 | 873 | ||
819 | for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() ) | 874 | for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() ) |
820 | if ( it->calID() == id ) it->setAlarmEnabled( enable ); | 875 | if ( it->calID() == id ) it->setAlarmEnabled( enable ); |
876 | reInitAlarmSettings(); | ||
821 | 877 | ||
822 | } | 878 | } |
823 | void CalendarLocal::setDefaultCalendarEnabledOnly() | 879 | void CalendarLocal::setDefaultCalendarEnabledOnly() |
824 | { | 880 | { |
825 | for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) | 881 | for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) |
826 | it->setCalEnabled( it->calID() == mDefaultCalendar ); | 882 | it->setCalEnabled( it->calID() == mDefaultCalendar ); |
diff --git a/libkcal/calendarlocal.h b/libkcal/calendarlocal.h index 65f6aa7..5bbe55f 100644 --- a/libkcal/calendarlocal.h +++ b/libkcal/calendarlocal.h | |||
@@ -182,12 +182,13 @@ class CalendarLocal : public Calendar | |||
182 | 182 | ||
183 | public slots: | 183 | public slots: |
184 | void setCalendarEnabled( int id, bool enable ); | 184 | void setCalendarEnabled( int id, bool enable ); |
185 | void setAlarmEnabled( int id, bool enable ); | 185 | void setAlarmEnabled( int id, bool enable ); |
186 | void setReadOnly( int id, bool enable ); | 186 | void setReadOnly( int id, bool enable ); |
187 | void setDefaultCalendarEnabledOnly(); | 187 | void setDefaultCalendarEnabledOnly(); |
188 | void setCalendarRemove( int id ); | ||
188 | 189 | ||
189 | protected: | 190 | protected: |
190 | 191 | ||
191 | // Event* mNextAlarmEvent; | 192 | // Event* mNextAlarmEvent; |
192 | QString mNextSummary; | 193 | QString mNextSummary; |
193 | QString mNextAlarmEventDateTimeString; | 194 | QString mNextAlarmEventDateTimeString; |