summaryrefslogtreecommitdiff
path: root/core/pim/today/plugins/addressbook/addresspluginwidget.cpp
Unidiff
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.cpp149
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
34AddressBookPluginWidget::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
56AddressBookPluginWidget::~AddressBookPluginWidget() {
57 delete m_contactdb;
58}
59
60void AddressBookPluginWidget::refresh( const OContactAccess* )
61{
62 qWarning(" AddressBookPluginWidget::Database was changed externally ! ");
63 m_contactdb->reload();
64 getAddress();
65}
66
67
68void 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 */
80void 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 */
146void AddressBookPluginWidget::startAddressBook() {
147 QCopEnvelope e( "QPE/System", "execute(QString)" );
148 e << QString( "addressbook" );
149}