-rw-r--r-- | core/pim/datebook/holiday/christian/chrisholiday.cpp | 87 | ||||
-rw-r--r-- | core/pim/datebook/holiday/christian/chrisholiday.h | 33 | ||||
-rw-r--r-- | core/pim/datebook/holiday/christian/christian-holidays.pro | 20 | ||||
-rw-r--r-- | core/pim/datebook/holiday/christian/config.in | 4 | ||||
-rw-r--r-- | core/pim/datebook/holiday/christian/hlist.cpp | 18 | ||||
-rw-r--r-- | core/pim/datebook/holiday/christian/hlist.h | 16 | ||||
-rw-r--r-- | core/pim/datebook/holiday/dummy/config.in | 6 | ||||
-rw-r--r-- | packages | 1 |
8 files changed, 181 insertions, 4 deletions
diff --git a/core/pim/datebook/holiday/christian/chrisholiday.cpp b/core/pim/datebook/holiday/christian/chrisholiday.cpp new file mode 100644 index 0000000..6ef102a --- a/dev/null +++ b/core/pim/datebook/holiday/christian/chrisholiday.cpp @@ -0,0 +1,87 @@ +#include "chrisholiday.h"
+
+#include <qobject.h>
+
+QString ChrisHoliday::description()
+{
+ return QObject::tr("Christian holidays","holidays");
+}
+
+QStringList ChrisHoliday::entries(const QDate&aDate)
+{
+ QStringList ret;
+ ret+=_internallist.entries(aDate);
+ calcit(aDate.year());
+ tDayMap::Iterator it = _days.find(aDate);
+ if (it!=_days.end()) {
+ ret+=*it;
+ }
+
+ return ret;
+}
+
+QStringList ChrisHoliday::entries(unsigned year, unsigned month, unsigned day)
+{
+ return entries(QDate(year,month,day));
+}
+
+void ChrisHoliday::calcit(int year)
+{
+ if (year==_lastyear) return;
+ _lastyear = year;
+ _days.clear();
+ calc_easter();
+ calc_christmas();
+}
+
+void ChrisHoliday::calc_christmas()
+{
+ QDate cday(_lastyear,12,24);
+ int diff;
+ if ( (diff=cday.dayOfWeek())!=7) {
+ cday=cday.addDays(-diff);
+ _days[cday].append(QObject::tr("4. Advent","holidays"));
+ }
+ _days[cday.addDays(-7)].append(QObject::tr("3. Advent","holidays"));
+ _days[cday.addDays(-14)].append(QObject::tr("2. Advent","holidays"));
+ _days[cday.addDays(-21)].append(QObject::tr("1. Advent","holidays"));
+}
+
+void ChrisHoliday::calc_easter()
+{
+ unsigned long n = 0;
+ unsigned long p = 0;
+
+ if ( _lastyear > 1582 ) {
+ unsigned long a = _lastyear%19;
+ unsigned long b = _lastyear/100;
+ unsigned long c = _lastyear%100;
+ unsigned long d = b/4;
+ unsigned long e = b%4;
+ unsigned long f = (b+8)/25;
+ unsigned long g = (b+f+1)/3;
+ unsigned long h = (19*a+b-d-g+15)%30;
+ unsigned long i = c/4;
+ unsigned long j = c%4;
+ unsigned long k = j%100;
+ unsigned long l = (32+2*e+2*i-h-k)%7;
+ unsigned long m = (a+11*h+22*l)/451;
+ n = (h+l-7*m+114)/31;
+ p = (h+l-7*m+114)%31;
+ } else {
+ unsigned long a = _lastyear%4;
+ unsigned long b = _lastyear%7;
+ unsigned long c = _lastyear%19;
+ unsigned long d = (19*c+15)%30;
+ unsigned long e = (2*a+4*b-d+34)%7;
+ n = (d+e+114)/31;
+ p = (d+e+114)%31;
+ }
+ p++;
+ QDate d(_lastyear,n,p);
+ _days[d].append(QObject::tr("Eastersunday","holidays"));
+ _days[d.addDays(49)].append(QObject::tr("Whitsunday","holidays"));
+ _days[d.addDays(50)].append(QObject::tr("Whitmonday","holidays"));
+ _days[d.addDays(-46)].append(QObject::tr("Ash Wednesday","holidays"));
+ _days[d.addDays(60)].append(QObject::tr("Corpus Christi","holidays"));
+}
diff --git a/core/pim/datebook/holiday/christian/chrisholiday.h b/core/pim/datebook/holiday/christian/chrisholiday.h new file mode 100644 index 0000000..5f43e85 --- a/dev/null +++ b/core/pim/datebook/holiday/christian/chrisholiday.h @@ -0,0 +1,33 @@ +#ifndef __DUMMY_HOLIDAY_H
+#define __DUMMY_HOLIDAY_H
+
+#include "hlist.h"
+
+#include <opie2/oholidayplugin.h>
+#include <opie2/oholidaypluginif.h>
+
+#include <qmap.h>
+
+class ChrisHoliday:public Opie::Datebook::HolidayPlugin
+{
+typedef QMap<QDate,QStringList> tDayMap;
+
+public:
+ ChrisHoliday():Opie::Datebook::HolidayPlugin(){_lastyear=0;}
+ virtual ~ChrisHoliday(){}
+
+ virtual QString description();
+ virtual QStringList entries(const QDate&);
+ virtual QStringList entries(unsigned year, unsigned month, unsigned day);
+protected:
+ HList _internallist;
+ unsigned int _lastyear;
+ tDayMap _days;
+
+ void calcit(int year);
+ void calc_easter();
+ void calc_christmas();
+};
+
+EXPORT_HOLIDAY_PLUGIN(ChrisHoliday);
+#endif
diff --git a/core/pim/datebook/holiday/christian/christian-holidays.pro b/core/pim/datebook/holiday/christian/christian-holidays.pro new file mode 100644 index 0000000..1dfa8ab --- a/dev/null +++ b/core/pim/datebook/holiday/christian/christian-holidays.pro @@ -0,0 +1,20 @@ +TEMPLATE = lib +CONFIG -= moc +CONFIG += qt plugin + +# Input +HEADERS = chrisholiday.h hlist.h +SOURCES = chrisholiday.cpp hlist.cpp +INTERFACES= + +INCLUDEPATH += $(OPIEDIR)/include \ + ../ ../library +DEPENDPATH += $(OPIEDIR)/include \ + ../ ../library + +LIBS+= -lqpe -lopiecore2 -lopieui2 + +DESTDIR = $(OPIEDIR)/plugins/datebook/holiday +TARGET = chrisholidayplugin + +include( $(OPIEDIR)/include.pro ) diff --git a/core/pim/datebook/holiday/christian/config.in b/core/pim/datebook/holiday/christian/config.in new file mode 100644 index 0000000..fc26330 --- a/dev/null +++ b/core/pim/datebook/holiday/christian/config.in @@ -0,0 +1,4 @@ + config DATEBOOK_CHRISTIAN_HOLIDAY + boolean "opie-datebook-christian-holidays" + default "y" + depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2CORE && LIBOPIE2UI && LIBOPIE2PIM diff --git a/core/pim/datebook/holiday/christian/hlist.cpp b/core/pim/datebook/holiday/christian/hlist.cpp new file mode 100644 index 0000000..795b075 --- a/dev/null +++ b/core/pim/datebook/holiday/christian/hlist.cpp @@ -0,0 +1,18 @@ +#include "hlist.h"
+
+#include <qobject.h>
+
+const QStringList HList::entries(const QDate&aDate)const
+{
+ QStringList ret;
+ if (aDate.month()==12) {
+ if (aDate.day()==24) {
+ ret.append(QObject::tr("Christmas","holidays"));
+ }
+ } else if (aDate.month()==1) {
+ if (aDate.day()==1) {
+ ret.append(QObject::tr("New year","holidays"));
+ }
+ }
+ return ret;
+}
diff --git a/core/pim/datebook/holiday/christian/hlist.h b/core/pim/datebook/holiday/christian/hlist.h new file mode 100644 index 0000000..5904852 --- a/dev/null +++ b/core/pim/datebook/holiday/christian/hlist.h @@ -0,0 +1,16 @@ +#ifndef _HLIST_H
+#define _HLIST_H
+
+#include <qstringlist.h>
+#include <qdatetime.h>
+
+class HList
+{
+public:
+ HList(){};
+ virtual ~HList(){};
+
+ const QStringList entries(const QDate&)const;
+};
+
+#endif
diff --git a/core/pim/datebook/holiday/dummy/config.in b/core/pim/datebook/holiday/dummy/config.in index 373ff4a..ec85aa0 100644 --- a/core/pim/datebook/holiday/dummy/config.in +++ b/core/pim/datebook/holiday/dummy/config.in @@ -1,6 +1,4 @@ config DATEBOOK_DUMMY_HOLIDAY - boolean "opie-datebook-dummyholidayplugin" + boolean "opie-datebook-dummy-holidays" default "n" - comment "opie-datebook-dummyholidayplugin requires libopie2core, libopie2pim" - depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2CORE && LIBOPIE2PIM - + depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2CORE && LIBOPIE2UI && LIBOPIE2PIM @@ -1,130 +1,131 @@ CONFIG_ABOUTAPPLET core/applets/aboutapplet aboutapplet.pro CONFIG_ADDRESSBOOK core/pim/addressbook addressbook.pro CONFIG_ADVANCEDFM noncore/apps/advancedfm advancedfm.pro CONFIG_APPEARANCE2 noncore/settings/appearance2 appearance2.pro CONFIG_APPSKEY noncore/settings/appskey appskey.pro CONFIG_AQPKG noncore/settings/aqpkg aqpkg.pro CONFIG_AUTOROTATEAPPLET noncore/applets/autorotateapplet autorotateapplet.pro CONFIG_BACKGAMMON noncore/games/backgammon backgammon.pro CONFIG_BACKUP noncore/settings/backup backup.pro CONFIG_BARTENDER noncore/apps/opie-bartender bartender.pro CONFIG_BATTERYAPPLET core/applets/batteryapplet batteryapplet.pro CONFIG_BEND noncore/unsupported/mail2/bend bend.pro CONFIG_BIGSCREEN_EXAMPLE unsupported/libopie/big-screen/example osplitter_mail.pro CONFIG_BINARY noncore/tools/calc2/binary binary.pro CONFIG_BLUE-PIN noncore/net/opietooth/blue-pin blue-pin.pro CONFIG_BOUNCE noncore/games/bounce bounce.pro CONFIG_BRIGHTNESSAPPLET noncore/applets/brightnessapplet brightnessapplet.pro CONFIG_BUTTON-SETTINGS core/settings/button button.pro CONFIG_BUZZWORD noncore/games/buzzword buzzword.pro CONFIG_CALC2 noncore/tools/calc2 calc.pro CONFIG_CALCULATOR noncore/tools/calculator calculator.pro CONFIG_CALIBRATE core/apps/calibrate calibrate.pro CONFIG_CAMERA noncore/multimedia/camera camera.pro CONFIG_CARDMON core/applets/cardmon cardmon.pro CONFIG_CHECKBOOK noncore/apps/checkbook checkbook.pro CONFIG_CITYTIME core/settings/citytime citytime.pro CONFIG_CLIPBOARDAPPLET core/applets/clipboardapplet clipboardapplet.pro CONFIG_CLOCKAPPLET core/applets/clockapplet clockapplet.pro CONFIG_CLOCK noncore/tools/clock clock.pro CONFIG_CONFEDIT noncore/apps/confedit confedit.pro CONFIG_DAGGER noncore/apps/dagger dagger.pro CONFIG_DASHER inputmethods/dasher dasher.pro CONFIG_DATEBOOK2 core/pim/datebook2 datebook2.pro CONFIG_DATEBOOK core/pim/datebook datebook.pro +CONFIG_DATEBOOK_CHRISTIAN_HOLIDAY core/pim/datebook/holiday/christian christian-holidays.pro CONFIG_DATEBOOK_DUMMY_HOLIDAY core/pim/datebook/holiday/dummy dummy.pro CONFIG_DECO_FLAT noncore/decorations/flat flat.pro CONFIG_DECO_LIQUID noncore/decorations/liquid liquid.pro CONFIG_DECO_POLISHED noncore/decorations/polished polished.pro CONFIG_DICTIONARY noncore/apps/dictionary dictionary.pro CONFIG_DOCTAB noncore/settings/doctab doctab.pro CONFIG_DRAWPAD noncore/graphics/drawpad drawpad.pro CONFIG_DVORAK inputmethods/dvorak dvorak.pro CONFIG_EMBEDDEDKONSOLE core/apps/embeddedkonsole embeddedkonsole.pro CONFIG_EUROCONV noncore/tools/euroconv/ euroconv.pro CONFIG_EXAMPLE_APPLET examples/applet applet.pro CONFIG_EXAMPLE_BOARD examples/inputmethod inputmethod.pro CONFIG_EXAMPLE_LIBOPIE2CORE examples/opiecore opiecore.pro CONFIG_EXAMPLE_LIBOPIE2DB examples/opiedb opiedb.pro CONFIG_EXAMPLE_LIBOPIE2MM examples/opiemm opiemm.pro CONFIG_EXAMPLE_LIBOPIE2NET examples/opienet opienet.pro CONFIG_EXAMPLE_LIBOPIE2PIM examples/opiepim opiepim.pro CONFIG_EXAMPLE_LIBOPIE2SECURITY examples/opiesecurity opiesecurity.pro CONFIG_EXAMPLE_LIBOPIE2UI examples/opieui opieui.pro CONFIG_EXAMPLE_MENU examples/menuapplet menuapplet.pro CONFIG_EXAMPLE_VPN examples/networksettings networksettings.pro CONFIG_FIFTEEN noncore/games/fifteen fifteen.pro CONFIG_FILEBROWSER noncore/unsupported/filebrowser filebrowser.pro CONFIG_FLAT noncore/styles/flat flat.pro CONFIG_FORMATTER noncore/tools/formatter formatter.pro CONFIG_FREETYPE freetype freetype.pro CONFIG_FRESH noncore/styles/fresh fresh.pro CONFIG_FTPLIB noncore/net/ftplib ftplib.pro CONFIG_GO noncore/games/go go.pro CONFIG_GSMTOOL noncore/unsupported/gsmtool gsmtool.pro CONFIG_GUTENBROWSER noncore/apps/opie-gutenbrowser opie-gutenbrowser.pro CONFIG_HANDWRITING inputmethods/handwriting handwriting.pro CONFIG_HELPBROWSER core/apps/helpbrowser helpbrowser.pro CONFIG_HOMEAPPLET core/applets/homeapplet homeapplet.pro CONFIG_INTERFACES noncore/settings/networksettings/interfaces interfaces.pro CONFIG_IRDAAPPLET core/applets/irdaapplet irdaapplet.pro CONFIG_JUMPX inputmethods/jumpx jumpx.pro CONFIG_KBILL noncore/games/kbill kbill.pro CONFIG_KCHECKERS noncore/games/kcheckers kcheckers.pro CONFIG_KEYBOARD inputmethods/keyboard keyboard.pro CONFIG_KEYHELPER noncore/applets/keyhelper keyhelper.pro CONFIG_KEYPEBBLE noncore/comm/keypebble keypebble.pro CONFIG_KEYVIEW development/keyview keyview.pro CONFIG_KJUMPX inputmethods/kjumpx kjumpx.pro CONFIG_KPACMAN noncore/games/kpacman kpacman.pro CONFIG_LANGUAGE noncore/settings/language language.pro CONFIG_LAUNCHER core/launcher server.pro CONFIG_LAUNCHER-SETTINGS core/settings/launcher launcher.pro CONFIG_LIBFFMPEG core/multimedia/opieplayer/libffmpeg libffmpeg.pro CONFIG_LIBFLASH core/multimedia/opieplayer/libflash libflash.pro CONFIG_LIBMAD core/multimedia/opieplayer/libmad libmad.pro CONFIG_LIBMAIL noncore/unsupported/mail2/libmail libmail.pro CONFIG_LIBMAILWRAPPER noncore/net/mail/libmailwrapper libmailwrapper.pro CONFIG_LIBMPEG3 core/multimedia/opieplayer/libmpeg3 libmpeg3.pro CONFIG_LIBOPIE2CORE libopie2/opiecore opiecore.pro CONFIG_LIBOPIE2DB libopie2/opiedb opiedb.pro CONFIG_LIBOPIE2EXAMPLES libopie2/examples examples.pro CONFIG_LIBOPIE2MM libopie2/opiemm opiemm.pro CONFIG_LIBOPIE2NET libopie2/opienet opienet.pro CONFIG_LIBOPIE2PIM libopie2/opiepim opiepim.pro CONFIG_LIBOPIE2SECURITY libopie2/opiesecurity opiesecurity.pro CONFIG_LIBOPIE2UI libopie2/opieui opieui.pro CONFIG_LIBOPIETOOTH noncore/net/opietooth/lib lib.pro CONFIG_LIBOPIE noncore/unsupported/libopie libopie.pro CONFIG_LIBQPE library library.pro CONFIG_LIBQPE-X11 x11/libqpe-x11 libqpe-x11.pro CONFIG_LIBQRSYNC rsync rsync.pro CONFIG_LIBQTAUX libqtaux libqtaux.pro CONFIG_LIBSLCOMPAT libslcompat libslcompat.pro CONFIG_LIBSQL libsql libsql.pro CONFIG_LIBTREMOR core/multimedia/opieplayer/vorbis/tremor tremor.pro CONFIG_LIBTREMORPLUGIN core/multimedia/opieplayer/vorbis libtremor.pro CONFIG_LIGHT-AND-POWER core/settings/light-and-power light-and-power.pro CONFIG_LIQUID noncore/styles/liquid liquid.pro CONFIG_LOCKAPPLET core/applets/lockapplet lockapplet.pro CONFIG_LOGOUTAPPLET core/applets/logoutapplet logoutapplet.pro CONFIG_MAIL3 noncore/net/mail mail.pro CONFIG_MAILAPPLET noncore/net/mail/taskbarapplet taskbarapplet.pro CONFIG_MAILIT noncore/unsupported/mailit mailit.pro CONFIG_MAIN_TAB_EXAMPLE examples/main-tab main-tab.pro CONFIG_MEDIUMMOUNT noncore/settings/mediummount mediummount.pro CONFIG_MEMORYAPPLET noncore/applets/memoryapplet memoryapplet.pro CONFIG_METAL noncore/styles/metal metal.pro CONFIG_MINDBREAKER noncore/games/mindbreaker mindbreaker.pro CONFIG_MINESWEEP noncore/games/minesweep minesweep.pro CONFIG_MOBILEMSG noncore/comm/mobilemsg mobilemsg.pro CONFIG_MODPLUG core/multimedia/opieplayer/modplug modplug.pro CONFIG_MULTIAUTH_BLUEPING noncore/securityplugins/blueping bluepingplugin.pro CONFIG_MULTIAUTH_DUMMY noncore/securityplugins/dummy dummyplugin.pro CONFIG_MULTIAUTH_NOTICE noncore/securityplugins/notice noticeplugin.pro CONFIG_MULTIAUTH_PIN noncore/securityplugins/pin pinplugin.pro CONFIG_MULTIKEYAPPLET core/applets/multikeyapplet multikeyapplet.pro CONFIG_MULTIKEY inputmethods/multikey multikey.pro CONFIG_NETSYSTEMTIME noncore/settings/netsystemtime netsystemtime.pro CONFIG_NETWORKAPPLET noncore/applets/networkapplet networkapplet.pro CONFIG_NETWORKSETUP noncore/settings/networksettings networksettings.pro |