Diffstat (limited to 'core/pim/datebook/holiday/christian') (more/less context) (show whitespace changes)
-rw-r--r-- | core/pim/datebook/holiday/christian/chrisholiday.cpp | 50 | ||||
-rw-r--r-- | core/pim/datebook/holiday/christian/chrisholiday.h | 2 |
2 files changed, 51 insertions, 1 deletions
diff --git a/core/pim/datebook/holiday/christian/chrisholiday.cpp b/core/pim/datebook/holiday/christian/chrisholiday.cpp index ef6516e..f8e310f 100644 --- a/core/pim/datebook/holiday/christian/chrisholiday.cpp +++ b/core/pim/datebook/holiday/christian/chrisholiday.cpp @@ -1,6 +1,7 @@ #include "chrisholiday.h" #include <qobject.h> +#include <qpe/event.h> QString ChrisHoliday::description() { @@ -87,9 +88,56 @@ void ChrisHoliday::calc_easter() _days[d.addDays(60)].append(QObject::tr("Corpus Christi","holidays")); } -QMap<QDate,QStringList> ChrisHoliday::entries(const QDate&,const QDate&) +QMap<QDate,QStringList> ChrisHoliday::entries(const QDate&start,const QDate&end) { QMap<QDate,QStringList> ret; + if (start==end) { + ret[start]=entries(start); + return ret; + } + QDate d; + int daysto; + if (end < start) { + d = end; + daysto = end.daysTo(start); + } else { + d = start; + daysto = start.daysTo(end); + } + QStringList temp; + for (int i=0;i<daysto;++i) { + temp = entries(d.addDays(i)); + if (temp.count()==0) continue; + ret[d.addDays(i)]+=temp; + temp.clear(); + } + return ret; +} + +QValueList<EffectiveEvent> ChrisHoliday::events(const QDate&start,const QDate&end) +{ + QValueList<EffectiveEvent> ret; + QDate d = (start<end?start:end); + int daysto = start.daysTo(end); + if (daysto < 0) { + daysto = end.daysTo(start); + } + + QStringList temp; + for (int i =0; i<daysto;++i) { + temp = entries(d.addDays(i)); + if (temp.count()==0) { + continue; + } + for (unsigned j=0;j<temp.count();++j) { + Event ev; + ev.setDescription(temp[j]); + ev.setStart(d.addDays(i)); + ev.setAllDay(true); + ret.append(EffectiveEvent(ev,d.addDays(i))); + } + } + return ret; } diff --git a/core/pim/datebook/holiday/christian/chrisholiday.h b/core/pim/datebook/holiday/christian/chrisholiday.h index 9ae500e..1ecb813 100644 --- a/core/pim/datebook/holiday/christian/chrisholiday.h +++ b/core/pim/datebook/holiday/christian/chrisholiday.h @@ -20,6 +20,8 @@ public: virtual QStringList entries(const QDate&); virtual QStringList entries(unsigned year, unsigned month, unsigned day); virtual QMap<QDate,QStringList> entries(const QDate&,const QDate&); + virtual QValueList<EffectiveEvent> events(const QDate&,const QDate&); + protected: HList _internallist; unsigned int _lastyear; |