Diffstat (limited to 'core/pim/datebook/holiday/birthday') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/datebook/holiday/birthday/birthday.cpp | 90 | ||||
-rw-r--r-- | core/pim/datebook/holiday/birthday/birthday.h | 2 |
2 files changed, 91 insertions, 1 deletions
diff --git a/core/pim/datebook/holiday/birthday/birthday.cpp b/core/pim/datebook/holiday/birthday/birthday.cpp index 98e2d40..74bcf8b 100644 --- a/core/pim/datebook/holiday/birthday/birthday.cpp +++ b/core/pim/datebook/holiday/birthday/birthday.cpp | |||
@@ -1,9 +1,10 @@ | |||
1 | #include "birthday.h" | 1 | #include "birthday.h" |
2 | 2 | ||
3 | #include <opie2/ocontactaccess.h> | 3 | #include <opie2/ocontactaccess.h> |
4 | #include <qpe/event.h> | ||
4 | 5 | ||
5 | #include <qobject.h> | 6 | #include <qobject.h> |
6 | 7 | ||
7 | Birthday::Birthday() | 8 | Birthday::Birthday() |
8 | :Opie::Datebook::HolidayPlugin() | 9 | :Opie::Datebook::HolidayPlugin() |
9 | { | 10 | { |
@@ -59,13 +60,100 @@ QStringList Birthday::entries(const QDate&aDate) | |||
59 | 60 | ||
60 | QStringList Birthday::entries(unsigned year, unsigned month, unsigned day) | 61 | QStringList Birthday::entries(unsigned year, unsigned month, unsigned day) |
61 | { | 62 | { |
62 | return entries(QDate(year,month,day)); | 63 | return entries(QDate(year,month,day)); |
63 | } | 64 | } |
64 | 65 | ||
65 | QMap<QDate,QStringList> Birthday::entries(const QDate&,const QDate&) | 66 | QMap<QDate,QString> Birthday::_entries(const QDate&start,const QDate&end,bool anniversary) |
67 | { | ||
68 | QMap<QDate,QString> ret; | ||
69 | QDate s = (start<end?start:end); | ||
70 | QDate e = (start<end?end:start); | ||
71 | |||
72 | int daysto = start.daysTo(end); | ||
73 | if (daysto < 0) { | ||
74 | daysto = end.daysTo(start); | ||
75 | } | ||
76 | if ( m_contactdb->hasQuerySettings(Opie::OPimContactAccess::DateDiff ) ){ | ||
77 | Opie::OPimContact querybirthdays; | ||
78 | QString pre; | ||
79 | if (anniversary) { | ||
80 | querybirthdays.setAnniversary(e); | ||
81 | } else { | ||
82 | querybirthdays.setBirthday(e); | ||
83 | } | ||
84 | QMap<QDate,QString> collector; | ||
85 | QMap<QDate,QString>::ConstIterator sit; | ||
86 | m_list = m_contactdb->queryByExample( querybirthdays,Opie::OPimContactAccess::DateDiff,s); | ||
87 | QDate t; | ||
88 | if ( m_list.count() > 0 ){ | ||
89 | if (anniversary) { | ||
90 | pre = QObject::tr("Anniversary","holidays"); | ||
91 | } else { | ||
92 | pre = QObject::tr("Birthday","holidays"); | ||
93 | } | ||
94 | for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) { | ||
95 | if (!anniversary) { | ||
96 | t.setYMD(e.year(),(*m_it).birthday().month(),(*m_it).birthday().day()); | ||
97 | } else { | ||
98 | t.setYMD(e.year(),(*m_it).anniversary().month(),(*m_it).anniversary().day()); | ||
99 | } | ||
100 | if (ret[t].isEmpty()) { | ||
101 | ret[t]=pre; | ||
102 | } | ||
103 | ret[t]+=" "+(*m_it).fullName(); | ||
104 | } | ||
105 | } | ||
106 | } | ||
107 | return ret; | ||
108 | } | ||
109 | |||
110 | QMap<QDate,QStringList> Birthday::entries(const QDate&start,const QDate&end) | ||
66 | { | 111 | { |
67 | QMap<QDate,QStringList> ret; | 112 | QMap<QDate,QStringList> ret; |
113 | QMap<QDate,QString> collector; | ||
114 | QMap<QDate,QString>::ConstIterator sit; | ||
115 | |||
116 | collector = _entries(start,end,false); | ||
117 | for (sit=collector.begin();sit!=collector.end();++sit) { | ||
118 | ret[sit.key()].append(sit.data()); | ||
119 | } | ||
120 | collector = _entries(start,end,true); | ||
121 | for (sit=collector.begin();sit!=collector.end();++sit) { | ||
122 | ret[sit.key()].append(sit.data()); | ||
123 | } | ||
124 | return ret; | ||
125 | } | ||
126 | |||
127 | QValueList<EffectiveEvent> Birthday::events(const QDate&start,const QDate&end) | ||
128 | { | ||
129 | QValueList<EffectiveEvent> ret; | ||
130 | QMap<QDate,QString> collector; | ||
131 | QMap<QDate,QString>::ConstIterator sit; | ||
132 | |||
133 | collector = _entries(start,end,false); | ||
134 | |||
135 | for (sit=collector.begin();sit!=collector.end();++sit) { | ||
136 | Event ev; | ||
137 | ev.setAllDay(true); | ||
138 | ev.setStart(sit.key()); | ||
139 | ev.setEnd(sit.key()); | ||
140 | ev.setDescription(sit.data()); | ||
141 | odebug << sit.key() << oendl; | ||
142 | ret.append(EffectiveEvent(ev,sit.key())); | ||
143 | } | ||
144 | |||
145 | collector = _entries(start,end,true); | ||
146 | |||
147 | for (sit=collector.begin();sit!=collector.end();++sit) { | ||
148 | Event ev; | ||
149 | ev.setAllDay(true); | ||
150 | ev.setStart(sit.key()); | ||
151 | ev.setEnd(sit.key()); | ||
152 | ev.setDescription(sit.data()); | ||
153 | odebug << sit.key() << oendl; | ||
154 | ret.append(EffectiveEvent(ev,sit.key())); | ||
155 | } | ||
68 | return ret; | 156 | return ret; |
69 | } | 157 | } |
70 | 158 | ||
71 | EXPORT_HOLIDAY_PLUGIN(Birthday); | 159 | EXPORT_HOLIDAY_PLUGIN(Birthday); |
diff --git a/core/pim/datebook/holiday/birthday/birthday.h b/core/pim/datebook/holiday/birthday/birthday.h index 5c9aacd..c308dd0 100644 --- a/core/pim/datebook/holiday/birthday/birthday.h +++ b/core/pim/datebook/holiday/birthday/birthday.h | |||
@@ -16,13 +16,15 @@ public: | |||
16 | virtual ~Birthday(){} | 16 | virtual ~Birthday(){} |
17 | 17 | ||
18 | virtual QString description(); | 18 | virtual QString description(); |
19 | virtual QStringList entries(const QDate&); | 19 | virtual QStringList entries(const QDate&); |
20 | virtual QStringList entries(unsigned year, unsigned month, unsigned day); | 20 | virtual QStringList entries(unsigned year, unsigned month, unsigned day); |
21 | virtual QMap<QDate,QStringList> entries(const QDate&,const QDate&); | 21 | virtual QMap<QDate,QStringList> entries(const QDate&,const QDate&); |
22 | virtual QValueList<EffectiveEvent> events(const QDate&,const QDate&); | ||
22 | protected: | 23 | protected: |
23 | Opie::OPimContactAccess * m_contactdb; | 24 | Opie::OPimContactAccess * m_contactdb; |
24 | Opie::OPimContactAccess::List m_list; | 25 | Opie::OPimContactAccess::List m_list; |
25 | Opie::OPimContactAccess::List::Iterator m_it; | 26 | Opie::OPimContactAccess::List::Iterator m_it; |
27 | virtual QMap<QDate,QString> _entries(const QDate&,const QDate&,bool anniversary); | ||
26 | }; | 28 | }; |
27 | 29 | ||
28 | #endif | 30 | #endif |