-rw-r--r-- | libkcal/calendar.cpp | 14 | ||||
-rw-r--r-- | libkcal/calendar.h | 9 | ||||
-rw-r--r-- | libkcal/calendarlocal.cpp | 80 | ||||
-rw-r--r-- | libkcal/calendarlocal.h | 3 | ||||
-rw-r--r-- | libkcal/calfilter.cpp | 9 | ||||
-rw-r--r-- | libkcal/calfilter.h | 1 | ||||
-rw-r--r-- | libkcal/event.cpp | 4 | ||||
-rw-r--r-- | libkcal/incidencebase.cpp | 33 | ||||
-rw-r--r-- | libkcal/incidencebase.h | 9 | ||||
-rw-r--r-- | libkcal/todo.cpp | 2 |
10 files changed, 146 insertions, 18 deletions
diff --git a/libkcal/calendar.cpp b/libkcal/calendar.cpp index 7e8e2c5..f4350d9 100644 --- a/libkcal/calendar.cpp +++ b/libkcal/calendar.cpp @@ -56,3 +56,3 @@ void Calendar::init() mModified = false; - + mDefaultCalendar = 1; // Setup default filter, which does nothing @@ -114,3 +114,10 @@ Calendar::~Calendar() } - +void Calendar::setDefaultCalendar( int d ) +{ + mDefaultCalendar = d; +} +int Calendar::defaultCalendar() +{ + return mDefaultCalendar; +} const QString &Calendar::getOwner() const @@ -350,3 +357,4 @@ bool Calendar::addIncidence(Incidence *i) Incidence::AddVisitor<Calendar> v(this); - + i->setCalID( mDefaultCalendar ); + i->setCalEnabled( true ); return i->accept(v); diff --git a/libkcal/calendar.h b/libkcal/calendar.h index ab40970..4c6760f 100644 --- a/libkcal/calendar.h +++ b/libkcal/calendar.h @@ -304,3 +304,7 @@ public: QString loadedProductId(); - + void setDefaultCalendar( int ); + int defaultCalendar(); + virtual void setCalendarEnabled( int id, bool enable ) = 0; + virtual void setAlarmEnabled( int id, bool enable ) = 0; + virtual void setDefaultCalendarEnabledOnly() = 0; signals: @@ -328,4 +332,6 @@ public: bool inclusive = false ) = 0; + Incidence *mNextAlarmIncidence; Incidence *mUndoIncidence; + int mDefaultCalendar; @@ -341,2 +347,3 @@ private: CalFilter *mDefaultFilter; + diff --git a/libkcal/calendarlocal.cpp b/libkcal/calendarlocal.cpp index fe74052..c5500bf 100644 --- a/libkcal/calendarlocal.cpp +++ b/libkcal/calendarlocal.cpp @@ -152,2 +152,4 @@ bool CalendarLocal::addEvent( Event *event ) setModified( true ); + event->setCalID( mDefaultCalendar ); + event->setCalEnabled( true ); @@ -172,3 +174,3 @@ 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; @@ -200,3 +202,4 @@ bool CalendarLocal::addTodo( Todo *todo ) setModified( true ); - + todo->setCalID( mDefaultCalendar ); + todo->setCalEnabled( true ); return true; @@ -218,3 +221,6 @@ 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; } @@ -224,3 +230,3 @@ Todo *CalendarLocal::todo( QString syncProf, QString id ) for ( todo = mTodoList.first(); todo; todo = mTodoList.next() ) { - if ( todo->getID( syncProf ) == id ) return todo; + if ( todo->calEnabled() && todo->getID( syncProf ) == id ) return todo; } @@ -269,3 +275,3 @@ Event *CalendarLocal::event( QString syncProf, QString id ) for ( todo = mEventList.first(); todo; todo = mEventList.next() ) { - if ( todo->getID( syncProf ) == id ) return todo; + if ( todo->calEnabled() && todo->getID( syncProf ) == id ) return todo; } @@ -278,3 +284,3 @@ Todo *CalendarLocal::todo( const QString &uid ) for ( todo = mTodoList.first(); todo; todo = mTodoList.next() ) { - if ( todo->uid() == uid ) return todo; + if ( todo->calEnabled() && todo->uid() == uid ) return todo; } @@ -391,2 +397,3 @@ QPtrList<Todo> CalendarLocal::todos( const QDate &date ) for ( todo = mTodoList.first(); todo; todo = mTodoList.next() ) { + if ( !todo->calEnabled() ) continue; if ( todo->hasDueDate() && todo->dtDue().date() == date ) { @@ -423,2 +430,3 @@ QDateTime CalendarLocal::nextAlarm( int daysTo ) for( e = mEventList.first(); e; e = mEventList.next() ) { + if ( !e->calEnabled() ) continue; next = e->getNextAlarmDateTime(& ok, &offset, QDateTime::currentDateTime() ) ; @@ -436,2 +444,3 @@ QDateTime CalendarLocal::nextAlarm( int daysTo ) for( t = mTodoList.first(); t; t = mTodoList.next() ) { + if ( !t->calEnabled() ) continue; next = t->getNextAlarmDateTime(& ok, &offset, QDateTime::currentDateTime() ) ; @@ -466,2 +475,3 @@ 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 ); @@ -472,3 +482,4 @@ Alarm::List CalendarLocal::alarms( const QDateTime &from, const QDateTime &to ) for( t = mTodoList.first(); t; t = mTodoList.next() ) { - appendAlarms( alarms, t, from, to ); + if ( !t->calEnabled() ) continue; + appendAlarms( alarms, t, from, to ); } @@ -545,2 +556,3 @@ QPtrList<Event> CalendarLocal::rawEventsForDate( const QDate &qd, bool sorted ) for( event = mEventList.first(); event; event = mEventList.next() ) { + if ( !event->calEnabled() ) continue; if ( event->doesRecur() ) { @@ -597,2 +609,3 @@ QPtrList<Event> CalendarLocal::rawEvents( const QDate &start, const QDate &end, for( event = mEventList.first(); event; event = mEventList.next() ) { + if ( !event->calEnabled() ) continue; if ( event->doesRecur() ) { @@ -672,3 +685,6 @@ 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; } @@ -687,3 +703,4 @@ bool CalendarLocal::addJournal(Journal *journal) setModified( true ); - + journal->setCalID( mDefaultCalendar ); + journal->setCalEnabled( true ); return true; @@ -706,3 +723,3 @@ 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; @@ -715,3 +732,3 @@ 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; @@ -723,4 +740,43 @@ 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); + +} diff --git a/libkcal/calendarlocal.h b/libkcal/calendarlocal.h index 98ec710..b25fcbe 100644 --- a/libkcal/calendarlocal.h +++ b/libkcal/calendarlocal.h @@ -182,2 +182,5 @@ class CalendarLocal : public Calendar + void setCalendarEnabled( int id, bool enable ); + void setAlarmEnabled( int id, bool enable ); + void setDefaultCalendarEnabledOnly(); diff --git a/libkcal/calfilter.cpp b/libkcal/calfilter.cpp index 20078a7..3510c7d 100644 --- a/libkcal/calfilter.cpp +++ b/libkcal/calfilter.cpp @@ -80,2 +80,4 @@ bool CalFilter::filterCalendarItem(Incidence *in) { + if ( !in->calEnabled() ) + return false; if ( in->typeID() == eventID ) @@ -90,2 +92,5 @@ bool CalFilter::filterEvent(Event *event) { + + if ( !event->calEnabled() ) + return false; if (mCriteria & HideEvents) @@ -100,2 +105,4 @@ bool CalFilter::filterJournal(Journal *j) { + if ( !j->calEnabled() ) + return false; if (mCriteria & HideJournals) @@ -106,2 +113,4 @@ bool CalFilter::filterTodo(Todo *todo) { + if ( !todo->calEnabled() ) + return false; if (mCriteria & HideTodos) diff --git a/libkcal/calfilter.h b/libkcal/calfilter.h index 29db441..e349770 100644 --- a/libkcal/calfilter.h +++ b/libkcal/calfilter.h @@ -28,2 +28,3 @@ #include "todo.h" +#include "journal.h" diff --git a/libkcal/event.cpp b/libkcal/event.cpp index 9b99855..7cd81fa 100644 --- a/libkcal/event.cpp +++ b/libkcal/event.cpp @@ -175,3 +175,5 @@ QDateTime Event::getNextAlarmDateTime( bool * ok, int * offset, QDateTime start_ { - + *ok = false; + if ( !alarmEnabled() ) + return QDateTime (); bool yes; diff --git a/libkcal/incidencebase.cpp b/libkcal/incidencebase.cpp index b5fe2e6..2ddbb01 100644 --- a/libkcal/incidencebase.cpp +++ b/libkcal/incidencebase.cpp @@ -46,2 +46,5 @@ IncidenceBase::IncidenceBase() : mAttendees.setAutoDelete( true ); + mCalEnabled = true; + mAlarmEnabled = true; + mCalID = 0; } @@ -51,2 +54,3 @@ IncidenceBase::IncidenceBase(const IncidenceBase &i) : { + mReadOnly = i.mReadOnly; @@ -57,2 +61,5 @@ IncidenceBase::IncidenceBase(const IncidenceBase &i) : mUid = i.mUid; + mCalEnabled = i.mCalEnabled; + mAlarmEnabled = i.mAlarmEnabled; + mCalID = i.mCalID; QPtrList<Attendee> attendees = i.attendees(); @@ -134,2 +141,28 @@ QDateTime IncidenceBase::getEvenTime( QDateTime dt ) +void IncidenceBase::setCalID( int id ) +{ + mCalID = id; +} +int IncidenceBase::calID() const +{ + return mCalID; +} +void IncidenceBase::setCalEnabled( bool b ) +{ + mCalEnabled = b; +} +bool IncidenceBase::calEnabled() const +{ + return mCalEnabled; +} + +void IncidenceBase::setAlarmEnabled( bool b ) +{ + mAlarmEnabled = b; +} +bool IncidenceBase::alarmEnabled() const +{ + return mAlarmEnabled; +} + diff --git a/libkcal/incidencebase.h b/libkcal/incidencebase.h index 05209e0..dc6024a 100644 --- a/libkcal/incidencebase.h +++ b/libkcal/incidencebase.h @@ -143,2 +143,8 @@ class IncidenceBase : public CustomProperties void updated(); + void setCalID( int id ); + int calID() const; + void setCalEnabled( bool ); + bool calEnabled() const; + void setAlarmEnabled( bool ); + bool alarmEnabled() const; @@ -153,2 +159,5 @@ class IncidenceBase : public CustomProperties QString mUid; + int mCalID; + bool mCalEnabled; + bool mAlarmEnabled; QDateTime mLastModified; diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp index c97a61e..42274ff 100644 --- a/libkcal/todo.cpp +++ b/libkcal/todo.cpp @@ -519,3 +519,3 @@ QDateTime Todo::getNextAlarmDateTime( bool * ok, int * offset, QDateTime start_d { - if ( isCompleted() || ! hasDueDate() || cancelled() ) { + if ( isCompleted() || ! hasDueDate() || cancelled() || !alarmEnabled() ) { *ok = false; |