summaryrefslogtreecommitdiffabout
path: root/libkcal
Unidiff
Diffstat (limited to 'libkcal') (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/calendar.h1
-rw-r--r--libkcal/calendarlocal.cpp25
-rw-r--r--libkcal/calendarlocal.h1
3 files changed, 26 insertions, 1 deletions
diff --git a/libkcal/calendar.h b/libkcal/calendar.h
index 0a94914..66836a1 100644
--- a/libkcal/calendar.h
+++ b/libkcal/calendar.h
@@ -303,32 +303,33 @@ public:
303 303
304 /** 304 /**
305 Set product id returned by loadedProductId(). This function is only 305 Set product id returned by loadedProductId(). This function is only
306 useful for the calendar loading code. 306 useful for the calendar loading code.
307 */ 307 */
308 void setLoadedProductId( const QString & ); 308 void setLoadedProductId( const QString & );
309 /** 309 /**
310 Return product id taken from file that has been loaded. Returns 310 Return product id taken from file that has been loaded. Returns
311 QString::null, if no calendar has been loaded. 311 QString::null, if no calendar has been loaded.
312 */ 312 */
313 QString loadedProductId(); 313 QString loadedProductId();
314 int defaultCalendar(); 314 int defaultCalendar();
315 void setDontDeleteIncidencesOnClose (); 315 void setDontDeleteIncidencesOnClose ();
316 public slots: 316 public slots:
317 void setDefaultCalendar( int ); 317 void setDefaultCalendar( int );
318 virtual void setCalendarEnabled( int id, bool enable ) = 0; 318 virtual void setCalendarEnabled( int id, bool enable ) = 0;
319 virtual void setAllCalendarEnabled( bool enable ) = 0;
319 virtual void setAlarmEnabled( int id, bool enable ) = 0; 320 virtual void setAlarmEnabled( int id, bool enable ) = 0;
320 virtual void setReadOnly( int id, bool enable ) = 0; 321 virtual void setReadOnly( int id, bool enable ) = 0;
321 virtual void setDefaultCalendarEnabledOnly() = 0; 322 virtual void setDefaultCalendarEnabledOnly() = 0;
322 virtual void setCalendarRemove( int id ) = 0; 323 virtual void setCalendarRemove( int id ) = 0;
323 virtual void getIncidenceCount( int calId, int& events, int & todos, int & journals) = 0; 324 virtual void getIncidenceCount( int calId, int& events, int & todos, int & journals) = 0;
324 325
325 signals: 326 signals:
326 void calendarChanged(); 327 void calendarChanged();
327 void calendarSaved(); 328 void calendarSaved();
328 void calendarLoaded(); 329 void calendarLoaded();
329 void addAlarm(const QDateTime &qdt, const QString &noti ); 330 void addAlarm(const QDateTime &qdt, const QString &noti );
330 void removeAlarm(const QDateTime &qdt, const QString &noti ); 331 void removeAlarm(const QDateTime &qdt, const QString &noti );
331 332
332 protected: 333 protected:
333 /** 334 /**
334 Get unfiltered events, which occur on the given date. 335 Get unfiltered events, which occur on the given date.
diff --git a/libkcal/calendarlocal.cpp b/libkcal/calendarlocal.cpp
index 45e3128..2a57724 100644
--- a/libkcal/calendarlocal.cpp
+++ b/libkcal/calendarlocal.cpp
@@ -177,49 +177,59 @@ void CalendarLocal::setSyncEventsEnabled()
177{ 177{
178 Event * ev; 178 Event * ev;
179 ev = mEventList.first(); 179 ev = mEventList.first();
180 while ( ev ) { 180 while ( ev ) {
181 if ( ev->uid().left(15) == QString("last-syncEvent-") ) 181 if ( ev->uid().left(15) == QString("last-syncEvent-") )
182 ev->setCalEnabled( true ); 182 ev->setCalEnabled( true );
183 ev = mEventList.next(); 183 ev = mEventList.next();
184 } 184 }
185} 185}
186void CalendarLocal::setSyncEventsReadOnly() 186void CalendarLocal::setSyncEventsReadOnly()
187{ 187{
188 Event * ev; 188 Event * ev;
189 ev = mEventList.first(); 189 ev = mEventList.first();
190 while ( ev ) { 190 while ( ev ) {
191 if ( ev->uid().left(15) == QString("last-syncEvent-") ) { 191 if ( ev->uid().left(15) == QString("last-syncEvent-") ) {
192 ev->setReadOnly( true ); 192 ev->setReadOnly( true );
193 ev->setCalID( 1 );
194 } 193 }
195 ev = mEventList.next(); 194 ev = mEventList.next();
196 } 195 }
197} 196}
197
198void CalendarLocal::addCalendar( Calendar* cal ) 198void CalendarLocal::addCalendar( Calendar* cal )
199{ 199{
200 cal->setDontDeleteIncidencesOnClose(); 200 cal->setDontDeleteIncidencesOnClose();
201 setSyncEventsEnabled();
201 { 202 {
202 QPtrList<Event> EventList = cal->rawEvents(); 203 QPtrList<Event> EventList = cal->rawEvents();
204 QPtrList<Event> el;
203 Event * ev = EventList.first(); 205 Event * ev = EventList.first();
204 while ( ev ) { 206 while ( ev ) {
207 if ( ev->uid().left( 15 ) == QString("last-syncEvent-") ) {
208 Event * se = event( ev->uid() );
209 if ( se )
210 el.append( se );
211 }
205 ev->unRegisterObserver( cal ); 212 ev->unRegisterObserver( cal );
206 ev->registerObserver( this ); 213 ev->registerObserver( this );
207 mEventList.append( ev ); 214 mEventList.append( ev );
208 ev = EventList.next(); 215 ev = EventList.next();
209 } 216 }
217 for ( ev = el.first(); ev; ev = el.next() ) {
218 deleteIncidence ( ev );
219 }
210 } 220 }
211 { 221 {
212 222
213 QPtrList<Todo> TodoList = cal->rawTodos(); 223 QPtrList<Todo> TodoList = cal->rawTodos();
214 Todo * ev = TodoList.first(); 224 Todo * ev = TodoList.first();
215 while ( ev ) { 225 while ( ev ) {
216 QString rel = ev->relatedToUid(); 226 QString rel = ev->relatedToUid();
217 if ( !rel.isEmpty() ){ 227 if ( !rel.isEmpty() ){
218 ev->setRelatedTo ( 0 ); 228 ev->setRelatedTo ( 0 );
219 ev->setRelatedToUid( rel ); 229 ev->setRelatedToUid( rel );
220 } 230 }
221 ev = TodoList.next(); 231 ev = TodoList.next();
222 } 232 }
223 //TodoList = cal->rawTodos(); 233 //TodoList = cal->rawTodos();
224 ev = TodoList.first(); 234 ev = TodoList.first();
225 while ( ev ) { 235 while ( ev ) {
@@ -990,32 +1000,45 @@ void CalendarLocal::setCalendarRemove( int id )
990 } 1000 }
991 } 1001 }
992 { 1002 {
993 QPtrList<Journal> JournalList = mJournalList; 1003 QPtrList<Journal> JournalList = mJournalList;
994 Journal * ev = JournalList.first(); 1004 Journal * ev = JournalList.first();
995 while ( ev ) { 1005 while ( ev ) {
996 if ( ev->calID() == id ) 1006 if ( ev->calID() == id )
997 deleteJournal( ev ); 1007 deleteJournal( ev );
998 ev = JournalList.next(); 1008 ev = JournalList.next();
999 } 1009 }
1000 } 1010 }
1001 1011
1002 clearUndo(0); 1012 clearUndo(0);
1003 1013
1004} 1014}
1005 1015
1016void CalendarLocal::setAllCalendarEnabled( bool enable )
1017{
1018 for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() )
1019 it->setCalEnabled( enable );
1020
1021 for ( Event *it = mEventList.first(); it; it = mEventList.next() )
1022 it->setCalEnabled( enable );
1023
1024 for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() )
1025 it->setCalEnabled( enable );
1026
1027
1028}
1006void CalendarLocal::setCalendarEnabled( int id, bool enable ) 1029void CalendarLocal::setCalendarEnabled( int id, bool enable )
1007{ 1030{
1008 for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) 1031 for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() )
1009 if ( it->calID() == id ) it->setCalEnabled( enable ); 1032 if ( it->calID() == id ) it->setCalEnabled( enable );
1010 1033
1011 for ( Event *it = mEventList.first(); it; it = mEventList.next() ) 1034 for ( Event *it = mEventList.first(); it; it = mEventList.next() )
1012 if ( it->calID() == id ) it->setCalEnabled( enable ); 1035 if ( it->calID() == id ) it->setCalEnabled( enable );
1013 1036
1014 for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() ) 1037 for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() )
1015 if ( it->calID() == id ) it->setCalEnabled( enable ); 1038 if ( it->calID() == id ) it->setCalEnabled( enable );
1016 1039
1017} 1040}
1018 1041
1019void CalendarLocal::setReadOnly( int id, bool enable ) 1042void CalendarLocal::setReadOnly( int id, bool enable )
1020{ 1043{
1021 for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) 1044 for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() )
diff --git a/libkcal/calendarlocal.h b/libkcal/calendarlocal.h
index eb7bf34..b70f0c9 100644
--- a/libkcal/calendarlocal.h
+++ b/libkcal/calendarlocal.h
@@ -181,32 +181,33 @@ class CalendarLocal : public Calendar
181 /** 181 /**
182 Get unfiltered events in a range of dates. If inclusive is set to true, 182 Get unfiltered events in a range of dates. If inclusive is set to true,
183 only events are returned, which are completely included in the range. 183 only events are returned, which are completely included in the range.
184 */ 184 */
185 QPtrList<Event> rawEvents( const QDate &start, const QDate &end, 185 QPtrList<Event> rawEvents( const QDate &start, const QDate &end,
186 bool inclusive = false ); 186 bool inclusive = false );
187 Todo *todo( QString, QString ); 187 Todo *todo( QString, QString );
188 Event *event( QString, QString ); 188 Event *event( QString, QString );
189 void getIncidenceCount( int calId, int& events, int & todos, int & journals); 189 void getIncidenceCount( int calId, int& events, int & todos, int & journals);
190 190
191public slots: 191public slots:
192 void setCalendarEnabled( int id, bool enable ); 192 void setCalendarEnabled( int id, bool enable );
193 void setAlarmEnabled( int id, bool enable ); 193 void setAlarmEnabled( int id, bool enable );
194 void setReadOnly( int id, bool enable ); 194 void setReadOnly( int id, bool enable );
195 void setDefaultCalendarEnabledOnly(); 195 void setDefaultCalendarEnabledOnly();
196 void setCalendarRemove( int id ); 196 void setCalendarRemove( int id );
197 void setAllCalendarEnabled( bool enable );
197 198
198 protected: 199 protected:
199 200
200 // Event* mNextAlarmEvent; 201 // Event* mNextAlarmEvent;
201 QString mNextSummary; 202 QString mNextSummary;
202 QString mNextAlarmEventDateTimeString; 203 QString mNextAlarmEventDateTimeString;
203 QString mLastAlarmNotificationString; 204 QString mLastAlarmNotificationString;
204 QDateTime mNextAlarmEventDateTime; 205 QDateTime mNextAlarmEventDateTime;
205 QDateTime mNextAlarmDateTime; 206 QDateTime mNextAlarmDateTime;
206 void reInitAlarmSettings(); 207 void reInitAlarmSettings();
207 208
208 /** Notification function of IncidenceBase::Observer. */ 209 /** Notification function of IncidenceBase::Observer. */
209 void incidenceUpdated( IncidenceBase *i ) { update( i ); } 210 void incidenceUpdated( IncidenceBase *i ) { update( i ); }
210 211
211 /** inserts an event into its "proper place" in the calendar. */ 212 /** inserts an event into its "proper place" in the calendar. */
212 void insertEvent( Event *event ); 213 void insertEvent( Event *event );