summaryrefslogtreecommitdiffabout
path: root/libkcal
Unidiff
Diffstat (limited to 'libkcal') (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
@@ -255,33 +255,46 @@ void CalendarLocal::close()
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() ) {
@@ -314,34 +327,34 @@ bool CalendarLocal::addEventNoDup( Event *event )
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 }
@@ -369,35 +382,35 @@ bool CalendarLocal::addTodo( Todo *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;
@@ -873,35 +886,34 @@ QPtrList<Event> CalendarLocal::rawEvents()
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
@@ -954,34 +966,33 @@ void CalendarLocal::setCalendarRemove( int id )
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
diff --git a/libkcal/calendarlocal.h b/libkcal/calendarlocal.h
index a7a85c8..ae7e30c 100644
--- a/libkcal/calendarlocal.h
+++ b/libkcal/calendarlocal.h
@@ -56,32 +56,33 @@ class CalendarLocal : public Calendar
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 /**
diff --git a/libkcal/journal.cpp b/libkcal/journal.cpp
index c4e4474..328db46 100644
--- a/libkcal/journal.cpp
+++ b/libkcal/journal.cpp
@@ -11,38 +11,38 @@
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{