summaryrefslogtreecommitdiff
path: root/core/pim/datebook/holiday/birthday/birthday.cpp
Unidiff
Diffstat (limited to 'core/pim/datebook/holiday/birthday/birthday.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/holiday/birthday/birthday.cpp90
1 files changed, 89 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,6 +1,7 @@
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
@@ -62,9 +63,96 @@ QStringList Birthday::entries(unsigned year, unsigned month, unsigned day)
62 return entries(QDate(year,month,day)); 63 return entries(QDate(year,month,day));
63} 64}
64 65
65QMap<QDate,QStringList> Birthday::entries(const QDate&,const QDate&) 66QMap<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
110QMap<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
127QValueList<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