author | eilers <eilers> | 2003-01-03 13:15:30 (UTC) |
---|---|---|
committer | eilers <eilers> | 2003-01-03 13:15:30 (UTC) |
commit | 19ee7f3b3e06fcf434dcd6a104e912b12220af3b (patch) (unidiff) | |
tree | bf813eecb39d52da95591b561e9bd1c3cc329432 /core/pim/today/plugins/addressbook/addresspluginwidget.cpp | |
parent | 54ebecbfd86a9ce6782dc55dad7ae15c73adef21 (diff) | |
download | opie-19ee7f3b3e06fcf434dcd6a104e912b12220af3b.zip opie-19ee7f3b3e06fcf434dcd6a104e912b12220af3b.tar.gz opie-19ee7f3b3e06fcf434dcd6a104e912b12220af3b.tar.bz2 |
NEW: This plugin shows the next birthdays and anniversaries for the next
n days !
Diffstat (limited to 'core/pim/today/plugins/addressbook/addresspluginwidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/today/plugins/addressbook/addresspluginwidget.cpp | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/core/pim/today/plugins/addressbook/addresspluginwidget.cpp b/core/pim/today/plugins/addressbook/addresspluginwidget.cpp new file mode 100644 index 0000000..015ac6a --- a/dev/null +++ b/core/pim/today/plugins/addressbook/addresspluginwidget.cpp | |||
@@ -0,0 +1,149 @@ | |||
1 | /* | ||
2 | * addresspluginwidget.cpp | ||
3 | * | ||
4 | * copyright : (c) 2003 by Stefan Eilers | ||
5 | * email : eilers.stefan@epost.de | ||
6 | * | ||
7 | * This implementation was derived from the todolist plugin implementation | ||
8 | * | ||
9 | */ | ||
10 | /*************************************************************************** | ||
11 | * * | ||
12 | * This program is free software; you can redistribute it and/or modify * | ||
13 | * it under the terms of the GNU General Public License as published by * | ||
14 | * the Free Software Foundation; either version 2 of the License, or * | ||
15 | * (at your option) any later version. * | ||
16 | * * | ||
17 | ***************************************************************************/ | ||
18 | |||
19 | #include "addresspluginwidget.h" | ||
20 | |||
21 | #include <qvaluelist.h> | ||
22 | #include <qtl.h> | ||
23 | #include <qstring.h> | ||
24 | #include <qscrollview.h> | ||
25 | #include <qobject.h> | ||
26 | #include <qdatetime.h> | ||
27 | |||
28 | #include <qpe/config.h> | ||
29 | #include <qpe/timestring.h> | ||
30 | #include <qpe/qcopenvelope_qws.h> | ||
31 | |||
32 | #include <opie/ocontact.h> | ||
33 | |||
34 | AddressBookPluginWidget::AddressBookPluginWidget( QWidget *parent, const char* name ) | ||
35 | : QWidget( parent, name ) { | ||
36 | |||
37 | addressLabel = 0l; | ||
38 | m_contactdb = 0l; | ||
39 | layoutTodo = 0l; | ||
40 | |||
41 | // Hä ? Nonsense ! (se) | ||
42 | if ( m_contactdb ) { | ||
43 | delete m_contactdb; | ||
44 | } | ||
45 | |||
46 | m_contactdb = new OContactAccess("addressplugin"); | ||
47 | |||
48 | connect( m_contactdb, SIGNAL( signalChanged( const OContactAccess * ) ), | ||
49 | this, SLOT( refresh( const OContactAccess * ) ) ); | ||
50 | |||
51 | |||
52 | readConfig(); | ||
53 | getAddress(); | ||
54 | } | ||
55 | |||
56 | AddressBookPluginWidget::~AddressBookPluginWidget() { | ||
57 | delete m_contactdb; | ||
58 | } | ||
59 | |||
60 | void AddressBookPluginWidget::refresh( const OContactAccess* ) | ||
61 | { | ||
62 | qWarning(" AddressBookPluginWidget::Database was changed externally ! "); | ||
63 | m_contactdb->reload(); | ||
64 | getAddress(); | ||
65 | } | ||
66 | |||
67 | |||
68 | void AddressBookPluginWidget::readConfig() { | ||
69 | Config cfg( "todayaddressplugin" ); | ||
70 | cfg.setGroup( "config" ); | ||
71 | m_maxLinesTask = cfg.readNumEntry( "maxlinestask", 5 ); | ||
72 | m_maxCharClip = cfg.readNumEntry( "maxcharclip", 38 ); | ||
73 | m_daysLookAhead = cfg.readNumEntry( "dayslookahead", 14 ); | ||
74 | } | ||
75 | |||
76 | |||
77 | /** | ||
78 | * Get the addresss | ||
79 | */ | ||
80 | void AddressBookPluginWidget::getAddress() { | ||
81 | |||
82 | if ( ! layoutTodo ){ | ||
83 | layoutTodo = new QVBoxLayout( this ); | ||
84 | } | ||
85 | |||
86 | if ( ! addressLabel ) { | ||
87 | addressLabel = new OClickableLabel( this ); | ||
88 | connect( addressLabel, SIGNAL( clicked() ), this, SLOT( startAddressBook() ) ); | ||
89 | layoutTodo->addWidget( addressLabel ); | ||
90 | } | ||
91 | |||
92 | QString output; | ||
93 | |||
94 | // Check whether the database provide the search option.. | ||
95 | if ( ! m_contactdb->hasQuerySettings( OContactAccess::DateDiff ) ){ | ||
96 | |||
97 | // Define the query for birthdays and start search.. | ||
98 | QDate lookAheadDate = QDate::currentDate().addDays( m_daysLookAhead ); | ||
99 | qWarning("Searching from now (%s) until %s ! ", QDate::currentDate().toString().latin1(), | ||
100 | lookAheadDate.toString().latin1() ); | ||
101 | OContact querybirthdays; | ||
102 | querybirthdays.setBirthday( lookAheadDate ); | ||
103 | |||
104 | int ammount = 0; | ||
105 | |||
106 | m_list = m_contactdb->queryByExample( querybirthdays, OContactAccess::DateDiff ); | ||
107 | if ( m_list.count() > 0 ){ | ||
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 ) { | ||
110 | if ( ammount++ < m_maxLinesTask ) | ||
111 | output += "<font color=#e00000><b>-" + (*m_it).fullName() + "</b></font><br>"; | ||
112 | } | ||
113 | } else { | ||
114 | output = QObject::tr( "No birthdays in <b> %1 </b> days! <br>" ).arg( m_daysLookAhead ); | ||
115 | } | ||
116 | |||
117 | // Define the query for anniversaries and start search.. | ||
118 | OContact queryanniversaries; | ||
119 | queryanniversaries.setAnniversary( lookAheadDate ); | ||
120 | |||
121 | m_list = m_contactdb->queryByExample( queryanniversaries, OContactAccess::DateDiff ); | ||
122 | |||
123 | ammount = 0; | ||
124 | if ( m_list.count() > 0 ){ | ||
125 | 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 ) { | ||
127 | if ( ammount++ < m_maxLinesTask ) | ||
128 | output += "<font color=#e00000><b>-" + (*m_it).fullName() + "</b></font><br>"; | ||
129 | } | ||
130 | } else { | ||
131 | output += QObject::tr( "No anniversaries in <b> %1 </b> days! <br>" ).arg( m_daysLookAhead ); | ||
132 | } | ||
133 | |||
134 | |||
135 | }else{ | ||
136 | // Libopie seems to be old.. | ||
137 | output = QObject::tr( "Database does not provide this search query ! Please upgrade libOpie !<br>" ); | ||
138 | } | ||
139 | |||
140 | addressLabel->setText( output ); | ||
141 | } | ||
142 | |||
143 | /** | ||
144 | * start the todolist | ||
145 | */ | ||
146 | void AddressBookPluginWidget::startAddressBook() { | ||
147 | QCopEnvelope e( "QPE/System", "execute(QString)" ); | ||
148 | e << QString( "addressbook" ); | ||
149 | } | ||