summaryrefslogtreecommitdiff
authorharlekin <harlekin>2002-03-11 15:05:28 (UTC)
committer harlekin <harlekin>2002-03-11 15:05:28 (UTC)
commit07177b1aa8b5c6979fe06874da903a9d17debb65 (patch) (unidiff)
tree3cd6fef4b53355e861ae1d3db923c9ee92436a47
parentcb57d1df6804ab3739f96ba1881ffc8110e3caa9 (diff)
downloadopie-07177b1aa8b5c6979fe06874da903a9d17debb65.zip
opie-07177b1aa8b5c6979fe06874da903a9d17debb65.tar.gz
opie-07177b1aa8b5c6979fe06874da903a9d17debb65.tar.bz2
some new features like clickable appointments, but not connected to datebook yet
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/today/TODO11
-rw-r--r--core/pim/today/changelog4
-rw-r--r--core/pim/today/today.cpp159
-rw-r--r--core/pim/today/today.h25
-rw-r--r--core/pim/today/today.pro5
-rw-r--r--core/pim/today/todaybase.cpp16
-rw-r--r--core/pim/today/todaybase.h6
-rw-r--r--core/pim/today/todayconfig.h2
8 files changed, 147 insertions, 81 deletions
diff --git a/core/pim/today/TODO b/core/pim/today/TODO
index 5876e2b..a3b01d2 100644
--- a/core/pim/today/TODO
+++ b/core/pim/today/TODO
@@ -1,13 +1,14 @@
1TODO for today: 1TODO for today:
2 2
3* start the app on "resume" 3* start the app on "resume" (partly done)
4 4
5* show alarm icons on alarm events 5* show alarm icons on alarm events (partly done)
6 6
7* add am/pm mode instead of 24 h, take system default 7* add am/pm mode instead of 24 h, take system default
8 8
9 * fix 23 pm bug (done??)
10
11* qcop integration for updating events? 9* qcop integration for updating events?
12 10
13* sort todos by pri. \ No newline at end of file 11* sort todos by pri.
12
13* make Opiezilla a clickable label wich is allway on the far right side of
14the screen , klick will open credits ,) \ No newline at end of file
diff --git a/core/pim/today/changelog b/core/pim/today/changelog
index 7111154..333326d 100644
--- a/core/pim/today/changelog
+++ b/core/pim/today/changelog
@@ -1,52 +1,56 @@
1
2* Appointments are now clickable (connection to datebook still missing)
3* autostart support (opie only)
4
10.2.7 50.2.7
2 6
3* check if todolist.xml was changed before parsing it 7* check if todolist.xml was changed before parsing it
4* check only every 30 sec for changes. 8* check only every 30 sec for changes.
5* some visual stuff 9* some visual stuff
6* as usual many little improvements .-) 10* as usual many little improvements .-)
7 11
80.2.6 120.2.6
9 13
10* added scrollbars to dates and todo 14* added scrollbars to dates and todo
11* all day detection 15* all day detection
12* some smaller bugfixes 16* some smaller bugfixes
13 17
140.2.5 180.2.5
15 19
16* some other minor fixes regarding autoupdate 20* some other minor fixes regarding autoupdate
17* fixed segfault with todolist > 7 entries 21* fixed segfault with todolist > 7 entries
18* fixed the "ugly grey border around buttons" issue 22* fixed the "ugly grey border around buttons" issue
19* fixed the "empty calendar field" "bug" 23* fixed the "empty calendar field" "bug"
20* shown only later appointments as option 24* shown only later appointments as option
21 25
22 26
230.2.4 270.2.4
24 28
25* added support for email 29* added support for email
26* autoupdates after 1 min 30* autoupdates after 1 min
27* QCopEnvelope instead of system() 31* QCopEnvelope instead of system()
28* starting to use qvbox in gui 32* starting to use qvbox in gui
29 33
30 34
310.2.3 350.2.3
32 36
33* the 4 am release 37* the 4 am release
34* several bugfixes 38* several bugfixes
35 39
36 40
370.2.2 410.2.2
38 42
39* started working on calling other apps 43* started working on calling other apps
40* and finished it 44* and finished it
41 45
420.2.1 460.2.1
43 47
44* images no more inline 48* images no more inline
45* config dialog 49* config dialog
46 50
470.1.1 510.1.1
48 52
49* started changelog. 53* started changelog.
50* fixed segfault on empty/nonexistant todolist.xml 54* fixed segfault on empty/nonexistant todolist.xml
51* better handling for file location 55* better handling for file location
52 56
diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp
index d715fc1..69bcb68 100644
--- a/core/pim/today/today.cpp
+++ b/core/pim/today/today.cpp
@@ -1,443 +1,478 @@
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 30
31#include <qdir.h> 31#include <qdir.h>
32#include <qfile.h> 32#include <qfile.h>
33#include <qdatetime.h> 33#include <qdatetime.h>
34#include <qtextstream.h> 34#include <qtextstream.h>
35#include <qcheckbox.h> 35#include <qcheckbox.h>
36#include <qspinbox.h> 36#include <qspinbox.h>
37#include <qpushbutton.h> 37#include <qpushbutton.h>
38#include <qlabel.h> 38#include <qlabel.h>
39#include <qtimer.h> 39#include <qtimer.h>
40#include <qpixmap.h> 40#include <qpixmap.h>
41#include <qfileinfo.h> 41#include <qfileinfo.h>
42#include <qlayout.h>
42 43
43//#include <iostream.h> 44//#include <iostream.h>
44//#include <unistd.h> 45//#include <unistd.h>
45#include <stdlib.h> 46#include <stdlib.h>
46 47
47 48
49
48int MAX_LINES_TASK; 50int MAX_LINES_TASK;
49int MAX_CHAR_CLIP; 51int MAX_CHAR_CLIP;
50int MAX_LINES_MEET; 52int MAX_LINES_MEET;
51int SHOW_LOCATION; 53int SHOW_LOCATION;
52int SHOW_NOTES; 54int SHOW_NOTES;
53// show only later dates 55// show only later dates
54int ONLY_LATER; 56int ONLY_LATER;
55int AUTOSTART; 57int AUTOSTART;
58
59int NEW_START=1;
56/* 60/*
57 * Constructs a Example which is a child of 'parent', with the 61 * Constructs a Example which is a child of 'parent', with the
58 * name 'name' and widget flags set to 'f' 62 * name 'name' and widget flags set to 'f'
59 */ 63 */
60Today::Today( QWidget* parent, const char* name, WFlags fl ) 64Today::Today( QWidget* parent, const char* name, WFlags fl )
61 : TodayBase( parent, name, fl ) { 65 : TodayBase( parent, name, fl ) {
62 QObject::connect( (QObject*)PushButton1, SIGNAL( clicked() ), this, SLOT(startConfig() ) ); 66 QObject::connect( (QObject*)PushButton1, SIGNAL( clicked() ), this, SLOT(startConfig() ) );
63 QObject::connect( (QObject*)TodoButton, SIGNAL( clicked() ), this, SLOT(startTodo() ) ); 67 QObject::connect( (QObject*)TodoButton, SIGNAL( clicked() ), this, SLOT(startTodo() ) );
64 QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startDatebook() ) ); 68 QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startDatebook() ) );
65 QObject::connect( (QObject*)MailButton, SIGNAL( clicked() ), this, SLOT(startMail() ) ); 69 QObject::connect( (QObject*)MailButton, SIGNAL( clicked() ), this, SLOT(startMail() ) );
66 70
67 71
68 autoStart(); 72 autoStart();
69 draw(); 73 draw();
70} 74}
71 75
72
73void Today::autoStart() { 76void Today::autoStart() {
74 Config cfg("today"); 77 Config cfg("today");
75 cfg.setGroup("Autostart"); 78 cfg.setGroup("Autostart");
76 AUTOSTART = cfg.readNumEntry("autostart",1); 79 AUTOSTART = cfg.readNumEntry("autostart",1);
77 if (AUTOSTART) { 80 if (AUTOSTART) {
78 QCopEnvelope e("QPE/System", "autoStart(QString,QString)"); 81 QCopEnvelope e("QPE/System", "autoStart(QString,QString)");
79 e << QString("add"); 82 e << QString("add");
80 e << QString("today"); 83 e << QString("today");
81 } else { 84 } else {
82 QCopEnvelope e("QPE/System", "autoStart(QString,QString)"); 85 QCopEnvelope e("QPE/System", "autoStart(QString,QString)");
83 e << QString("remove"); 86 e << QString("remove");
84 e << QString("today"); 87 e << QString("today");
85 } 88 }
86} 89}
87 90
88void Today::draw() { 91void Today::draw() {
89 init(); 92 init();
90 getDates(); 93 getDates();
91 getMail(); 94 getMail();
92 getTodo(); 95 getTodo();
93 // how often refresh 96 // how often refresh
94 QTimer::singleShot( 30*1000, this, SLOT(draw()) ); 97 QTimer::singleShot( 30*1000, this, SLOT(draw()) );
95} 98}
96 99
97 100
98/* 101/*
99 * Check if the todolist.xml was modified (if there are new entries. 102 * Check if the todolist.xml was modified (if there are new entries.
100 * Returns true if it was modified. 103 * Returns true if it was modified.
101 */ 104 */
102bool Today::checkIfModified() { 105bool Today::checkIfModified() {
103 106
104 QDir dir; 107 QDir dir;
105 QString homedir = dir.homeDirPath (); 108 QString homedir = dir.homeDirPath ();
106 QString time; 109 QString time;
107 110
108 Config cfg("today"); 111 Config cfg("today");
109 cfg.setGroup("Files"); 112 cfg.setGroup("Files");
110 time = cfg.readEntry("todolisttimestamp", ""); 113 time = cfg.readEntry("todolisttimestamp", "");
111 114
112 QFileInfo file = (homedir +"/Applications/todolist/todolist.xml"); 115 QFileInfo file = (homedir +"/Applications/todolist/todolist.xml");
113 QDateTime fileTime = file.lastModified(); 116 QDateTime fileTime = file.lastModified();
114 if (time.compare(fileTime.toString()) == 0) { 117 if (time.compare(fileTime.toString()) == 0) {
115 return false; 118 return false;
116 } else { 119 } else {
117 cfg.writeEntry("todolisttimestamp", fileTime.toString() ); 120 cfg.writeEntry("todolisttimestamp", fileTime.toString() );
118 cfg.write(); 121 cfg.write();
119 return true; 122 return true;
120 } 123 }
121} 124}
122 125
123 126
124void Today::init() { 127void Today::init() {
125 QDate date = QDate::currentDate(); 128 QDate date = QDate::currentDate();
126 QString time = (tr( date.toString()) ); 129 QString time = (tr( date.toString()) );
127// QString time = (tr( date.toString()) , white); 130// QString time = (tr( date.toString()) , white);
128 131
129 TextLabel1->setText(time); 132 TextLabel1->setText(time);
130 db = new DateBookDB; 133 db = new DateBookDB;
131 134
132 // read config 135 // read config
133 Config cfg("today"); 136 Config cfg("today");
134 cfg.setGroup("BaseConfig"); 137 cfg.setGroup("BaseConfig");
135 138
136 // how many lines should be showed in the task section 139 // how many lines should be showed in the task section
137 MAX_LINES_TASK = cfg.readNumEntry("maxlinestask",5); 140 MAX_LINES_TASK = cfg.readNumEntry("maxlinestask",5);
138 // after how many chars should the be cut off on tasks and notes 141 // after how many chars should the be cut off on tasks and notes
139 MAX_CHAR_CLIP = cfg.readNumEntry("maxcharclip",30); 142 MAX_CHAR_CLIP = cfg.readNumEntry("maxcharclip",30);
140 // how many lines should be showed in the datebook section 143 // how many lines should be showed in the datebook section
141 MAX_LINES_MEET = cfg.readNumEntry("maxlinesmeet",5); 144 MAX_LINES_MEET = cfg.readNumEntry("maxlinesmeet",5);
142 // If location is to be showed too, 1 to activate it. 145 // If location is to be showed too, 1 to activate it.
143 SHOW_LOCATION = cfg.readNumEntry("showlocation",1); 146 SHOW_LOCATION = cfg.readNumEntry("showlocation",1);
144 // if notes should be shown 147 // if notes should be shown
145 SHOW_NOTES = cfg.readNumEntry("shownotes",0); 148 SHOW_NOTES = cfg.readNumEntry("shownotes",0);
146 ONLY_LATER = cfg.readNumEntry("onlylater",1); 149 ONLY_LATER = cfg.readNumEntry("onlylater",1);
147 150
148} 151}
149 152
150void Today::startConfig() { 153void Today::startConfig() {
151 conf = new todayconfig ( this, "", true ); 154 conf = new todayconfig ( this, "", true );
152 155
153 156
154 //Config cfg = new Config("today"); 157 //Config cfg = new Config("today");
155 158
156 // read the config 159 // read the config
157 Config cfg("today"); 160 Config cfg("today");
158 cfg.setGroup("BaseConfig"); 161 cfg.setGroup("BaseConfig");
159 162
160 //init(); 163 //init();
161 164
162 conf->SpinBox1->setValue(MAX_LINES_MEET); 165 conf->SpinBox1->setValue(MAX_LINES_MEET);
163 // location show box 166 // location show box
164 conf->CheckBox1->setChecked(SHOW_LOCATION); 167 conf->CheckBox1->setChecked(SHOW_LOCATION);
165 // notes show box 168 // notes show box
166 conf->CheckBox2->setChecked(SHOW_NOTES); 169 conf->CheckBox2->setChecked(SHOW_NOTES);
167 // task lines 170 // task lines
168 conf->SpinBox2->setValue(MAX_LINES_TASK); 171 conf->SpinBox2->setValue(MAX_LINES_TASK);
169 // clip when? 172 // clip when?
170 conf->SpinBox7->setValue(MAX_CHAR_CLIP); 173 conf->SpinBox7->setValue(MAX_CHAR_CLIP);
171 // only later 174 // only later
172 conf->CheckBox3->setChecked(ONLY_LATER); 175 conf->CheckBox3->setChecked(ONLY_LATER);
173 176
174 conf->CheckBoxAuto->setChecked(AUTOSTART); 177 conf->CheckBoxAuto->setChecked(AUTOSTART);
175 178
176 conf->exec(); 179 conf->exec();
177 180
178 int maxlinestask = conf->SpinBox2->value(); 181 int maxlinestask = conf->SpinBox2->value();
179 int maxmeet = conf->SpinBox1->value(); 182 int maxmeet = conf->SpinBox1->value();
180 int location = conf->CheckBox1->isChecked(); 183 int location = conf->CheckBox1->isChecked();
181 int notes = conf->CheckBox2->isChecked(); 184 int notes = conf->CheckBox2->isChecked();
182 int maxcharclip = conf->SpinBox7->value(); 185 int maxcharclip = conf->SpinBox7->value();
183 int onlylater = conf->CheckBox3->isChecked(); 186 int onlylater = conf->CheckBox3->isChecked();
184 int autostart =conf->CheckBoxAuto->isChecked(); 187 int autostart =conf->CheckBoxAuto->isChecked();
185 188
186 cfg.writeEntry("maxlinestask",maxlinestask); 189 cfg.writeEntry("maxlinestask",maxlinestask);
187 cfg.writeEntry("maxcharclip", maxcharclip); 190 cfg.writeEntry("maxcharclip", maxcharclip);
188 cfg.writeEntry("maxlinesmeet",maxmeet); 191 cfg.writeEntry("maxlinesmeet",maxmeet);
189 cfg.writeEntry("showlocation",location); 192 cfg.writeEntry("showlocation",location);
190 cfg.writeEntry("shownotes", notes); 193 cfg.writeEntry("shownotes", notes);
191 cfg.writeEntry("onlylater", onlylater); 194 cfg.writeEntry("onlylater", onlylater);
192 cfg.setGroup("Autostart"); 195 cfg.setGroup("Autostart");
193 cfg.writeEntry("autostart", autostart); 196 cfg.writeEntry("autostart", autostart);
194 // sync it to "disk" 197 // sync it to "disk"
195 cfg.write(); 198 cfg.write();
196 autoStart(); 199 autoStart();
197 draw(); 200 draw();
198} 201}
199 202
200 203
201/* 204/*
202 * Get all events that are in the datebook xml file for today 205 * Get all events that are in the datebook xml file for today
203 */ 206 */
204void Today::getDates() { 207void Today::getDates() {
205 QDate date = QDate::currentDate(); 208 QDate date = QDate::currentDate();
206 QTime time = QTime::currentTime(); 209 QWidget* AllDateBookEvents = new QWidget( );
210 QVBoxLayout* layoutDates = new QVBoxLayout(AllDateBookEvents);
211 //QTime time = QTime::currentTime();
212
207 QValueList<EffectiveEvent> list = db->getEffectiveEvents(date, date); 213 QValueList<EffectiveEvent> list = db->getEffectiveEvents(date, date);
208 214
209 Config config( "qpe" ); 215 Config config( "qpe" );
210 // if 24 h format 216 // if 24 h format
211 //bool ampm = config.readBoolEntry( "AMPM", TRUE ); 217 //bool ampm = config.readBoolEntry( "AMPM", TRUE );
212 218
213 int count=0; 219 int count=0;
214 220
215 if ( list.count() > 0 ) { 221 if ( list.count() > 0 ) {
216 QString msg; 222 QString msg;
217 223
218 for ( QValueList<EffectiveEvent>::ConstIterator it=list.begin(); 224 for ( QValueList<EffectiveEvent>::ConstIterator it=list.begin();
219 it!=list.end(); ++it ) { 225 it!=list.end(); ++it ) {
220 226
221 count++; 227 count++;
222 228
223 if ( count <= MAX_LINES_MEET ) { 229 if ( count <= MAX_LINES_MEET ) {
224 //cout << time.toString() << endl; 230
225 //cout << TimeString::dateString((*it).event().end()) << endl; 231
226 232 DateBookEvent *l=new DateBookEvent(*it, AllDateBookEvents);
227 // decide if to get all day or only later appointments 233 layoutDates->addWidget(l);
228 if (!ONLY_LATER) { 234 connect (l, SIGNAL(editEvent(const Event &)),
229 msg += "<B>" + (*it).description() + "</B>"; 235 this, SIGNAL(editEvent(const Event &)));
230 if ( (*it).event().hasAlarm() ) {
231 msg += " <b>[with alarm]</b>";
232 }
233 // include location or not
234 if (SHOW_LOCATION == 1) {
235 msg += "<BR><i>" + (*it).location();
236 msg += "</i>";
237 }
238
239 if ( (TimeString::timeString(QTime((*it).event().start().time()) ) == "00:00") && (TimeString::timeString(QTime((*it).event().end().time()) ) == "23:59") ) {
240 msg += "<br>All day";
241 } else {
242 // start time of event
243 msg += "<br>" + TimeString::timeString(QTime((*it).event().start().time()) )
244 // end time of event
245 + "<b> - </b>" + TimeString::timeString(QTime((*it).event().end().time()) );
246 }
247 msg += "<BR>";
248 // include possible note or not
249 if (SHOW_NOTES == 1) {
250 msg += " <i>note</i>:" +((*it).notes()).mid(0, MAX_CHAR_CLIP) + "<br>";
251 }
252 } else if ((time.toString() <= TimeString::dateString((*it).event().end())) ) {
253 msg += "<B>" + (*it).description() + "</B>";
254 if ( (*it).event().hasAlarm() ) {
255 msg += " <b>[with alarm]</b>";
256 }
257 // include location or not
258 if (SHOW_LOCATION == 1) {
259 msg+= "<BR><i>" + (*it).location();
260 msg += "</i>";
261 }
262
263 if ( (TimeString::timeString(QTime((*it).event().start().time()) ) == "00:00") && (TimeString::timeString(QTime((*it).event().end().time()) ) == "23:59") ) {
264 msg += "<br>All day";
265 } else {
266 // start time of event
267 msg += "<br>" + TimeString::timeString(QTime((*it).event().start().time()) )
268 // end time of event
269 + "<b> - </b>" + TimeString::timeString(QTime((*it).event().end().time()) );
270 }
271 msg += "<BR>";
272 // include possible note or not
273 if (SHOW_NOTES == 1) {
274 msg += " <i>note</i>:" +((*it).notes()).mid(0, MAX_CHAR_CLIP) + "<br>";
275 }
276 }
277 } 236 }
278 } 237
279 if (msg.isEmpty()) { 238 }
280 msg = tr("No more appointments today"); 239 layoutDates->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding));
281 } 240 sv1->addChild(AllDateBookEvents);
282 DatesField->setText(msg); 241
242 //if (msg.isEmpty()) {
243 // msg = tr("No more appointments today");
244 //}
245 //DatesField->setText(msg);
283 } 246 }
284} 247}
285 248
286/* 249/*
287 * Parse in the todolist.xml 250 * Parse in the todolist.xml
288 */ 251 */
289QList<TodoItem> Today::loadTodo(const char *filename) { 252QList<TodoItem> Today::loadTodo(const char *filename) {
290 DOM *todo; 253 DOM *todo;
291 ELE *tasks; 254 ELE *tasks;
292 ELE **tasklist; 255 ELE **tasklist;
293 ATT **attlist; 256 ATT **attlist;
294 int i, j; 257 int i, j;
295 char *description; 258 char *description;
296 int completed; 259 int completed;
297 int priority; 260 int priority;
298 TodoItem *tmp; 261 TodoItem *tmp;
299 QList<TodoItem> loadtodolist; 262 QList<TodoItem> loadtodolist;
300 263
301 todo = minidom_load(filename); 264 todo = minidom_load(filename);
302 265
303 tasks = todo->el; 266 tasks = todo->el;
304 tasks = tasks->el[0]; /*!DOCTYPE-quickhack*/ 267 tasks = tasks->el[0]; /*!DOCTYPE-quickhack*/
305 if(tasks) { 268 if(tasks) {
306 tasklist = tasks->el; 269 tasklist = tasks->el;
307 i = 0; 270 i = 0;
308 while((tasklist) && (tasklist[i])) { 271 while((tasklist) && (tasklist[i])) {
309 attlist = tasklist[i]->at; 272 attlist = tasklist[i]->at;
310 j = 0; 273 j = 0;
311 description = NULL; 274 description = NULL;
312 priority = -1; 275 priority = -1;
313 completed = -1; 276 completed = -1;
314 while((attlist) && (attlist[j])) { 277 while((attlist) && (attlist[j])) {
315 if(!attlist[j]->name) { 278 if(!attlist[j]->name) {
316 continue; 279 continue;
317 } 280 }
318 if(!strcmp(attlist[j]->name, "Description")) { 281 if(!strcmp(attlist[j]->name, "Description")) {
319 description = attlist[j]->value; 282 description = attlist[j]->value;
320 } 283 }
321 // get Completed tag (0 or 1) 284 // get Completed tag (0 or 1)
322 if(!strcmp(attlist[j]->name, "Completed")) { 285 if(!strcmp(attlist[j]->name, "Completed")) {
323 QString s = attlist[j]->name; 286 QString s = attlist[j]->name;
324 if(s == "Completed") { 287 if(s == "Completed") {
325 completed = QString(attlist[j]->value).toInt(); 288 completed = QString(attlist[j]->value).toInt();
326 } 289 }
327 } 290 }
328 // get Priority (1 to 5) 291 // get Priority (1 to 5)
329 if(!strcmp(attlist[j]->name, "Priority")) { 292 if(!strcmp(attlist[j]->name, "Priority")) {
330 QString s = attlist[j]->name; 293 QString s = attlist[j]->name;
331 if(s == "Priority") { 294 if(s == "Priority") {
332 priority = QString(attlist[j]->value).toInt(); 295 priority = QString(attlist[j]->value).toInt();
333 } 296 }
334 } 297 }
335 j++; 298 j++;
336 } 299 }
337 if(description) { 300 if(description) {
338 tmp = new TodoItem(description, completed, priority); 301 tmp = new TodoItem(description, completed, priority);
339 loadtodolist.append(tmp); 302 loadtodolist.append(tmp);
340 } 303 }
341 i++; 304 i++;
342 } 305 }
343 } 306 }
344 307
345 minidom_free(todo); 308 minidom_free(todo);
346 309
347 return loadtodolist; 310 return loadtodolist;
348} 311}
349 312
350 313
351void Today::getMail() { 314void Today::getMail() {
352 Config cfg("opiemail"); 315 Config cfg("opiemail");
353 cfg.setGroup("today"); 316 cfg.setGroup("today");
354 317
355 // how many lines should be showed in the task section 318 // how many lines should be showed in the task section
356 int NEW_MAILS = cfg.readNumEntry("newmails",0); 319 int NEW_MAILS = cfg.readNumEntry("newmails",0);
357 int OUTGOING = cfg.readNumEntry("outgoing",0); 320 int OUTGOING = cfg.readNumEntry("outgoing",0);
358 321
359 322
360 QString output = tr("<b>%1</b> new mail(s), <b>%2</b> outgoing").arg(NEW_MAILS).arg(OUTGOING); 323 QString output = tr("<b>%1</b> new mail(s), <b>%2</b> outgoing").arg(NEW_MAILS).arg(OUTGOING);
361 324
362 325
363 MailField->setText(output); 326 MailField->setText(output);
364} 327}
365 328
366 329
367/* 330/*
368 * Get the todos 331 * Get the todos
369 * 332 *
370 */ 333 */
371void Today::getTodo() { 334void Today::getTodo() {
372 335
373 // if the todolist.xml file was not modified in between, do not parse it. 336 // if the todolist.xml file was not modified in between, do not parse it.
374 if (!checkIfModified()) { 337 if (!checkIfModified() && !NEW_START) {
375 return; 338 return;
376 } 339 }
340 NEW_START=0;
377 341
378 QString output; 342 QString output;
379 QString tmpout; 343 QString tmpout;
380 int count = 0; 344 int count = 0;
381 345
382 QDir dir; 346 QDir dir;
383 QString homedir = dir.homeDirPath (); 347 QString homedir = dir.homeDirPath ();
384 // see if todolist.xml does exist. 348 // see if todolist.xml does exist.
385 QFile f(homedir +"/Applications/todolist/todolist.xml"); 349 QFile f(homedir +"/Applications/todolist/todolist.xml");
386 if ( f.exists() ) { 350 if ( f.exists() ) {
387 QList<TodoItem> todolist = loadTodo(homedir +"/Applications/todolist/todolist.xml"); 351 QList<TodoItem> todolist = loadTodo(homedir +"/Applications/todolist/todolist.xml");
388 352
389 TodoItem *item; 353 TodoItem *item;
390 for( item = todolist.first(); item; item = todolist.next()) { 354 for( item = todolist.first(); item; item = todolist.next()) {
391 if (!(item->getCompleted() == 1) ) { 355 if (!(item->getCompleted() == 1) ) {
392 count++; 356 count++;
393 if (count <= MAX_LINES_TASK) { 357 if (count <= MAX_LINES_TASK) {
394 tmpout += "<b>- </b>" + QString(((item)->getDescription().mid(0, MAX_CHAR_CLIP) + ("<br>"))); 358 tmpout += "<b>- </b>" + QString(((item)->getDescription().mid(0, MAX_CHAR_CLIP) + ("<br>")));
395 } 359 }
396 } 360 }
397 } 361 }
398 } 362 }
399 363
400 if (count > 0) { 364 if (count > 0) {
401 if( count == 1 ) { 365 if( count == 1 ) {
402 output = tr("There is <b> 1</b> active task: <br>" ); 366 output = tr("There is <b> 1</b> active task: <br>" );
403 } else { 367 } else {
404 output = tr("There are <b> %1</b> active tasks: <br>").arg(count); 368 output = tr("There are <b> %1</b> active tasks: <br>").arg(count);
405 } 369 }
406 output += tmpout; 370 output += tmpout;
407 } else { 371 } else {
408 output = tr("No active tasks"); 372 output = tr("No active tasks");
409 } 373 }
410 374
411 TodoField->setText(tr(output)); 375 TodoField->setText(tr(output));
412} 376}
413 377
414/* 378/*
415 * launches datebook 379 * launches datebook
416 */ 380 */
417void Today::startDatebook() { 381void Today::startDatebook() {
418 QCopEnvelope e("QPE/System", "execute(QString)"); 382 QCopEnvelope e("QPE/System", "execute(QString)");
419 e << QString("datebook"); 383 e << QString("datebook");
420} 384}
421 385
422/* 386/*
423 * launches todolist 387 * launches todolist
424 */ 388 */
425void Today::startTodo() { 389void Today::startTodo() {
426 QCopEnvelope e("QPE/System", "execute(QString)"); 390 QCopEnvelope e("QPE/System", "execute(QString)");
427 e << QString("todolist"); 391 e << QString("todolist");
428} 392}
429 393
430/* 394/*
431 * launch opiemail 395 * launch opiemail
432 */ 396 */
433void Today::startMail() { 397void Today::startMail() {
434 QCopEnvelope e("QPE/System", "execute(QString)"); 398 QCopEnvelope e("QPE/System", "execute(QString)");
435 e << QString("opiemail"); 399 e << QString("opiemail");
436} 400}
437 401
438/* 402/*
439 * Destroys the object and frees any allocated resources 403 * Destroys the object and frees any allocated resources
440 */ 404 */
441Today::~Today() { 405Today::~Today() {
442 // no need to delete child widgets, Qt does it all for us 406 // no need to delete child widgets, Qt does it all for us
443} 407}
408
409
410DateBookEvent::DateBookEvent(const EffectiveEvent &ev,
411 QWidget* parent = 0,
412 const char* name = 0,
413 WFlags fl = 0) :
414 ClickableLabel(parent,name,fl), event(ev) {
415
416 QString msg;
417 QTime time = QTime::currentTime();
418
419 if (!ONLY_LATER) {
420 msg += "<B>" + (ev).description() + "</B>";
421 if ( (ev).event().hasAlarm() ) {
422 msg += " <b>[with alarm]</b>";
423 }
424 // include location or not
425 if (SHOW_LOCATION == 1) {
426 msg += "<BR><i>" + (ev).location();
427 msg += "</i>";
428 }
429
430 if ( (TimeString::timeString(QTime((ev).event().start().time()) ) == "00:00") && (TimeString::timeString(QTime((ev).event().end().time()) ) == "23:59") ) {
431 msg += "<br>All day";
432 } else {
433 // start time of event
434 msg += "<br>" + TimeString::timeString(QTime((ev).event().start().time()) )
435 // end time of event
436 + "<b> - </b>" + TimeString::timeString(QTime((ev).event().end().time()) );
437 }
438 msg += "<BR>";
439 // include possible note or not
440 if (SHOW_NOTES == 1) {
441 msg += " <i>note</i>:" +((ev).notes()).mid(0, MAX_CHAR_CLIP) + "<br>";
442 }
443 } else if ((time.toString() <= TimeString::dateString((ev).event().end())) ) {
444 msg += "<B>" + (ev).description() + "</B>";
445 if ( (ev).event().hasAlarm() ) {
446 msg += " <b>[with alarm]</b>";
447 }
448 // include location or not
449 if (SHOW_LOCATION == 1) {
450 msg+= "<BR><i>" + (ev).location();
451 msg += "</i>";
452 }
453
454 if ( (TimeString::timeString(QTime((ev).event().start().time()) ) == "00:00") && (TimeString::timeString(QTime((ev).event().end().time()) ) == "23:59") ) {
455 msg += "<br>All day";
456 } else {
457 // start time of event
458 msg += "<br>" + TimeString::timeString(QTime((ev).event().start().time()) )
459 // end time of event
460 + "<b> - </b>" + TimeString::timeString(QTime((ev).event().end().time()) );
461 }
462 // include possible note or not
463 if (SHOW_NOTES == 1) {
464 msg += "<br> <i>note</i>:" +((ev).notes()).mid(0, MAX_CHAR_CLIP) + "<br>";
465 }
466 }
467
468 setText(msg);
469 connect(this, SIGNAL(clicked()), this, SLOT(editMe()));
470 setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) );
471}
472
473void DateBookEvent::editMe() {
474 emit editEvent(event.event());
475}
476
477
478
diff --git a/core/pim/today/today.h b/core/pim/today/today.h
index b3b7d01..0a0837c 100644
--- a/core/pim/today/today.h
+++ b/core/pim/today/today.h
@@ -1,65 +1,84 @@
1/* 1/*
2 * today.h 2 * today.h
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 20
21#ifndef TODAY_H 21#ifndef TODAY_H
22#define TODAY_H 22#define TODAY_H
23#include "todaybase.h"
24 23
25#include <qpe/datebookdb.h> 24#include <qpe/datebookdb.h>
25#include <qpe/event.h>
26 26
27#include <qdatetime.h> 27#include <qdatetime.h>
28#include <qlist.h> 28#include <qlist.h>
29
29#include "TodoItem.h" 30#include "TodoItem.h"
30#include "todayconfig.h" 31#include "todayconfig.h"
32#include "todaybase.h"
33#include "clickablelabel.h"
34
35class QVBoxLayout;
31 36
32class Today : public TodayBase 37class Today : public TodayBase {
33{
34 Q_OBJECT 38 Q_OBJECT
35 39
36 public: 40 public:
37 Today( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 41 Today( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
38 ~Today(); 42 ~Today();
39 43
40 private slots: 44 private slots:
41 void startConfig(); 45 void startConfig();
42 void startTodo(); 46 void startTodo();
43 void startDatebook(); 47 void startDatebook();
44 void startMail(); 48 void startMail();
45 void draw(); 49 void draw();
46 private: 50 private:
47 void init(); 51 void init();
48 void getDates(); 52 void getDates();
49 void getTodo(); 53 void getTodo();
50 void getMail(); 54 void getMail();
51 void autoStart(); 55 void autoStart();
52 bool checkIfModified(); 56 bool checkIfModified();
53 QList<TodoItem> loadTodo(const char *filename); 57 QList<TodoItem> loadTodo(const char *filename);
54 private: 58 private:
55 DateBookDB *db; 59 DateBookDB *db;
56 todayconfig *conf; 60 todayconfig *conf;
57 //Config cfg; 61 //Config cfg;
58 int MAX_LINES_TASK; 62 int MAX_LINES_TASK;
59 int MAX_CHAR_CLIP; 63 int MAX_CHAR_CLIP;
60 int MAX_LINES_MEET; 64 int MAX_LINES_MEET;
61 int SHOW_LOCATION; 65 int SHOW_LOCATION;
62 int SHOW_NOTES; 66 int SHOW_NOTES;
63}; 67};
68
69class DateBookEvent: public ClickableLabel {
70 Q_OBJECT
71public:
72 DateBookEvent(const EffectiveEvent &ev,
73 QWidget* parent = 0, const char* name = 0,
74 WFlags fl = 0);
75signals:
76 void editEvent(const Event &e);
77private slots:
78 void editMe();
79private:
80 const EffectiveEvent event;
81};
82
64#endif // TODAY_H 83#endif // TODAY_H
65 84
diff --git a/core/pim/today/today.pro b/core/pim/today/today.pro
index 7d56e71..454b3ff 100644
--- a/core/pim/today/today.pro
+++ b/core/pim/today/today.pro
@@ -1,11 +1,12 @@
1 TEMPLATE= app 1 TEMPLATE= app
2 #CONFIG = qt warn_on debug 2 #CONFIG = qt warn_on debug
3 CONFIG = qt warn_on release 3 CONFIG = qt warn_on release
4 HEADERS = today.h TodoItem.h minidom.h todaybase.h todayconfig.h 4 HEADERS = today.h TodoItem.h minidom.h todaybase.h todayconfig.h clickablelabel.h
5 SOURCES = main.cpp today.cpp todaybase.cpp todayconfig.cpp minidom.c TodoItem.cpp 5 SOURCES = main.cpp today.cpp todaybase.cpp todayconfig.cpp minidom.c TodoItem.cpp clickablelabel.cpp
6
6 INCLUDEPATH+= $(OPIEDIR)/include 7 INCLUDEPATH+= $(OPIEDIR)/include
7 DEPENDPATH+= $(OPIEDIR)/include 8 DEPENDPATH+= $(OPIEDIR)/include
8LIBS += -lqpe 9LIBS += -lqpe
9 INTERFACES= 10 INTERFACES=
10 TARGET = today 11 TARGET = today
11 DESTDIR = $(OPIEDIR)/bin 12 DESTDIR = $(OPIEDIR)/bin
diff --git a/core/pim/today/todaybase.cpp b/core/pim/today/todaybase.cpp
index 5c1dc24..552e2eb 100644
--- a/core/pim/today/todaybase.cpp
+++ b/core/pim/today/todaybase.cpp
@@ -1,193 +1,197 @@
1/* 1/*
2 * todaybase.cpp * 2 * todaybase.cpp *
3 * --------------------- 3 * ---------------------
4 * 4 *
5 * begin : Sun 10 17:20:00 CEST 2002 5 * begin : Sun 10 17:20:00 CEST 2002
6 * copyright : (c) 2002 by Maximilian Reiß 6 * copyright : (c) 2002 by Maximilian Reiß
7 * email : max.reiss@gmx.de 7 * email : max.reiss@gmx.de
8 * 8 *
9 */ 9 */
10/*************************************************************************** 10/***************************************************************************
11 * * 11 * *
12 * This program is free software; you can redistribute it and/or modify * 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 * 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 * 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 "todaybase.h" 19#include "todaybase.h"
20 20
21#include <qframe.h> 21#include <qframe.h>
22#include <qlabel.h> 22#include <qlabel.h>
23#include <qpushbutton.h> 23#include <qpushbutton.h>
24#include <qlayout.h> 24#include <qlayout.h>
25#include <qvariant.h> 25#include <qvariant.h>
26#include <qtooltip.h> 26#include <qtooltip.h>
27#include <qwhatsthis.h> 27#include <qwhatsthis.h>
28#include <qimage.h> 28#include <qimage.h>
29#include <qpixmap.h> 29#include <qpixmap.h>
30#include <qscrollview.h> 30#include <qscrollview.h>
31#include <qvbox.h> 31#include <qvbox.h>
32#include <qapplication.h> 32#include <qapplication.h>
33 33
34#include <qpe/resource.h> 34#include <qpe/resource.h>
35 35
36/* 36/*
37 * Constructs a TodayBase which is a child of 'parent', with the 37 * Constructs a TodayBase which is a child of 'parent', with the
38 * name 'name' and widget flags set to 'f' 38 * name 'name' and widget flags set to 'f'
39 */ 39 */
40TodayBase::TodayBase( QWidget* parent, const char* name, WFlags fl ) 40TodayBase::TodayBase( QWidget* parent, const char* name, WFlags fl )
41 : QWidget( parent, name, fl ) 41 : QWidget( parent, name, fl )
42{ 42{
43 QPixmap logo = Resource::loadPixmap( "today/today_logo"); // logo 43 QPixmap logo = Resource::loadPixmap( "today/today_logo"); // logo
44 QPixmap datebook = Resource::loadPixmap("DateBook"); // datebook 44 QPixmap datebook = Resource::loadPixmap("DateBook"); // datebook
45 QPixmap todo = Resource::loadPixmap( "TodoList" ); // todo 45 QPixmap todo = Resource::loadPixmap( "TodoList" ); // todo
46 QPixmap config = Resource::loadPixmap( "today/config" ); // config icon 46 QPixmap config = Resource::loadPixmap( "today/config" ); // config icon
47 QPixmap mail = Resource::loadPixmap( "today/mail" ); // mail icon 47 QPixmap mail = Resource::loadPixmap( "today/mail" ); // mail icon
48 48
49 QPalette pal = this->palette(); 49 QPalette pal = this->palette();
50 QColor col = pal.color(QPalette::Active, QColorGroup::Background); 50 QColor col = pal.color(QPalette::Active, QColorGroup::Background);
51 pal.setColor(QPalette::Active, QColorGroup::Button, col); 51 pal.setColor(QPalette::Active, QColorGroup::Button, col);
52 this->setPalette(pal); 52 this->setPalette(pal);
53 53
54
54 QWidget *d = QApplication::desktop(); 55 QWidget *d = QApplication::desktop();
55 int w=d->width(); 56 int w=d->width();
56 int h=d->height(); 57 int h=d->height();
57 resize( w , h ); 58 resize( w , h );
58 59
59 // hehe, qt is ... 60 // hehe, qt is ...
60 getridoffuckingstrippeldlinesbutton = new QPushButton (this, "asdfsad" ); 61 getridoffuckingstrippeldlinesbutton = new QPushButton (this, "asdfsad" );
61 getridoffuckingstrippeldlinesbutton->setGeometry( QRect( -5, 10, 0, 0 ) ); 62 getridoffuckingstrippeldlinesbutton->setGeometry( QRect( -5, 10, 0, 0 ) );
62 63
63 QVBoxLayout * layout = new QVBoxLayout(this); 64 QVBoxLayout * layout = new QVBoxLayout(this);
64 65
65 // --- logo Section --- 66 // --- logo Section ---
66 QPalette pal2; 67 QPalette pal2;
67 QColorGroup cg; 68 QColorGroup cg;
68 cg.setColor( QColorGroup::Text, white ); 69 cg.setColor( QColorGroup::Text, white );
69 cg.setBrush( QColorGroup::Background, QBrush( QColor( 238, 238, 230), logo ) ); 70 cg.setBrush( QColorGroup::Background, QBrush( QColor( 238, 238, 230), logo ) );
70 pal2.setActive( cg ); 71 pal2.setActive( cg );
71 // today logo 72 // today logo
72 Frame = new QLabel( this, "Frame" ); 73 Frame = new QLabel( this, "Frame" );
73 Frame->setPalette( pal2 ); 74 Frame->setPalette( pal2 );
74 Frame->setFrameShape( QFrame::StyledPanel ); 75 Frame->setFrameShape( QFrame::StyledPanel );
75 Frame->setFrameShadow( QFrame::Raised ); 76 Frame->setFrameShadow( QFrame::Raised );
76 Frame->setLineWidth( 0 ); 77 Frame->setLineWidth( 0 );
77 Frame->setMaximumHeight(50); 78 Frame->setMaximumHeight(50);
78 Frame->setMinimumHeight(50); 79 Frame->setMinimumHeight(50);
79 // date 80 // date
80 TextLabel1 = new QLabel( Frame, "TextLabel1" ); 81 TextLabel1 = new QLabel( Frame, "TextLabel1" );
81 TextLabel1->setGeometry( QRect( 10, 35, 168, 12 ) ); 82 TextLabel1->setGeometry( QRect( 10, 35, 168, 12 ) );
82 QFont TextLabel1_font( TextLabel1->font() ); 83 QFont TextLabel1_font( TextLabel1->font() );
83 TextLabel1_font.setBold( TRUE ); 84 TextLabel1_font.setBold( TRUE );
84 TextLabel1->setFont( TextLabel1_font ); 85 TextLabel1->setFont( TextLabel1_font );
85 TextLabel1->setBackgroundOrigin( QLabel::ParentOrigin ); 86 TextLabel1->setBackgroundOrigin( QLabel::ParentOrigin );
86 TextLabel1->setTextFormat( RichText ); 87 TextLabel1->setTextFormat( RichText );
87 88
88 89
89 // --- dates section --- 90 // --- dates section ---
90 Frame4 = new QFrame( this, "Frame4" ); 91 Frame4 = new QFrame( this, "Frame4" );
91 Frame4->setPalette( pal ); 92 Frame4->setPalette( pal );
92 Frame4->setFrameShape( QScrollView::StyledPanel ); 93 Frame4->setFrameShape( QScrollView::StyledPanel );
93 Frame4->setFrameShadow( QScrollView::Sunken ); 94 Frame4->setFrameShadow( QScrollView::Sunken );
94 Frame4->setBackgroundOrigin( QScrollView::ParentOrigin ); 95 Frame4->setBackgroundOrigin( QScrollView::ParentOrigin );
95 Frame4->setFrameStyle( QFrame::NoFrame ); 96 Frame4->setFrameStyle( QFrame::NoFrame );
96 Frame4->setGeometry (QRect( 0, 0, this->width() , this->height()) ); 97 Frame4->setGeometry (QRect( 0, 0, this->width() , this->height()) );
97 98
98 QScrollView* sv1 = new QScrollView( Frame4 ); 99 // QScrollView* sv1 = new QScrollView( Frame4 );
100 sv1 = new QScrollView( Frame4 );
99 sv1->setResizePolicy(QScrollView::AutoOneFit); 101 sv1->setResizePolicy(QScrollView::AutoOneFit);
100 sv1->setHScrollBarMode( QScrollView::AlwaysOff ); 102 sv1->setHScrollBarMode( QScrollView::AlwaysOff );
101 // need to find a better way!!! 103 // need to find a better way!!!
102 sv1->setGeometry (QRect( 40, 2, Frame4->width()-40 , (Frame4->height()/3)+20 ) ); 104 sv1->setGeometry (QRect( 40, 2, Frame4->width()-40 , (Frame4->height()/3)+20 ) );
103 sv1->setFrameShape(QFrame::NoFrame); 105 sv1->setFrameShape(QFrame::NoFrame);
104 106
105 DatesButton = new QPushButton (Frame4, "DatesButton" ); 107 DatesButton = new QPushButton (Frame4, "DatesButton" );
106 DatesButton->setGeometry( QRect( 2, 4, 36, 32 ) ); 108 DatesButton->setGeometry( QRect( 2, 4, 36, 32 ) );
107 DatesButton->setBackgroundOrigin( QPushButton::WidgetOrigin ); 109 DatesButton->setBackgroundOrigin( QPushButton::WidgetOrigin );
108 DatesButton->setPalette( pal ); 110 DatesButton->setPalette( pal );
109 DatesButton->setPixmap( datebook ); 111 DatesButton->setPixmap( datebook );
110 DatesButton->setFlat( TRUE ); 112 DatesButton->setFlat( TRUE );
111 113
112 DatesField = new QLabel( sv1->viewport(), "DatesField" ); 114 //DatesField = new QLabel( sv1->viewport(), "DatesField" );
113 sv1->addChild(DatesField); 115 //DatesField = new QVBox(sv1->viewport());
114 DatesField->setText( tr( "No appointments today" ) ); 116 //QWidget *dummy = new QWidget(sv1->viewport());
115 DatesField->setAlignment( int( QLabel::AlignTop | QLabel::AlignLeft ) ); 117 //sv1->addChild(DatesField);
118 //DatesField->setText( tr( "No appointments today" ) );
119 // DatesField->setAlignment( int( QLabel::AlignTop | QLabel::AlignLeft ) );
116 120
117 121
118 // --- mail section --- 122 // --- mail section ---)
119 MailFrame = new QFrame( this ,"MailFrame" ); 123 MailFrame = new QFrame( this ,"MailFrame" );
120 MailFrame->setBackgroundOrigin( QScrollView::ParentOrigin ); 124 MailFrame->setBackgroundOrigin( QScrollView::ParentOrigin );
121 MailFrame->setGeometry (QRect( 0, 0, this->width() , 15) ); 125 MailFrame->setGeometry (QRect( 0, 0, this->width() , 15) );
122 MailFrame->setFrameStyle( QFrame::NoFrame ); 126 MailFrame->setFrameStyle( QFrame::NoFrame );
123 127
124 QFrame* Line1 = new QFrame( MailFrame); 128 QFrame* Line1 = new QFrame( MailFrame);
125 Line1->setGeometry( QRect( -5, 0, MailFrame->width()+5, 5 ) ); 129 Line1->setGeometry( QRect( -5, 0, MailFrame->width()+5, 5 ) );
126 Line1->setFrameStyle( QFrame::HLine | QFrame::Sunken ); 130 Line1->setFrameStyle( QFrame::HLine | QFrame::Sunken );
127 131
128 MailButton = new QPushButton (MailFrame, "MailButton" ); 132 MailButton = new QPushButton (MailFrame, "MailButton" );
129 MailButton->setGeometry( QRect( 2, 3, 36, 19 ) ); 133 MailButton->setGeometry( QRect( 2, 3, 36, 19 ) );
130 MailButton->setPalette( pal ); 134 MailButton->setPalette( pal );
131 MailButton->setPixmap( mail ); 135 MailButton->setPixmap( mail );
132 MailButton->setFlat( TRUE ); 136 MailButton->setFlat( TRUE );
133 137
134 MailField = new QLabel( MailFrame, "MailField" ); 138 MailField = new QLabel( MailFrame, "MailField" );
135 MailField->setGeometry( QRect( 40, 4, MailFrame->width(), 12) ); 139 MailField->setGeometry( QRect( 40, 4, MailFrame->width(), 12) );
136 MailField->setText( tr( "Opiemail not installed" ) ); 140 MailField->setText( tr( "Opiemail not installed" ) );
137 MailField->setAlignment( int( QLabel::AlignTop | QLabel::AlignLeft ) ); 141 MailField->setAlignment( int( QLabel::AlignTop | QLabel::AlignLeft ) );
138 MailField->setMaximumHeight(40); 142 MailField->setMaximumHeight(40);
139 MailField->setMinimumHeight(15); 143 MailField->setMinimumHeight(15);
140 144
141 145
142 // --- todo section -- 146 // --- todo section --
143 Frame15 = new QFrame( this, "Frame15" ); 147 Frame15 = new QFrame( this, "Frame15" );
144 Frame15->setFrameStyle( QFrame::NoFrame ); 148 Frame15->setFrameStyle( QFrame::NoFrame );
145 Frame15->setGeometry (QRect( 40, 3, this->width() , this->height()) ); 149 Frame15->setGeometry (QRect( 40, 3, this->width() , this->height()) );
146 150
147 QFrame* Line2 = new QFrame( Frame15); 151 QFrame* Line2 = new QFrame( Frame15);
148 Line2->setGeometry( QRect( -5, 0, MailFrame->width()+5, 5 ) ); 152 Line2->setGeometry( QRect( -5, 0, MailFrame->width()+5, 5 ) );
149 Line2->setFrameStyle( QFrame::HLine | QFrame::Sunken ); 153 Line2->setFrameStyle( QFrame::HLine | QFrame::Sunken );
150 154
151 TodoButton = new QPushButton (Frame15, "TodoButton" ); 155 TodoButton = new QPushButton (Frame15, "TodoButton" );
152 TodoButton->setGeometry( QRect( 2, 4, 36, 32 ) ); 156 TodoButton->setGeometry( QRect( 2, 4, 36, 32 ) );
153 TodoButton->setPalette( pal ); 157 TodoButton->setPalette( pal );
154 TodoButton->setPixmap( todo ); 158 TodoButton->setPixmap( todo );
155 TodoButton->setFlat( TRUE ); 159 TodoButton->setFlat( TRUE );
156 160
157 QScrollView* sv2 = new QScrollView( Frame15 ); 161 QScrollView* sv2 = new QScrollView( Frame15 );
158 sv2->setResizePolicy(QScrollView::AutoOneFit); 162 sv2->setResizePolicy(QScrollView::AutoOneFit);
159 sv2->setHScrollBarMode( QScrollView::AlwaysOff ); 163 sv2->setHScrollBarMode( QScrollView::AlwaysOff );
160 sv2->setGeometry (QRect( 40, 3, Frame15->width()-40 , (Frame15->height()/3) ) ); 164 sv2->setGeometry (QRect( 40, 3, Frame15->width()-40 , (Frame15->height()/3) ) );
161 sv2->setFrameShape(QFrame::NoFrame); 165 sv2->setFrameShape(QFrame::NoFrame);
162 166
163 TodoField = new QLabel( sv2->viewport(), "TodoField" ); 167 TodoField = new QLabel( sv2->viewport(), "TodoField" );
164 sv2->addChild(TodoField); 168 sv2->addChild(TodoField);
165 TodoField->setFrameShadow( QLabel::Plain ); 169 TodoField->setFrameShadow( QLabel::Plain );
166 //TodoField->setText( tr( "No current todos" ) ); 170 //TodoField->setText( tr( "No current todos" ) );
167 TodoField->setAlignment( int( QLabel::AlignTop | QLabel::AlignLeft ) ); 171 TodoField->setAlignment( int( QLabel::AlignTop | QLabel::AlignLeft ) );
168 172
169 PushButton1 = new QPushButton (Frame15, "PushButton1" ); 173 PushButton1 = new QPushButton (Frame15, "PushButton1" );
170 PushButton1->setGeometry( QRect( 2, 68, 25, 21 ) ); 174 PushButton1->setGeometry( QRect( 2, 68, 25, 21 ) );
171 PushButton1->setPixmap( config ); 175 PushButton1->setPixmap( config );
172 PushButton1->setPalette( pal ); 176 PushButton1->setPalette( pal );
173 PushButton1->setAutoDefault( TRUE ); 177 PushButton1->setAutoDefault( TRUE );
174 PushButton1->setFlat( TRUE ); 178 PushButton1->setFlat( TRUE );
175 179
176 // -- layout -- 180 // -- layout --
177 layout->addWidget(Frame); 181 layout->addWidget(Frame);
178 layout->addWidget(Frame4); 182 layout->addWidget(Frame4);
179 layout->addWidget(MailFrame); 183 layout->addWidget(MailFrame);
180 layout->addWidget(Frame15); 184 layout->addWidget(Frame15);
181 185
182 layout->setStretchFactor(Frame4,5); 186 layout->setStretchFactor(Frame4,5);
183 layout->setStretchFactor(MailFrame,1); 187 layout->setStretchFactor(MailFrame,1);
184 layout->setStretchFactor(Frame15,4); 188 layout->setStretchFactor(Frame15,4);
185} 189}
186 190
187/* 191/*
188 * Destroys the object and frees any allocated resources 192 * Destroys the object and frees any allocated resources
189 */ 193 */
190TodayBase::~TodayBase() 194TodayBase::~TodayBase()
191{ 195{
192} 196}
193 197
diff --git a/core/pim/today/todaybase.h b/core/pim/today/todaybase.h
index 13fbb8d..8840125 100644
--- a/core/pim/today/todaybase.h
+++ b/core/pim/today/todaybase.h
@@ -1,52 +1,54 @@
1/**************************************************************************** 1/****************************************************************************
2** Form interface generated from reading ui file 'todaybase.ui' 2** Form interface generated from reading ui file 'todaybase.ui'
3** 3**
4** Created: Wed Feb 13 19:36:45 2002 4** Created: Wed Feb 13 19:36:45 2002
5** by: The User Interface Compiler (uic) 5** by: The User Interface Compiler (uic)
6** 6**
7** WARNING! All changes made in this file will be lost! 7** WARNING! All changes made in this file will be lost!
8****************************************************************************/ 8****************************************************************************/
9#ifndef TODAYBASE_H 9#ifndef TODAYBASE_H
10#define TODAYBASE_H 10#define TODAYBASE_H
11 11
12#include <qvariant.h> 12#include <qvariant.h>
13#include <qwidget.h> 13#include <qwidget.h>
14#include <qscrollview.h> 14#include <qscrollview.h>
15#include <qsplitter.h> 15#include <qsplitter.h>
16 16
17class QVBoxLayout; 17class QVBox;
18class QHBoxLayout; 18class QHBoxLayout;
19class QGridLayout; 19class QGridLayout;
20class QFrame; 20class QFrame;
21class QLabel; 21class QLabel;
22class QPushButton; 22class QPushButton;
23 23
24class TodayBase : public QWidget 24class TodayBase : public QWidget
25{ 25{
26 Q_OBJECT 26 Q_OBJECT
27 27
28public: 28public:
29 TodayBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 29 TodayBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
30 ~TodayBase(); 30 ~TodayBase();
31 31
32 //QScrollView* Frame4; 32 //QScrollView* Frame4;
33 QFrame* Frame4; 33 QFrame* Frame4;
34 QPushButton* DatesButton; 34 QPushButton* DatesButton;
35 QLabel* DatesField; 35 //QLabel* DatesField;
36 QLabel* Frame; 36 QLabel* Frame;
37 QFrame* MailFrame; 37 QFrame* MailFrame;
38 QLabel* TextLabel1; 38 QLabel* TextLabel1;
39 QScrollView* sv1;
40 QVBox* DatesField;
39 QFrame* Frame15; 41 QFrame* Frame15;
40 QLabel* TodoField; 42 QLabel* TodoField;
41 QLabel* MailField; 43 QLabel* MailField;
42 QPushButton* PushButton1; 44 QPushButton* PushButton1;
43 QPushButton* TodoButton; 45 QPushButton* TodoButton;
44 QPushButton* MailButton; 46 QPushButton* MailButton;
45 QPushButton* getridoffuckingstrippeldlinesbutton; 47 QPushButton* getridoffuckingstrippeldlinesbutton;
46 48
47protected: 49protected:
48 50
49 51
50}; 52};
51 53
52#endif // TODAYBASE_H 54#endif // TODAYBASE_H
diff --git a/core/pim/today/todayconfig.h b/core/pim/today/todayconfig.h
index 020097d..4739b5a 100644
--- a/core/pim/today/todayconfig.h
+++ b/core/pim/today/todayconfig.h
@@ -1,55 +1,55 @@
1/**************************************************************************** 1/****************************************************************************
2** Form interface generated from reading ui file 'todayconfig.ui' 2** Form interface generated from reading ui file 'todayconfig.ui'
3** 3**
4** Created: Thu Feb 14 15:04:33 2002 4** Created: Thu Feb 14 15:04:33 2002
5** by: The User Interface Compiler (uic) 5** by: The User Interface Compiler (uic)
6** 6**
7** WARNING! All changes made in this file will be lost! 7** WARNING! All changes made in this file will be lost!
8****************************************************************************/ 8****************************************************************************/
9#ifndef TODAYCONFIG_H 9#ifndef TODAYCONFIG_H
10#define TODAYCONFIG_H 10#define TODAYCONFIG_H
11 11
12#include <qvariant.h> 12#include <qvariant.h>
13#include <qdialog.h> 13#include <qdialog.h>
14class QVBoxLayout; 14//class QVBoxLayout;
15class QHBoxLayout; 15class QHBoxLayout;
16class QGridLayout; 16class QGridLayout;
17class QCheckBox; 17class QCheckBox;
18class QFrame; 18class QFrame;
19class QLabel; 19class QLabel;
20class QSpinBox; 20class QSpinBox;
21class QTabWidget; 21class QTabWidget;
22class QWidget; 22class QWidget;
23 23
24class todayconfig : public QDialog 24class todayconfig : public QDialog
25{ 25{
26 Q_OBJECT 26 Q_OBJECT
27 27
28public: 28public:
29 todayconfig( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); 29 todayconfig( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
30 ~todayconfig(); 30 ~todayconfig();
31 31
32 QTabWidget* TabWidget3; 32 QTabWidget* TabWidget3;
33 QWidget* tab; 33 QWidget* tab;
34 QFrame* Frame8; 34 QFrame* Frame8;
35 QLabel* TextLabel4; 35 QLabel* TextLabel4;
36 QLabel* TextLabel5; 36 QLabel* TextLabel5;
37 QLabel* TextLabel2; 37 QLabel* TextLabel2;
38 QCheckBox* CheckBox3; 38 QCheckBox* CheckBox3;
39 QCheckBox* CheckBox2; 39 QCheckBox* CheckBox2;
40 QCheckBox* CheckBox1; 40 QCheckBox* CheckBox1;
41 QCheckBox* CheckBoxAuto; 41 QCheckBox* CheckBoxAuto;
42 QSpinBox* SpinBox1; 42 QSpinBox* SpinBox1;
43 QLabel* TextLabel3; 43 QLabel* TextLabel3;
44 QWidget* tab_2; 44 QWidget* tab_2;
45 QFrame* Frame9; 45 QFrame* Frame9;
46 QLabel* TextLabel6; 46 QLabel* TextLabel6;
47 QSpinBox* SpinBox2; 47 QSpinBox* SpinBox2;
48 QWidget* tab_3; 48 QWidget* tab_3;
49 QFrame* Frame14; 49 QFrame* Frame14;
50 QLabel* TextLabel1; 50 QLabel* TextLabel1;
51 QSpinBox* SpinBox7; 51 QSpinBox* SpinBox7;
52 52
53}; 53};
54 54
55#endif // TODAYCONFIG_H 55#endif // TODAYCONFIG_H