author | eilers <eilers> | 2003-01-03 13:39:22 (UTC) |
---|---|---|
committer | eilers <eilers> | 2003-01-03 13:39:22 (UTC) |
commit | 5f5e9f321fe606b1175314c9a06da6286f0f92c0 (patch) (unidiff) | |
tree | 2707025e5f8b6a7969ca5dfe5085be5cb13670b2 | |
parent | 49c60b1422902963d33ae79fdab3554b2991ddf5 (diff) | |
download | opie-5f5e9f321fe606b1175314c9a06da6286f0f92c0.zip opie-5f5e9f321fe606b1175314c9a06da6286f0f92c0.tar.gz opie-5f5e9f321fe606b1175314c9a06da6286f0f92c0.tar.bz2 |
Now it shows how many days are left until birthday/anniversary !
-rw-r--r-- | core/pim/today/plugins/addressbook/addresspluginwidget.cpp | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/core/pim/today/plugins/addressbook/addresspluginwidget.cpp b/core/pim/today/plugins/addressbook/addresspluginwidget.cpp index 015ac6a..0d4cec8 100644 --- a/core/pim/today/plugins/addressbook/addresspluginwidget.cpp +++ b/core/pim/today/plugins/addressbook/addresspluginwidget.cpp | |||
@@ -14,136 +14,158 @@ | |||
14 | * the Free Software Foundation; either version 2 of the License, or * | 14 | * the Free Software Foundation; either version 2 of the License, or * |
15 | * (at your option) any later version. * | 15 | * (at your option) any later version. * |
16 | * * | 16 | * * |
17 | ***************************************************************************/ | 17 | ***************************************************************************/ |
18 | 18 | ||
19 | #include "addresspluginwidget.h" | 19 | #include "addresspluginwidget.h" |
20 | 20 | ||
21 | #include <qvaluelist.h> | 21 | #include <qvaluelist.h> |
22 | #include <qtl.h> | 22 | #include <qtl.h> |
23 | #include <qstring.h> | 23 | #include <qstring.h> |
24 | #include <qscrollview.h> | 24 | #include <qscrollview.h> |
25 | #include <qobject.h> | 25 | #include <qobject.h> |
26 | #include <qdatetime.h> | 26 | #include <qdatetime.h> |
27 | 27 | ||
28 | #include <qpe/config.h> | 28 | #include <qpe/config.h> |
29 | #include <qpe/timestring.h> | 29 | #include <qpe/timestring.h> |
30 | #include <qpe/qcopenvelope_qws.h> | 30 | #include <qpe/qcopenvelope_qws.h> |
31 | 31 | ||
32 | #include <opie/ocontact.h> | 32 | #include <opie/ocontact.h> |
33 | 33 | ||
34 | AddressBookPluginWidget::AddressBookPluginWidget( QWidget *parent, const char* name ) | 34 | AddressBookPluginWidget::AddressBookPluginWidget( QWidget *parent, const char* name ) |
35 | : QWidget( parent, name ) { | 35 | : QWidget( parent, name ) { |
36 | 36 | ||
37 | addressLabel = 0l; | 37 | addressLabel = 0l; |
38 | m_contactdb = 0l; | 38 | m_contactdb = 0l; |
39 | layoutTodo = 0l; | 39 | layoutTodo = 0l; |
40 | 40 | ||
41 | // Hä ? Nonsense ! (se) | 41 | // Hä ? Nonsense ! (se) |
42 | if ( m_contactdb ) { | 42 | if ( m_contactdb ) { |
43 | delete m_contactdb; | 43 | delete m_contactdb; |
44 | } | 44 | } |
45 | 45 | ||
46 | m_contactdb = new OContactAccess("addressplugin"); | 46 | m_contactdb = new OContactAccess("addressplugin"); |
47 | 47 | ||
48 | connect( m_contactdb, SIGNAL( signalChanged( const OContactAccess * ) ), | 48 | connect( m_contactdb, SIGNAL( signalChanged( const OContactAccess * ) ), |
49 | this, SLOT( refresh( const OContactAccess * ) ) ); | 49 | this, SLOT( refresh( const OContactAccess * ) ) ); |
50 | 50 | ||
51 | 51 | ||
52 | readConfig(); | 52 | readConfig(); |
53 | getAddress(); | 53 | getAddress(); |
54 | } | 54 | } |
55 | 55 | ||
56 | AddressBookPluginWidget::~AddressBookPluginWidget() { | 56 | AddressBookPluginWidget::~AddressBookPluginWidget() { |
57 | delete m_contactdb; | 57 | delete m_contactdb; |
58 | } | 58 | } |
59 | 59 | ||
60 | void AddressBookPluginWidget::refresh( const OContactAccess* ) | 60 | void AddressBookPluginWidget::refresh( const OContactAccess* ) |
61 | { | 61 | { |
62 | qWarning(" AddressBookPluginWidget::Database was changed externally ! "); | 62 | qWarning(" AddressBookPluginWidget::Database was changed externally ! "); |
63 | m_contactdb->reload(); | 63 | m_contactdb->reload(); |
64 | getAddress(); | 64 | getAddress(); |
65 | } | 65 | } |
66 | 66 | ||
67 | 67 | ||
68 | void AddressBookPluginWidget::readConfig() { | 68 | void AddressBookPluginWidget::readConfig() { |
69 | Config cfg( "todayaddressplugin" ); | 69 | Config cfg( "todayaddressplugin" ); |
70 | cfg.setGroup( "config" ); | 70 | cfg.setGroup( "config" ); |
71 | m_maxLinesTask = cfg.readNumEntry( "maxlinestask", 5 ); | 71 | m_maxLinesTask = cfg.readNumEntry( "maxlinestask", 5 ); |
72 | m_maxCharClip = cfg.readNumEntry( "maxcharclip", 38 ); | 72 | m_maxCharClip = cfg.readNumEntry( "maxcharclip", 38 ); |
73 | m_daysLookAhead = cfg.readNumEntry( "dayslookahead", 14 ); | 73 | m_daysLookAhead = cfg.readNumEntry( "dayslookahead", 14 ); |
74 | } | 74 | } |
75 | 75 | ||
76 | 76 | ||
77 | /** | 77 | /** |
78 | * Get the addresss | 78 | * Get the addresss |
79 | */ | 79 | */ |
80 | void AddressBookPluginWidget::getAddress() { | 80 | void AddressBookPluginWidget::getAddress() { |
81 | 81 | ||
82 | if ( ! layoutTodo ){ | 82 | if ( ! layoutTodo ){ |
83 | layoutTodo = new QVBoxLayout( this ); | 83 | layoutTodo = new QVBoxLayout( this ); |
84 | } | 84 | } |
85 | 85 | ||
86 | if ( ! addressLabel ) { | 86 | if ( ! addressLabel ) { |
87 | addressLabel = new OClickableLabel( this ); | 87 | addressLabel = new OClickableLabel( this ); |
88 | connect( addressLabel, SIGNAL( clicked() ), this, SLOT( startAddressBook() ) ); | 88 | connect( addressLabel, SIGNAL( clicked() ), this, SLOT( startAddressBook() ) ); |
89 | layoutTodo->addWidget( addressLabel ); | 89 | layoutTodo->addWidget( addressLabel ); |
90 | } | 90 | } |
91 | 91 | ||
92 | QString output; | 92 | QString output; |
93 | 93 | ||
94 | // Check whether the database provide the search option.. | 94 | // Check whether the database provide the search option.. |
95 | if ( ! m_contactdb->hasQuerySettings( OContactAccess::DateDiff ) ){ | 95 | if ( ! m_contactdb->hasQuerySettings( OContactAccess::DateDiff ) ){ |
96 | 96 | ||
97 | // Define the query for birthdays and start search.. | 97 | // Define the query for birthdays and start search.. |
98 | QDate lookAheadDate = QDate::currentDate().addDays( m_daysLookAhead ); | 98 | QDate lookAheadDate = QDate::currentDate().addDays( m_daysLookAhead ); |
99 | qWarning("Searching from now (%s) until %s ! ", QDate::currentDate().toString().latin1(), | 99 | qWarning("Searching from now (%s) until %s ! ", QDate::currentDate().toString().latin1(), |
100 | lookAheadDate.toString().latin1() ); | 100 | lookAheadDate.toString().latin1() ); |
101 | OContact querybirthdays; | 101 | OContact querybirthdays; |
102 | querybirthdays.setBirthday( lookAheadDate ); | 102 | querybirthdays.setBirthday( lookAheadDate ); |
103 | 103 | ||
104 | int ammount = 0; | 104 | int ammount = 0; |
105 | 105 | ||
106 | m_list = m_contactdb->queryByExample( querybirthdays, OContactAccess::DateDiff ); | 106 | m_list = m_contactdb->queryByExample( querybirthdays, OContactAccess::DateDiff ); |
107 | if ( m_list.count() > 0 ){ | 107 | if ( m_list.count() > 0 ){ |
108 | output = QObject::tr( "Next birthdays in <b> %1 </b> days: <br>" ).arg( m_daysLookAhead ); | 108 | output = QObject::tr( "Next birthdays in <b> %1 </b> days: <br>" ).arg( m_daysLookAhead ); |
109 | for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) { | 109 | for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) { |
110 | if ( ammount++ < m_maxLinesTask ) | 110 | if ( ammount++ < m_maxLinesTask ){ |
111 | output += "<font color=#e00000><b>-" + (*m_it).fullName() + "</b></font><br>"; | 111 | // Now we want to calculate how many days until birthday. We have to set |
112 | // the correct year to calculate the day diff... | ||
113 | QDate destdate = (*m_it).birthday(); | ||
114 | destdate.setYMD( QDate::currentDate().year(), destdate.month(), destdate.day() ); | ||
115 | if ( QDate::currentDate().daysTo(destdate) < 0 ) | ||
116 | destdate.setYMD( QDate::currentDate().year()+1, destdate.month(), destdate.day() ); | ||
117 | |||
118 | output += "<font color=#e00000><b>-" + (*m_it).fullName() | ||
119 | + " (" | ||
120 | + QString::number(QDate::currentDate().daysTo(destdate)) | ||
121 | + " Days) </b></font><br>"; | ||
122 | } | ||
112 | } | 123 | } |
113 | } else { | 124 | } else { |
114 | output = QObject::tr( "No birthdays in <b> %1 </b> days! <br>" ).arg( m_daysLookAhead ); | 125 | output = QObject::tr( "No birthdays in <b> %1 </b> days! <br>" ).arg( m_daysLookAhead ); |
115 | } | 126 | } |
116 | 127 | ||
117 | // Define the query for anniversaries and start search.. | 128 | // Define the query for anniversaries and start search.. |
118 | OContact queryanniversaries; | 129 | OContact queryanniversaries; |
119 | queryanniversaries.setAnniversary( lookAheadDate ); | 130 | queryanniversaries.setAnniversary( lookAheadDate ); |
120 | 131 | ||
121 | m_list = m_contactdb->queryByExample( queryanniversaries, OContactAccess::DateDiff ); | 132 | m_list = m_contactdb->queryByExample( queryanniversaries, OContactAccess::DateDiff ); |
122 | 133 | ||
123 | ammount = 0; | 134 | ammount = 0; |
124 | if ( m_list.count() > 0 ){ | 135 | if ( m_list.count() > 0 ){ |
125 | output += QObject::tr( "Next anniversaries in <b> %1 </b> days: <br>" ).arg( m_daysLookAhead ); | 136 | output += QObject::tr( "Next anniversaries in <b> %1 </b> days: <br>" ).arg( m_daysLookAhead ); |
126 | for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) { | 137 | for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) { |
127 | if ( ammount++ < m_maxLinesTask ) | 138 | if ( ammount++ < m_maxLinesTask ){ |
128 | output += "<font color=#e00000><b>-" + (*m_it).fullName() + "</b></font><br>"; | 139 | // Now we want to calculate how many days until anniversary. We have to set |
140 | // the correct year to calculate the day diff... | ||
141 | QDate destdate = (*m_it).anniversary(); | ||
142 | destdate.setYMD( QDate::currentDate().year(), destdate.month(), destdate.day() ); | ||
143 | if ( QDate::currentDate().daysTo(destdate) < 0 ) | ||
144 | destdate.setYMD( QDate::currentDate().year()+1, destdate.month(), destdate.day() ); | ||
145 | |||
146 | output += "<font color=#e00000><b>-" + (*m_it).fullName() | ||
147 | + " (" | ||
148 | + QString::number(QDate::currentDate().daysTo( destdate ) ) | ||
149 | + " Days) </b></font><br>"; | ||
150 | } | ||
129 | } | 151 | } |
130 | } else { | 152 | } else { |
131 | output += QObject::tr( "No anniversaries in <b> %1 </b> days! <br>" ).arg( m_daysLookAhead ); | 153 | output += QObject::tr( "No anniversaries in <b> %1 </b> days! <br>" ).arg( m_daysLookAhead ); |
132 | } | 154 | } |
133 | 155 | ||
134 | 156 | ||
135 | }else{ | 157 | }else{ |
136 | // Libopie seems to be old.. | 158 | // Libopie seems to be old.. |
137 | output = QObject::tr( "Database does not provide this search query ! Please upgrade libOpie !<br>" ); | 159 | output = QObject::tr( "Database does not provide this search query ! Please upgrade libOpie !<br>" ); |
138 | } | 160 | } |
139 | 161 | ||
140 | addressLabel->setText( output ); | 162 | addressLabel->setText( output ); |
141 | } | 163 | } |
142 | 164 | ||
143 | /** | 165 | /** |
144 | * start the todolist | 166 | * start the todolist |
145 | */ | 167 | */ |
146 | void AddressBookPluginWidget::startAddressBook() { | 168 | void AddressBookPluginWidget::startAddressBook() { |
147 | QCopEnvelope e( "QPE/System", "execute(QString)" ); | 169 | QCopEnvelope e( "QPE/System", "execute(QString)" ); |
148 | e << QString( "addressbook" ); | 170 | e << QString( "addressbook" ); |
149 | } | 171 | } |