-rw-r--r-- | libkcal/calendarlocal.cpp | 78 |
1 files changed, 67 insertions, 11 deletions
diff --git a/libkcal/calendarlocal.cpp b/libkcal/calendarlocal.cpp index fe74052..c5500bf 100644 --- a/libkcal/calendarlocal.cpp +++ b/libkcal/calendarlocal.cpp @@ -151,4 +151,6 @@ bool CalendarLocal::addEvent( Event *event ) setModified( true ); + event->setCalID( mDefaultCalendar ); + event->setCalEnabled( true ); return true; @@ -171,5 +173,5 @@ Event *CalendarLocal::event( const QString &uid ) for ( event = mEventList.first(); event; event = mEventList.next() ) { - if ( event->uid() == uid ) { + if ( event->uid() == uid && event->calEnabled() ) { return event; } @@ -199,5 +201,6 @@ bool CalendarLocal::addTodo( Todo *todo ) setModified( true ); - + todo->setCalID( mDefaultCalendar ); + todo->setCalEnabled( true ); return true; } @@ -217,5 +220,8 @@ void CalendarLocal::deleteTodo( Todo *todo ) QPtrList<Todo> CalendarLocal::rawTodos() { - return mTodoList; + QPtrList<Todo> el; + for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() ) + if ( it->calEnabled() ) el.append( it ); + return el; } Todo *CalendarLocal::todo( QString syncProf, QString id ) @@ -223,5 +229,5 @@ Todo *CalendarLocal::todo( QString syncProf, QString id ) Todo *todo; for ( todo = mTodoList.first(); todo; todo = mTodoList.next() ) { - if ( todo->getID( syncProf ) == id ) return todo; + if ( todo->calEnabled() && todo->getID( syncProf ) == id ) return todo; } @@ -268,5 +274,5 @@ Event *CalendarLocal::event( QString syncProf, QString id ) Event *todo; for ( todo = mEventList.first(); todo; todo = mEventList.next() ) { - if ( todo->getID( syncProf ) == id ) return todo; + if ( todo->calEnabled() && todo->getID( syncProf ) == id ) return todo; } @@ -277,5 +283,5 @@ Todo *CalendarLocal::todo( const QString &uid ) Todo *todo; for ( todo = mTodoList.first(); todo; todo = mTodoList.next() ) { - if ( todo->uid() == uid ) return todo; + if ( todo->calEnabled() && todo->uid() == uid ) return todo; } @@ -390,4 +396,5 @@ QPtrList<Todo> CalendarLocal::todos( const QDate &date ) Todo *todo; for ( todo = mTodoList.first(); todo; todo = mTodoList.next() ) { + if ( !todo->calEnabled() ) continue; if ( todo->hasDueDate() && todo->dtDue().date() == date ) { todos.append( todo ); @@ -422,4 +429,5 @@ QDateTime CalendarLocal::nextAlarm( int daysTo ) mNextAlarmIncidence = 0; for( e = mEventList.first(); e; e = mEventList.next() ) { + if ( !e->calEnabled() ) continue; next = e->getNextAlarmDateTime(& ok, &offset, QDateTime::currentDateTime() ) ; if ( ok ) { @@ -435,4 +443,5 @@ QDateTime CalendarLocal::nextAlarm( int daysTo ) Todo *t; for( t = mTodoList.first(); t; t = mTodoList.next() ) { + if ( !t->calEnabled() ) continue; next = t->getNextAlarmDateTime(& ok, &offset, QDateTime::currentDateTime() ) ; if ( ok ) { @@ -465,4 +474,5 @@ Alarm::List CalendarLocal::alarms( const QDateTime &from, const QDateTime &to ) for( e = mEventList.first(); e; e = mEventList.next() ) { + if ( !e->calEnabled() ) continue; if ( e->doesRecur() ) appendRecurringAlarms( alarms, e, from, to ); else appendAlarms( alarms, e, from, to ); @@ -471,4 +481,5 @@ Alarm::List CalendarLocal::alarms( const QDateTime &from, const QDateTime &to ) Todo *t; for( t = mTodoList.first(); t; t = mTodoList.next() ) { + if ( !t->calEnabled() ) continue; appendAlarms( alarms, t, from, to ); } @@ -544,4 +555,5 @@ QPtrList<Event> CalendarLocal::rawEventsForDate( const QDate &qd, bool sorted ) Event *event; for( event = mEventList.first(); event; event = mEventList.next() ) { + if ( !event->calEnabled() ) continue; if ( event->doesRecur() ) { if ( event->isMultiDay() ) { @@ -596,4 +608,5 @@ QPtrList<Event> CalendarLocal::rawEvents( const QDate &start, const QDate &end, // Get non-recurring events for( event = mEventList.first(); event; event = mEventList.next() ) { + if ( !event->calEnabled() ) continue; if ( event->doesRecur() ) { QDate rStart = event->dtStart().date(); @@ -671,5 +684,8 @@ QPtrList<Event> CalendarLocal::rawEventsForDate( const QDateTime &qdt ) QPtrList<Event> CalendarLocal::rawEvents() { - return mEventList; + QPtrList<Event> el; + for ( Event *it = mEventList.first(); it; it = mEventList.next() ) + if ( it->calEnabled() ) el.append( it ); + return el; } @@ -686,5 +702,6 @@ bool CalendarLocal::addJournal(Journal *journal) setModified( true ); - + journal->setCalID( mDefaultCalendar ); + journal->setCalEnabled( true ); return true; } @@ -705,5 +722,5 @@ Journal *CalendarLocal::journal( const QDate &date ) for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) - if ( it->dtStart().date() == date ) + if ( it->calEnabled() && it->dtStart().date() == date ) return it; @@ -714,5 +731,5 @@ Journal *CalendarLocal::journal( const QString &uid ) { for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) - if ( it->uid() == uid ) + if ( it->calEnabled() && it->uid() == uid ) return it; @@ -722,5 +739,44 @@ Journal *CalendarLocal::journal( const QString &uid ) QPtrList<Journal> CalendarLocal::journals() { - return mJournalList; + QPtrList<Journal> el; + for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) + if ( it->calEnabled() ) el.append( it ); + return el; } +void CalendarLocal::setCalendarEnabled( int id, bool enable ) +{ + for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) + if ( it->calID() == id ) it->setCalEnabled( enable ); + + for ( Event *it = mEventList.first(); it; it = mEventList.next() ) + if ( it->calID() == id ) it->setCalEnabled( enable ); + + for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() ) + if ( it->calID() == id ) it->setCalEnabled( enable ); + +} +void CalendarLocal::setAlarmEnabled( int id, bool enable ) +{ + for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) + if ( it->calID() == id ) it->setAlarmEnabled( enable ); + + for ( Event *it = mEventList.first(); it; it = mEventList.next() ) + if ( it->calID() == id ) it->setAlarmEnabled( enable ); + + for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() ) + if ( it->calID() == id ) it->setAlarmEnabled( enable ); + +} +void CalendarLocal::setDefaultCalendarEnabledOnly() +{ + for ( Journal *it = mJournalList.first(); it; it = mJournalList.next() ) + it->setCalEnabled( it->calID() == mDefaultCalendar ); + + for ( Event *it = mEventList.first(); it; it = mEventList.next() ) + it->setCalEnabled( it->calID() == mDefaultCalendar); + + for ( Todo *it = mTodoList.first(); it; it = mTodoList.next() ) + it->setCalEnabled( it->calID() == mDefaultCalendar); + +} |