summaryrefslogtreecommitdiff
authoreilers <eilers>2003-01-03 13:39:22 (UTC)
committer eilers <eilers>2003-01-03 13:39:22 (UTC)
commit5f5e9f321fe606b1175314c9a06da6286f0f92c0 (patch) (unidiff)
tree2707025e5f8b6a7969ca5dfe5085be5cb13670b2
parent49c60b1422902963d33ae79fdab3554b2991ddf5 (diff)
downloadopie-5f5e9f321fe606b1175314c9a06da6286f0f92c0.zip
opie-5f5e9f321fe606b1175314c9a06da6286f0f92c0.tar.gz
opie-5f5e9f321fe606b1175314c9a06da6286f0f92c0.tar.bz2
Now it shows how many days are left until birthday/anniversary !
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/today/plugins/addressbook/addresspluginwidget.cpp30
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
34AddressBookPluginWidget::AddressBookPluginWidget( QWidget *parent, const char* name ) 34AddressBookPluginWidget::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
56AddressBookPluginWidget::~AddressBookPluginWidget() { 56AddressBookPluginWidget::~AddressBookPluginWidget() {
57 delete m_contactdb; 57 delete m_contactdb;
58} 58}
59 59
60void AddressBookPluginWidget::refresh( const OContactAccess* ) 60void 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
68void AddressBookPluginWidget::readConfig() { 68void 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 */
80void AddressBookPluginWidget::getAddress() { 80void 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 */
146void AddressBookPluginWidget::startAddressBook() { 168void 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}