-rw-r--r-- | libkcal/event.cpp | 20 | ||||
-rw-r--r-- | libkcal/event.h | 1 |
2 files changed, 21 insertions, 0 deletions
diff --git a/libkcal/event.cpp b/libkcal/event.cpp index 5285559..ad66639 100644 --- a/libkcal/event.cpp +++ b/libkcal/event.cpp @@ -168,12 +168,32 @@ Event::Transparency Event::transparency() const void Event::setDuration(int seconds) { setHasEndDate(false); Incidence::setDuration(seconds); } +bool Event::matchTime(QDateTime*startDT, QDateTime* endDT) +{ + if ( ! doesRecur() ) { + if ( doesFloat() ) { + if ( mDtEnd.addDays( 1 ) < *startDT) + return false; + if ( endDT && mDtStart > * endDT) + return false; + } else { + if ( mDtEnd < *startDT ) + return false; + if ( endDT && mDtStart > * endDT) + return false; + } + } else { + if ( endDT && mDtStart > * endDT) + return false; + } + return true; +} bool Event::isOverlapping ( Event* testEvent, QDateTime* overlapDT, QDateTime* startDT ) { if ( testEvent == this ) return false; if ( ! doesRecur() && !testEvent->doesRecur() ) { QDateTime te; diff --git a/libkcal/event.h b/libkcal/event.h index e6055a5..2da9770 100644 --- a/libkcal/event.h +++ b/libkcal/event.h @@ -35,12 +35,13 @@ class Event : public Incidence public: enum Transparency { Opaque, Transparent }; typedef ListBase<Event> List; Event(); Event(const Event &); ~Event(); + bool matchTime(QDateTime*startDT, QDateTime* endDT); QCString type() const { return "Event"; } IncTypeID typeID() const { return eventID; } Incidence *clone(); QDateTime getNextAlarmDateTime( bool * ok, int * offset ,QDateTime start_dt ) const; |