summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/today/today.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp
index 08efe2d..1936518 100644
--- a/core/pim/today/today.cpp
+++ b/core/pim/today/today.cpp
@@ -1,236 +1,236 @@
1/* 1/*
2 * today.cpp : main class 2 * today.cpp : main class
3 * 3 *
4 * --------------------- 4 * ---------------------
5 * 5 *
6 * begin : Sun 10 17:20:00 CEST 2002 6 * begin : Sun 10 17:20:00 CEST 2002
7 * copyright : (c) 2002 by Maximilian Reiß 7 * copyright : (c) 2002 by Maximilian Reiß
8 * email : max.reiss@gmx.de 8 * email : max.reiss@gmx.de
9 * 9 *
10 */ 10 */
11/*************************************************************************** 11/***************************************************************************
12 * * 12 * *
13 * This program is free software; you can redistribute it and/or modify * 13 * This program is free software; you can redistribute it and/or modify *
14 * it under the terms of the GNU General Public License as published by * 14 * it under the terms of the GNU General Public License as published by *
15 * the Free Software Foundation; either version 2 of the License, or * 15 * the Free Software Foundation; either version 2 of the License, or *
16 * (at your option) any later version. * 16 * (at your option) any later version. *
17 * * 17 * *
18 ***************************************************************************/ 18 ***************************************************************************/
19 19
20#include "today.h" 20#include "today.h"
21#include "minidom.h" 21#include "minidom.h"
22#include "TodoItem.h" 22#include "TodoItem.h"
23 23
24#include <qpe/datebookdb.h> 24#include <qpe/datebookdb.h>
25#include <qpe/timestring.h> 25#include <qpe/timestring.h>
26#include <qpe/config.h> 26#include <qpe/config.h>
27#include <qpe/qcopenvelope_qws.h> 27#include <qpe/qcopenvelope_qws.h>
28#include <qpe/qprocess.h> 28#include <qpe/qprocess.h>
29#include <qpe/resource.h> 29#include <qpe/resource.h>
30#include <qpe/contact.h> 30#include <qpe/contact.h>
31#include <qpe/global.h> 31#include <qpe/global.h>
32 32
33#include <qdir.h> 33#include <qdir.h>
34#include <qfile.h> 34#include <qfile.h>
35#include <qdatetime.h> 35#include <qdatetime.h>
36#include <qtextstream.h> 36#include <qtextstream.h>
37#include <qcheckbox.h> 37#include <qcheckbox.h>
38#include <qspinbox.h> 38#include <qspinbox.h>
39#include <qpushbutton.h> 39#include <qpushbutton.h>
40#include <qlabel.h> 40#include <qlabel.h>
41#include <qtimer.h> 41#include <qtimer.h>
42#include <qpixmap.h> 42#include <qpixmap.h>
43#include <qfileinfo.h> 43#include <qfileinfo.h>
44#include <qlayout.h> 44#include <qlayout.h>
45#include <qtl.h> 45#include <qtl.h>
46 46
47//#include <iostream.h> 47//#include <iostream.h>
48#include <unistd.h> 48#include <unistd.h>
49#include <stdlib.h> 49#include <stdlib.h>
50 50
51int MAX_LINES_TASK; 51int MAX_LINES_TASK;
52int MAX_CHAR_CLIP; 52int MAX_CHAR_CLIP;
53int MAX_LINES_MEET; 53int MAX_LINES_MEET;
54int SHOW_LOCATION; 54int SHOW_LOCATION;
55int SHOW_NOTES; 55int SHOW_NOTES;
56// show only later dates 56// show only later dates
57int ONLY_LATER; 57int ONLY_LATER;
58int AUTOSTART; 58int AUTOSTART;
59 59
60int NEW_START=1; 60int NEW_START=1;
61/* 61/*
62 * Constructs a Example which is a child of 'parent', with the 62 * Constructs a Example which is a child of 'parent', with the
63 * name 'name' and widget flags set to 'f' 63 * name 'name' and widget flags set to 'f'
64 */ 64 */
65Today::Today( QWidget* parent, const char* name, WFlags fl ) 65Today::Today( QWidget* parent, const char* name, WFlags fl )
66 : TodayBase( parent, name, fl ), AllDateBookEvents(NULL) { 66 : TodayBase( parent, name, fl ), AllDateBookEvents(NULL) {
67 QObject::connect( (QObject*)PushButton1, SIGNAL( clicked() ), this, SLOT(startConfig() ) ); 67 QObject::connect( (QObject*)PushButton1, SIGNAL( clicked() ), this, SLOT(startConfig() ) );
68 QObject::connect( (QObject*)TodoButton, SIGNAL( clicked() ), this, SLOT(startTodo() ) ); 68 QObject::connect( (QObject*)TodoButton, SIGNAL( clicked() ), this, SLOT(startTodo() ) );
69 QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startDatebook() ) ); 69 QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startDatebook() ) );
70 QObject::connect( (QObject*)MailButton, SIGNAL( clicked() ), this, SLOT(startMail() ) ); 70 QObject::connect( (QObject*)MailButton, SIGNAL( clicked() ), this, SLOT(startMail() ) );
71 71
72#if defined(Q_WS_QWS) 72#if defined(Q_WS_QWS)
73#if !defined(QT_NO_COP) 73#if !defined(QT_NO_COP)
74 QCopChannel *todayChannel = new QCopChannel("QPE/Today" , this ); 74 QCopChannel *todayChannel = new QCopChannel("QPE/Today" , this );
75 connect (todayChannel, SIGNAL( received(const QCString &, const QByteArray &)), 75 connect (todayChannel, SIGNAL( received(const QCString &, const QByteArray &)),
76 this, SLOT ( channelReceived(const QCString &, const QByteArray &)) ); 76 this, SLOT ( channelReceived(const QCString &, const QByteArray &)) );
77#endif 77#endif
78#endif 78#endif
79 79
80 draw(); 80 draw();
81 setOwnerField(); 81 setOwnerField();
82 autoStart(); 82 autoStart();
83} 83}
84 84
85/* 85/*
86 * Qcop receive method. 86 * Qcop receive method.
87 */ 87 */
88void Today::channelReceived(const QCString &msg, const QByteArray & data) { 88void Today::channelReceived(const QCString &msg, const QByteArray & data) {
89 QDataStream stream(data, IO_ReadOnly ); 89 QDataStream stream(data, IO_ReadOnly );
90 if ( msg == "message(QString)" ) { 90 if ( msg == "message(QString)" ) {
91 QString message; 91 QString message;
92 stream >> message; 92 stream >> message;
93 setOwnerField(message); 93 setOwnerField(message);
94 } 94 }
95 95
96} 96}
97 97
98/* 98/*
99 * Initialises the owner field with the default value, the username 99 * Initialises the owner field with the default value, the username
100 */ 100 */
101void Today::setOwnerField() { 101void Today::setOwnerField() {
102 QString file = Global::applicationFileName("addressbook", "businesscard.vcf"); 102 QString file = Global::applicationFileName("addressbook", "businesscard.vcf");
103 if (QFile::exists(file)) { 103 if (QFile::exists(file)) {
104 Contact cont = Contact::readVCard(file)[0]; 104 Contact cont = Contact::readVCard(file)[0];
105 QString returnString = cont.fullName(); 105 QString returnString = cont.fullName();
106 OwnerField->setText( tr ("<b>Owned by " + returnString + "</b>")); 106 OwnerField->setText( tr ("<b>Owned by " + returnString + "</b>"));
107 } else { 107 } else {
108 OwnerField->setText( tr ("<b>to lame to fill out the business card </b>")); 108 OwnerField->setText( tr ("<b>Please fill out the business card </b>"));
109 } 109 }
110} 110}
111 111
112/* 112/*
113 * Set the owner field with a given QString, for example per qcop. 113 * Set the owner field with a given QString, for example per qcop.
114 */ 114 */
115void Today::setOwnerField(QString &message) { 115void Today::setOwnerField(QString &message) {
116 if (!message.isEmpty()) { 116 if (!message.isEmpty()) {
117 OwnerField->setText("<b>" + message + "</b>"); 117 OwnerField->setText("<b>" + message + "</b>");
118 } 118 }
119} 119}
120 120
121/* 121/*
122 * Autostart, uses the new (opie only) autostart method in the launcher code. 122 * Autostart, uses the new (opie only) autostart method in the launcher code.
123 * If registered against that today ist started on each resume. 123 * If registered against that today ist started on each resume.
124 */ 124 */
125void Today::autoStart() { 125void Today::autoStart() {
126 Config cfg("today"); 126 Config cfg("today");
127 cfg.setGroup("Autostart"); 127 cfg.setGroup("Autostart");
128 AUTOSTART = cfg.readNumEntry("autostart",1); 128 AUTOSTART = cfg.readNumEntry("autostart",1);
129 if (AUTOSTART) { 129 if (AUTOSTART) {
130 QCopEnvelope e("QPE/System", "autoStart(QString,QString)"); 130 QCopEnvelope e("QPE/System", "autoStart(QString,QString)");
131 e << QString("add"); 131 e << QString("add");
132 e << QString("today"); 132 e << QString("today");
133 } else { 133 } else {
134 QCopEnvelope e("QPE/System", "autoStart(QString,QString)"); 134 QCopEnvelope e("QPE/System", "autoStart(QString,QString)");
135 e << QString("remove"); 135 e << QString("remove");
136 e << QString("today"); 136 e << QString("today");
137 } 137 }
138} 138}
139 139
140/* 140/*
141 * Repaint method. Reread all fields. 141 * Repaint method. Reread all fields.
142 */ 142 */
143void Today::draw() { 143void Today::draw() {
144 init(); 144 init();
145 getDates(); 145 getDates();
146 getMail(); 146 getMail();
147 getTodo(); 147 getTodo();
148 // how often refresh 148 // how often refresh
149 QTimer::singleShot( 10*1000, this, SLOT(draw() ) ); 149 QTimer::singleShot( 10*1000, this, SLOT(draw() ) );
150} 150}
151 151
152/* 152/*
153 * Check if the todolist.xml was modified (if there are new entries. 153 * Check if the todolist.xml was modified (if there are new entries.
154 * Returns true if it was modified. 154 * Returns true if it was modified.
155 */ 155 */
156bool Today::checkIfModified() { 156bool Today::checkIfModified() {
157 157
158 QDir dir; 158 QDir dir;
159 QString homedir = dir.homeDirPath (); 159 QString homedir = dir.homeDirPath ();
160 QString time; 160 QString time;
161 161
162 Config cfg("today"); 162 Config cfg("today");
163 cfg.setGroup("Files"); 163 cfg.setGroup("Files");
164 time = cfg.readEntry("todolisttimestamp", ""); 164 time = cfg.readEntry("todolisttimestamp", "");
165 165
166 QFileInfo file = (homedir +"/Applications/todolist/todolist.xml"); 166 QFileInfo file = (homedir +"/Applications/todolist/todolist.xml");
167 QDateTime fileTime = file.lastModified(); 167 QDateTime fileTime = file.lastModified();
168 if (time.compare(fileTime.toString()) == 0) { 168 if (time.compare(fileTime.toString()) == 0) {
169 return false; 169 return false;
170 } else { 170 } else {
171 cfg.writeEntry("todolisttimestamp", fileTime.toString() ); 171 cfg.writeEntry("todolisttimestamp", fileTime.toString() );
172 cfg.write(); 172 cfg.write();
173 return true; 173 return true;
174 } 174 }
175} 175}
176 176
177 177
178/* 178/*
179 * Init stuff needed for today. Reads the config file. 179 * Init stuff needed for today. Reads the config file.
180 */ 180 */
181void Today::init() { 181void Today::init() {
182 QDate date = QDate::currentDate(); 182 QDate date = QDate::currentDate();
183 QString time = (tr( date.toString()) ); 183 QString time = (tr( date.toString()) );
184 184
185 TextLabel1->setText(time); 185 TextLabel1->setText(time);
186 db = new DateBookDB; 186 db = new DateBookDB;
187 187
188 // read config 188 // read config
189 Config cfg("today"); 189 Config cfg("today");
190 cfg.setGroup("BaseConfig"); 190 cfg.setGroup("BaseConfig");
191 191
192 // -- config file section -- 192 // -- config file section --
193 // how many lines should be showed in the task section 193 // how many lines should be showed in the task section
194 MAX_LINES_TASK = cfg.readNumEntry("maxlinestask",5); 194 MAX_LINES_TASK = cfg.readNumEntry("maxlinestask",5);
195 // after how many chars should the be cut off on tasks and notes 195 // after how many chars should the be cut off on tasks and notes
196 MAX_CHAR_CLIP = cfg.readNumEntry("maxcharclip",40); 196 MAX_CHAR_CLIP = cfg.readNumEntry("maxcharclip",40);
197 // how many lines should be showed in the datebook section 197 // how many lines should be showed in the datebook section
198 MAX_LINES_MEET = cfg.readNumEntry("maxlinesmeet",5); 198 MAX_LINES_MEET = cfg.readNumEntry("maxlinesmeet",5);
199 // If location is to be showed too, 1 to activate it. 199 // If location is to be showed too, 1 to activate it.
200 SHOW_LOCATION = cfg.readNumEntry("showlocation",1); 200 SHOW_LOCATION = cfg.readNumEntry("showlocation",1);
201 // if notes should be shown 201 // if notes should be shown
202 SHOW_NOTES = cfg.readNumEntry("shownotes",0); 202 SHOW_NOTES = cfg.readNumEntry("shownotes",0);
203 // should only later appointments be shown or all for the current day. 203 // should only later appointments be shown or all for the current day.
204 ONLY_LATER = cfg.readNumEntry("onlylater",1); 204 ONLY_LATER = cfg.readNumEntry("onlylater",1);
205} 205}
206 206
207 207
208/* 208/*
209 * The method for the configuration dialog. 209 * The method for the configuration dialog.
210 */ 210 */
211void Today::startConfig() { 211void Today::startConfig() {
212 212
213 conf = new todayconfig ( this, "", true ); 213 conf = new todayconfig ( this, "", true );
214 // read the config 214 // read the config
215 Config cfg("today"); 215 Config cfg("today");
216 cfg.setGroup("BaseConfig"); 216 cfg.setGroup("BaseConfig");
217 217
218 //init(); 218 //init();
219 219
220 conf->SpinBox1->setValue(MAX_LINES_MEET); 220 conf->SpinBox1->setValue(MAX_LINES_MEET);
221 // location show box 221 // location show box
222 conf->CheckBox1->setChecked(SHOW_LOCATION); 222 conf->CheckBox1->setChecked(SHOW_LOCATION);
223 // notes show box 223 // notes show box
224 conf->CheckBox2->setChecked(SHOW_NOTES); 224 conf->CheckBox2->setChecked(SHOW_NOTES);
225 // task lines 225 // task lines
226 conf->SpinBox2->setValue(MAX_LINES_TASK); 226 conf->SpinBox2->setValue(MAX_LINES_TASK);
227 // clip when? 227 // clip when?
228 conf->SpinBox7->setValue(MAX_CHAR_CLIP); 228 conf->SpinBox7->setValue(MAX_CHAR_CLIP);
229 // only later 229 // only later
230 conf->CheckBox3->setChecked(ONLY_LATER); 230 conf->CheckBox3->setChecked(ONLY_LATER);
231 // if today should be autostarted 231 // if today should be autostarted
232 conf->CheckBoxAuto->setChecked(AUTOSTART); 232 conf->CheckBoxAuto->setChecked(AUTOSTART);
233 233
234 conf->exec(); 234 conf->exec();
235 235
236 int maxlinestask = conf->SpinBox2->value(); 236 int maxlinestask = conf->SpinBox2->value();