summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-07-30 08:08:47 (UTC)
committer zautrix <zautrix>2005-07-30 08:08:47 (UTC)
commit055928e26613f4ab249bd82be86890ed278372f6 (patch) (unidiff)
tree0dfc4cba815a2ba0b30c71fbd74b340e2bcc8572
parent9cbd19485635dc0edacd14403e4c63d6d469bfce (diff)
downloadkdepimpi-055928e26613f4ab249bd82be86890ed278372f6.zip
kdepimpi-055928e26613f4ab249bd82be86890ed278372f6.tar.gz
kdepimpi-055928e26613f4ab249bd82be86890ed278372f6.tar.bz2
fixxx
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/calendarlocal.cpp31
-rw-r--r--libkcal/calendarlocal.h1
-rw-r--r--libkcal/journal.cpp4
3 files changed, 24 insertions, 12 deletions
diff --git a/libkcal/calendarlocal.cpp b/libkcal/calendarlocal.cpp
index 5baa7dc..e8c969f 100644
--- a/libkcal/calendarlocal.cpp
+++ b/libkcal/calendarlocal.cpp
@@ -247,49 +247,62 @@ void CalendarLocal::stopAllTodos()
247 for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() ) 247 for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() )
248 it->setRunning( false ); 248 it->setRunning( false );
249 249
250} 250}
251void CalendarLocal::close() 251void CalendarLocal::close()
252{ 252{
253 253
254 Todo * i; 254 Todo * i;
255 for( i = mTodoList.first(); i; i = mTodoList.next() ) i->setRunning(false); 255 for( i = mTodoList.first(); i; i = mTodoList.next() ) i->setRunning(false);
256 256
257 mEventList.setAutoDelete( true ); 257 mEventList.setAutoDelete( true );
258 mTodoList.setAutoDelete( true ); 258 mTodoList.setAutoDelete( true );
259 mJournalList.setAutoDelete( true ); 259 mJournalList.setAutoDelete( true );
260 260
261 mEventList.clear(); 261 mEventList.clear();
262 mTodoList.clear(); 262 mTodoList.clear();
263 mJournalList.clear(); 263 mJournalList.clear();
264 264
265 mEventList.setAutoDelete( false ); 265 mEventList.setAutoDelete( false );
266 mTodoList.setAutoDelete( false ); 266 mTodoList.setAutoDelete( false );
267 mJournalList.setAutoDelete( false ); 267 mJournalList.setAutoDelete( false );
268 268
269 setModified( false ); 269 setModified( false );
270} 270}
271 271 void CalendarLocal::clearUndo()
272{
273 if ( mUndoIncidence ) {
274 if ( mUndoIncidence->typeID() == eventID )
275 delete ((Event*) mUndoIncidence) ;
276 else if ( mUndoIncidence->typeID() == todoID )
277 delete ( (Todo*) mUndoIncidence );
278 else if ( mUndoIncidence->typeID() == journalID )
279 delete ( (Journal*) mUndoIncidence );
280 else
281 delete mUndoIncidence;
282 }
283 mUndoIncidence = 0;
284}
272bool CalendarLocal::addAnniversaryNoDup( Event *event ) 285bool CalendarLocal::addAnniversaryNoDup( Event *event )
273{ 286{
274 QString cat; 287 QString cat;
275 bool isBirthday = true; 288 bool isBirthday = true;
276 if( event->categoriesStr() == i18n( "Anniversary" ) ) { 289 if( event->categoriesStr() == i18n( "Anniversary" ) ) {
277 isBirthday = false; 290 isBirthday = false;
278 cat = i18n( "Anniversary" ); 291 cat = i18n( "Anniversary" );
279 } else if( event->categoriesStr() == i18n( "Birthday" ) ) { 292 } else if( event->categoriesStr() == i18n( "Birthday" ) ) {
280 isBirthday = true; 293 isBirthday = true;
281 cat = i18n( "Birthday" ); 294 cat = i18n( "Birthday" );
282 } else { 295 } else {
283 qDebug("addAnniversaryNoDup called without fitting category! "); 296 qDebug("addAnniversaryNoDup called without fitting category! ");
284 return false; 297 return false;
285 } 298 }
286 Event * eve; 299 Event * eve;
287 for ( eve = mEventList.first(); eve ; eve = mEventList.next() ) { 300 for ( eve = mEventList.first(); eve ; eve = mEventList.next() ) {
288 if ( !(eve->categories().contains( cat ) )) 301 if ( !(eve->categories().contains( cat ) ))
289 continue; 302 continue;
290 // now we have an event with fitting category 303 // now we have an event with fitting category
291 if ( eve->dtStart().date() != event->dtStart().date() ) 304 if ( eve->dtStart().date() != event->dtStart().date() )
292 continue; 305 continue;
293 // now we have an event with fitting category+date 306 // now we have an event with fitting category+date
294 if ( eve->summary() != event->summary() ) 307 if ( eve->summary() != event->summary() )
295 continue; 308 continue;
@@ -306,50 +319,50 @@ bool CalendarLocal::addEventNoDup( Event *event )
306 if ( *eve == *event ) { 319 if ( *eve == *event ) {
307 //qDebug("CalendarLocal::Duplicate event found! Not inserted! "); 320 //qDebug("CalendarLocal::Duplicate event found! Not inserted! ");
308 return false; 321 return false;
309 } 322 }
310 } 323 }
311 return addEvent( event ); 324 return addEvent( event );
312} 325}
313 326
314bool CalendarLocal::addEvent( Event *event ) 327bool CalendarLocal::addEvent( Event *event )
315{ 328{
316 insertEvent( event ); 329 insertEvent( event );
317 330
318 event->registerObserver( this ); 331 event->registerObserver( this );
319 332
320 setModified( true ); 333 setModified( true );
321 if ( event->calID() == 0 ) 334 if ( event->calID() == 0 )
322 event->setCalID( mDefaultCalendar ); 335 event->setCalID( mDefaultCalendar );
323 event->setCalEnabled( true ); 336 event->setCalEnabled( true );
324 337
325 return true; 338 return true;
326} 339}
327 340
328void CalendarLocal::deleteEvent( Event *event ) 341void CalendarLocal::deleteEvent( Event *event )
329{ 342{
330 if ( mUndoIncidence ) delete mUndoIncidence; 343 clearUndo();
331 mUndoIncidence = event->clone(); 344 mUndoIncidence = event;
332 if ( mEventList.removeRef( event ) ) { 345 if ( mEventList.removeRef( event ) ) {
333 setModified( true ); 346 setModified( true );
334 } 347 }
335} 348}
336 349
337 350
338Event *CalendarLocal::event( const QString &uid ) 351Event *CalendarLocal::event( const QString &uid )
339{ 352{
340 Event *event; 353 Event *event;
341 Event *retVal = 0; 354 Event *retVal = 0;
342 for ( event = mEventList.first(); event; event = mEventList.next() ) { 355 for ( event = mEventList.first(); event; event = mEventList.next() ) {
343 if ( event->calEnabled() && event->uid() == uid ) { 356 if ( event->calEnabled() && event->uid() == uid ) {
344 if ( retVal ) { 357 if ( retVal ) {
345 if ( retVal->calID() > event->calID() ) { 358 if ( retVal->calID() > event->calID() ) {
346 retVal = event; 359 retVal = event;
347 } 360 }
348 } else { 361 } else {
349 retVal = event; 362 retVal = event;
350 } 363 }
351 } 364 }
352 } 365 }
353 return retVal; 366 return retVal;
354} 367}
355bool CalendarLocal::addTodoNoDup( Todo *todo ) 368bool CalendarLocal::addTodoNoDup( Todo *todo )
@@ -361,51 +374,51 @@ bool CalendarLocal::addTodoNoDup( Todo *todo )
361 return false; 374 return false;
362 } 375 }
363 } 376 }
364 return addTodo( todo ); 377 return addTodo( todo );
365} 378}
366bool CalendarLocal::addTodo( Todo *todo ) 379bool CalendarLocal::addTodo( Todo *todo )
367{ 380{
368 mTodoList.append( todo ); 381 mTodoList.append( todo );
369 382
370 todo->registerObserver( this ); 383 todo->registerObserver( this );
371 384
372 // Set up subtask relations 385 // Set up subtask relations
373 setupRelations( todo ); 386 setupRelations( todo );
374 387
375 setModified( true ); 388 setModified( true );
376 if ( todo->calID() == 0 ) 389 if ( todo->calID() == 0 )
377 todo->setCalID( mDefaultCalendar ); 390 todo->setCalID( mDefaultCalendar );
378 todo->setCalEnabled( true ); 391 todo->setCalEnabled( true );
379 return true; 392 return true;
380} 393}
381 394
382void CalendarLocal::deleteTodo( Todo *todo ) 395void CalendarLocal::deleteTodo( Todo *todo )
383{ 396{
384 // Handle orphaned children 397 // Handle orphaned children
385 if ( mUndoIncidence ) delete mUndoIncidence; 398 clearUndo();
386 removeRelations( todo ); 399 removeRelations( todo );
387 mUndoIncidence = todo->clone(); 400 mUndoIncidence = todo;
388 401
389 if ( mTodoList.removeRef( todo ) ) { 402 if ( mTodoList.removeRef( todo ) ) {
390 setModified( true ); 403 setModified( true );
391 } 404 }
392} 405}
393 406
394QPtrList<Todo> CalendarLocal::rawTodos() 407QPtrList<Todo> CalendarLocal::rawTodos()
395{ 408{
396 QPtrList<Todo> el; 409 QPtrList<Todo> el;
397 for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() ) 410 for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() )
398 if ( it->calEnabled() ) el.append( it ); 411 if ( it->calEnabled() ) el.append( it );
399 return el; 412 return el;
400} 413}
401Todo *CalendarLocal::todo( QString syncProf, QString id ) 414Todo *CalendarLocal::todo( QString syncProf, QString id )
402{ 415{
403 Todo *todo; 416 Todo *todo;
404 for ( todo = mTodoList.first(); todo; todo = mTodoList.next() ) { 417 for ( todo = mTodoList.first(); todo; todo = mTodoList.next() ) {
405 if ( todo->calEnabled() && todo->getID( syncProf ) == id ) return todo; 418 if ( todo->calEnabled() && todo->getID( syncProf ) == id ) return todo;
406 } 419 }
407 420
408 return 0; 421 return 0;
409} 422}
410void CalendarLocal::removeSyncInfo( QString syncProfile) 423void CalendarLocal::removeSyncInfo( QString syncProfile)
411{ 424{
@@ -865,51 +878,50 @@ QPtrList<Event> CalendarLocal::rawEventsForDate( const QDateTime &qdt )
865 878
866QPtrList<Event> CalendarLocal::rawEvents() 879QPtrList<Event> CalendarLocal::rawEvents()
867{ 880{
868 QPtrList<Event> el; 881 QPtrList<Event> el;
869 for ( Event *it = mEventList.first(); it; it = mEventList.next() ) 882 for ( Event *it = mEventList.first(); it; it = mEventList.next() )
870 if ( it->calEnabled() ) el.append( it ); 883 if ( it->calEnabled() ) el.append( it );
871 return el; 884 return el;
872} 885}
873 886
874bool CalendarLocal::addJournal(Journal *journal) 887bool CalendarLocal::addJournal(Journal *journal)
875{ 888{
876 mJournalList.append(journal); 889 mJournalList.append(journal);
877 890
878 journal->registerObserver( this ); 891 journal->registerObserver( this );
879 892
880 setModified( true ); 893 setModified( true );
881 if ( journal->calID() == 0 ) 894 if ( journal->calID() == 0 )
882 journal->setCalID( mDefaultCalendar ); 895 journal->setCalID( mDefaultCalendar );
883 journal->setCalEnabled( true ); 896 journal->setCalEnabled( true );
884 return true; 897 return true;
885} 898}
886 899
887void CalendarLocal::deleteJournal( Journal *journal ) 900void CalendarLocal::deleteJournal( Journal *journal )
888{ 901{
889 if ( mUndoIncidence ) delete mUndoIncidence; 902 clearUndo();
890 mUndoIncidence = journal->clone(); 903 mUndoIncidence = journal;
891 mUndoIncidence->setSummary( mUndoIncidence->description().left(25));
892 if ( mJournalList.removeRef(journal) ) { 904 if ( mJournalList.removeRef(journal) ) {
893 setModified( true ); 905 setModified( true );
894 } 906 }
895} 907}
896 908
897QPtrList<Journal> CalendarLocal::journals4Date( const QDate & date ) 909QPtrList<Journal> CalendarLocal::journals4Date( const QDate & date )
898{ 910{
899 QPtrList<Journal> el; 911 QPtrList<Journal> el;
900 for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) 912 for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() )
901 if ( it->calEnabled() && it->dtStart().date() == date) el.append( it ); 913 if ( it->calEnabled() && it->dtStart().date() == date) el.append( it );
902 return el; 914 return el;
903} 915}
904Journal *CalendarLocal::journal( const QDate &date ) 916Journal *CalendarLocal::journal( const QDate &date )
905{ 917{
906// kdDebug(5800) << "CalendarLocal::journal() " << date.toString() << endl; 918// kdDebug(5800) << "CalendarLocal::journal() " << date.toString() << endl;
907 919
908 for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) 920 for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() )
909 if ( it->calEnabled() && it->dtStart().date() == date ) 921 if ( it->calEnabled() && it->dtStart().date() == date )
910 return it; 922 return it;
911 923
912 return 0; 924 return 0;
913} 925}
914 926
915Journal *CalendarLocal::journal( const QString &uid ) 927Journal *CalendarLocal::journal( const QString &uid )
@@ -946,50 +958,49 @@ void CalendarLocal::setCalendarRemove( int id )
946 deleteEvent( ev ); 958 deleteEvent( ev );
947 ev = EventList.next(); 959 ev = EventList.next();
948 } 960 }
949 } 961 }
950 { 962 {
951 963
952 QPtrList<Todo> TodoList = mTodoList; 964 QPtrList<Todo> TodoList = mTodoList;
953 Todo * ev = TodoList.first(); 965 Todo * ev = TodoList.first();
954 while ( ev ) { 966 while ( ev ) {
955 if ( ev->calID() == id ) 967 if ( ev->calID() == id )
956 deleteTodo( ev ); 968 deleteTodo( ev );
957 ev = TodoList.next(); 969 ev = TodoList.next();
958 } 970 }
959 } 971 }
960 { 972 {
961 QPtrList<Journal> JournalList = mJournalList; 973 QPtrList<Journal> JournalList = mJournalList;
962 Journal * ev = JournalList.first(); 974 Journal * ev = JournalList.first();
963 while ( ev ) { 975 while ( ev ) {
964 if ( ev->calID() == id ) 976 if ( ev->calID() == id )
965 deleteJournal( ev ); 977 deleteJournal( ev );
966 ev = JournalList.next(); 978 ev = JournalList.next();
967 } 979 }
968 } 980 }
969 981
970 if ( mUndoIncidence ) delete mUndoIncidence; 982 clearUndo();
971 mUndoIncidence = 0;
972 983
973} 984}
974 985
975void CalendarLocal::setCalendarEnabled( int id, bool enable ) 986void CalendarLocal::setCalendarEnabled( int id, bool enable )
976{ 987{
977 for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) 988 for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() )
978 if ( it->calID() == id ) it->setCalEnabled( enable ); 989 if ( it->calID() == id ) it->setCalEnabled( enable );
979 990
980 for ( Event *it = mEventList.first(); it; it = mEventList.next() ) 991 for ( Event *it = mEventList.first(); it; it = mEventList.next() )
981 if ( it->calID() == id ) it->setCalEnabled( enable ); 992 if ( it->calID() == id ) it->setCalEnabled( enable );
982 993
983 for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() ) 994 for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() )
984 if ( it->calID() == id ) it->setCalEnabled( enable ); 995 if ( it->calID() == id ) it->setCalEnabled( enable );
985 996
986} 997}
987 998
988void CalendarLocal::setReadOnly( int id, bool enable ) 999void CalendarLocal::setReadOnly( int id, bool enable )
989{ 1000{
990 for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) 1001 for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() )
991 if ( it->calID() == id ) it->setReadOnly( enable ); 1002 if ( it->calID() == id ) it->setReadOnly( enable );
992 1003
993 for ( Event *it = mEventList.first(); it; it = mEventList.next() ) 1004 for ( Event *it = mEventList.first(); it; it = mEventList.next() )
994 if ( it->calID() == id ) it->setReadOnly( enable ); 1005 if ( it->calID() == id ) it->setReadOnly( enable );
995 1006
diff --git a/libkcal/calendarlocal.h b/libkcal/calendarlocal.h
index a7a85c8..ae7e30c 100644
--- a/libkcal/calendarlocal.h
+++ b/libkcal/calendarlocal.h
@@ -48,48 +48,49 @@ class CalendarLocal : public Calendar
48 bool mergeCalendarFile( QString name ); 48 bool mergeCalendarFile( QString name );
49 bool mergeCalendar( Calendar* cal ); 49 bool mergeCalendar( Calendar* cal );
50 Incidence* incidenceForUid( const QString& uid, bool doNotCheckDuplicates ); 50 Incidence* incidenceForUid( const QString& uid, bool doNotCheckDuplicates );
51 void setSyncEventsReadOnly(); 51 void setSyncEventsReadOnly();
52 void stopAllTodos(); 52 void stopAllTodos();
53 /** 53 /**
54 Loads a calendar on disk in vCalendar or iCalendar format into the current 54 Loads a calendar on disk in vCalendar or iCalendar format into the current
55 calendar. Any information already present is lost. 55 calendar. Any information already present is lost.
56 @return true, if successfull, false on error. 56 @return true, if successfull, false on error.
57 @param fileName the name of the calendar on disk. 57 @param fileName the name of the calendar on disk.
58 */ 58 */
59 bool load( const QString &fileName ); 59 bool load( const QString &fileName );
60 /** 60 /**
61 Writes out the calendar to disk in the specified \a format. 61 Writes out the calendar to disk in the specified \a format.
62 CalendarLocal takes ownership of the CalFormat object. 62 CalendarLocal takes ownership of the CalFormat object.
63 @return true, if successfull, false on error. 63 @return true, if successfull, false on error.
64 @param fileName the name of the file 64 @param fileName the name of the file
65 */ 65 */
66 bool save( const QString &fileName, CalFormat *format = 0 ); 66 bool save( const QString &fileName, CalFormat *format = 0 );
67 67
68 /** 68 /**
69 Clears out the current calendar, freeing all used memory etc. etc. 69 Clears out the current calendar, freeing all used memory etc. etc.
70 */ 70 */
71 void close(); 71 void close();
72 void clearUndo();
72 73
73 void save() {} 74 void save() {}
74 75
75 /** 76 /**
76 Add Event to calendar. 77 Add Event to calendar.
77 */ 78 */
78 void removeSyncInfo( QString syncProfile); 79 void removeSyncInfo( QString syncProfile);
79 bool addAnniversaryNoDup( Event *event ); 80 bool addAnniversaryNoDup( Event *event );
80 bool addEventNoDup( Event *event ); 81 bool addEventNoDup( Event *event );
81 bool addEvent( Event *event ); 82 bool addEvent( Event *event );
82 /** 83 /**
83 Deletes an event from this calendar. 84 Deletes an event from this calendar.
84 */ 85 */
85 void deleteEvent( Event *event ); 86 void deleteEvent( Event *event );
86 87
87 /** 88 /**
88 Retrieves an event on the basis of the unique string ID. 89 Retrieves an event on the basis of the unique string ID.
89 */ 90 */
90 Event *event( const QString &uid ); 91 Event *event( const QString &uid );
91 /** 92 /**
92 Return unfiltered list of all events in calendar. 93 Return unfiltered list of all events in calendar.
93 */ 94 */
94 QPtrList<Event> rawEvents(); 95 QPtrList<Event> rawEvents();
95 QPtrList<Event> getExternLastSyncEvents(); 96 QPtrList<Event> getExternLastSyncEvents();
diff --git a/libkcal/journal.cpp b/libkcal/journal.cpp
index c4e4474..328db46 100644
--- a/libkcal/journal.cpp
+++ b/libkcal/journal.cpp
@@ -3,49 +3,49 @@
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21#include "journal.h" 21#include "journal.h"
22 22
23using namespace KCal; 23using namespace KCal;
24 24
25Journal::Journal() 25Journal::Journal()
26{ 26{
27 qDebug("New JJJ "); 27
28} 28}
29 29
30Journal::~Journal() 30Journal::~Journal()
31{ 31{
32 qDebug("delete JJJ "); 32
33} 33}
34 34
35Incidence *Journal::clone() 35Incidence *Journal::clone()
36{ 36{
37 return new Journal(*this); 37 return new Journal(*this);
38} 38}
39 39
40 40
41bool KCal::operator==( const Journal& j1, const Journal& j2 ) 41bool KCal::operator==( const Journal& j1, const Journal& j2 )
42{ 42{
43 return operator==( (const Incidence&)j1, (const Incidence&)j2 ); 43 return operator==( (const Incidence&)j1, (const Incidence&)j2 );
44} 44}
45 45
46 46
47QDateTime Journal::getNextAlarmDateTime( bool * ok, int * offset, QDateTime start_dt ) const 47QDateTime Journal::getNextAlarmDateTime( bool * ok, int * offset, QDateTime start_dt ) const
48{ 48{
49 *ok = false; 49 *ok = false;
50 return QDateTime (); 50 return QDateTime ();
51} 51}