summaryrefslogtreecommitdiff
path: root/core/pim/today/today.cpp
Unidiff
Diffstat (limited to 'core/pim/today/today.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/today/today.cpp41
1 files changed, 32 insertions, 9 deletions
diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp
index 6a0e9fc..0fa7ad5 100644
--- a/core/pim/today/today.cpp
+++ b/core/pim/today/today.cpp
@@ -41,53 +41,71 @@
41 41
42//#include <iostream.h> 42//#include <iostream.h>
43//#include <unistd.h> 43//#include <unistd.h>
44#include <stdlib.h> 44#include <stdlib.h>
45 45
46int MAX_LINES_TASK; 46int MAX_LINES_TASK;
47int MAX_CHAR_CLIP; 47int MAX_CHAR_CLIP;
48int MAX_LINES_MEET; 48int MAX_LINES_MEET;
49int SHOW_LOCATION; 49int SHOW_LOCATION;
50int SHOW_NOTES; 50int SHOW_NOTES;
51// show only later dates 51// show only later dates
52int ONLY_LATER; 52int ONLY_LATER;
53int AUTOSTART;
53/* 54/*
54 * Constructs a Example which is a child of 'parent', with the 55 * Constructs a Example which is a child of 'parent', with the
55 * name 'name' and widget flags set to 'f' 56 * name 'name' and widget flags set to 'f'
56 */ 57 */
57Today::Today( QWidget* parent, const char* name, WFlags fl ) 58Today::Today( QWidget* parent, const char* name, WFlags fl )
58 : TodayBase( parent, name, fl ) { 59 : TodayBase( parent, name, fl ) {
59 QObject::connect( (QObject*)PushButton1, SIGNAL( clicked() ), this, SLOT(startConfig() ) ); 60 QObject::connect( (QObject*)PushButton1, SIGNAL( clicked() ), this, SLOT(startConfig() ) );
60 QObject::connect( (QObject*)TodoButton, SIGNAL( clicked() ), this, SLOT(startTodo() ) ); 61 QObject::connect( (QObject*)TodoButton, SIGNAL( clicked() ), this, SLOT(startTodo() ) );
61 QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startDatebook() ) ); 62 QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startDatebook() ) );
62 QObject::connect( (QObject*)MailButton, SIGNAL( clicked() ), this, SLOT(startMail() ) ); 63 QObject::connect( (QObject*)MailButton, SIGNAL( clicked() ), this, SLOT(startMail() ) );
63 64
65
66 autoStart();
64 draw(); 67 draw();
65} 68}
66 69
67 70
71void Today::autoStart() {
72 Config cfg("today");
73 cfg.setGroup("Autostart");
74 AUTOSTART = cfg.readNumEntry("autostart",1);
75 if (AUTOSTART) {
76 QCopEnvelope e("QPE/System", "autoStart(QString,QString)");
77 e << QString("add");
78 e << QString("today");
79 } else {
80 QCopEnvelope e("QPE/System", "autoStart(QString,QString)");
81 e << QString("remove");
82 e << QString("today");
83 }
84}
85
68void Today::draw() { 86void Today::draw() {
69 init(); 87 init();
70 getDates(); 88 getDates();
71 getMail(); 89 getMail();
72 getTodo(); 90 getTodo();
73 // how often refresh 91 // how often refresh
74 QTimer::singleShot( 5*1000, this, SLOT(draw()) ); 92 QTimer::singleShot( 5*1000, this, SLOT(draw()) );
75} 93}
76 94
77void Today::init() { 95void Today::init() {
78 QDate date = QDate::currentDate(); 96 QDate date = QDate::currentDate();
79 QString time = (date.toString()); 97 QString time = (tr( date.toString() ), white);
80 98
81 TextLabel1->setText("<qt><font color=white>" +time + "<font></qt>"); 99 TextLabel1->setText(time);
82 db = new DateBookDB; 100 db = new DateBookDB;
83 101
84 // read config 102 // read config
85 Config cfg("today"); 103 Config cfg("today");
86 cfg.setGroup("BaseConfig"); 104 cfg.setGroup("BaseConfig");
87 105
88 // how many lines should be showed in the task section 106 // how many lines should be showed in the task section
89 MAX_LINES_TASK = cfg.readNumEntry("maxlinestask",5); 107 MAX_LINES_TASK = cfg.readNumEntry("maxlinestask",5);
90 // after how many chars should the be cut off on tasks and notes 108 // after how many chars should the be cut off on tasks and notes
91 MAX_CHAR_CLIP = cfg.readNumEntry("maxcharclip",30); 109 MAX_CHAR_CLIP = cfg.readNumEntry("maxcharclip",30);
92 // how many lines should be showed in the datebook section 110 // how many lines should be showed in the datebook section
93 MAX_LINES_MEET = cfg.readNumEntry("maxlinesmeet",5); 111 MAX_LINES_MEET = cfg.readNumEntry("maxlinesmeet",5);
@@ -114,42 +132,47 @@ void Today::startConfig() {
114 conf->SpinBox1->setValue(MAX_LINES_MEET); 132 conf->SpinBox1->setValue(MAX_LINES_MEET);
115 // location show box 133 // location show box
116 conf->CheckBox1->setChecked(SHOW_LOCATION); 134 conf->CheckBox1->setChecked(SHOW_LOCATION);
117 // notes show box 135 // notes show box
118 conf->CheckBox2->setChecked(SHOW_NOTES); 136 conf->CheckBox2->setChecked(SHOW_NOTES);
119 // task lines 137 // task lines
120 conf->SpinBox2->setValue(MAX_LINES_TASK); 138 conf->SpinBox2->setValue(MAX_LINES_TASK);
121 // clip when? 139 // clip when?
122 conf->SpinBox7->setValue(MAX_CHAR_CLIP); 140 conf->SpinBox7->setValue(MAX_CHAR_CLIP);
123 // only later 141 // only later
124 conf->CheckBox3->setChecked(ONLY_LATER); 142 conf->CheckBox3->setChecked(ONLY_LATER);
125 143
144 conf->CheckBoxAuto->setChecked(AUTOSTART);
145
126 conf->exec(); 146 conf->exec();
127 147
128 int maxlinestask = conf->SpinBox2->value(); 148 int maxlinestask = conf->SpinBox2->value();
129 int maxmeet = conf->SpinBox1->value(); 149 int maxmeet = conf->SpinBox1->value();
130 int location = conf->CheckBox1->isChecked(); 150 int location = conf->CheckBox1->isChecked();
131 int notes = conf->CheckBox2->isChecked(); 151 int notes = conf->CheckBox2->isChecked();
132 int maxcharclip = conf->SpinBox7->value(); 152 int maxcharclip = conf->SpinBox7->value();
133 int onlylater = conf->CheckBox3->isChecked(); 153 int onlylater = conf->CheckBox3->isChecked();
134 154 int autostart =conf->CheckBoxAuto->isChecked();
155
135 cfg.writeEntry("maxlinestask",maxlinestask); 156 cfg.writeEntry("maxlinestask",maxlinestask);
136 cfg.writeEntry("maxcharclip", maxcharclip); 157 cfg.writeEntry("maxcharclip", maxcharclip);
137 cfg.writeEntry("maxlinesmeet",maxmeet); 158 cfg.writeEntry("maxlinesmeet",maxmeet);
138 cfg.writeEntry("showlocation",location); 159 cfg.writeEntry("showlocation",location);
139 cfg.writeEntry("shownotes", notes); 160 cfg.writeEntry("shownotes", notes);
140 cfg.writeEntry("onlylater", onlylater); 161 cfg.writeEntry("onlylater", onlylater);
162 cfg.setGroup("Autostart");
163 cfg.writeEntry("autostart", autostart);
141 // sync it to "disk" 164 // sync it to "disk"
142 cfg.write(); 165 cfg.write();
143 166 autoStart();
144 draw(); 167 draw();
145} 168}
146 169
147 170
148/* 171/*
149 * Get all events that are in the datebook xml file for today 172 * Get all events that are in the datebook xml file for today
150 */ 173 */
151void Today::getDates() { 174void Today::getDates() {
152 QDate date = QDate::currentDate(); 175 QDate date = QDate::currentDate();
153 QTime time = QTime::currentTime(); 176 QTime time = QTime::currentTime();
154 QValueList<EffectiveEvent> list = db->getEffectiveEvents(date, date); 177 QValueList<EffectiveEvent> list = db->getEffectiveEvents(date, date);
155 178
@@ -215,25 +238,25 @@ void Today::getDates() {
215 // end time of event 238 // end time of event
216 + "<b> - </b>" + TimeString::timeString(QTime((*it).event().end().time()) ); 239 + "<b> - </b>" + TimeString::timeString(QTime((*it).event().end().time()) );
217 } 240 }
218 msg += "<BR>"; 241 msg += "<BR>";
219 // include possible note or not 242 // include possible note or not
220 if (SHOW_NOTES == 1) { 243 if (SHOW_NOTES == 1) {
221 msg += " <i>note</i>:" +((*it).notes()).mid(0, MAX_CHAR_CLIP) + "<br>"; 244 msg += " <i>note</i>:" +((*it).notes()).mid(0, MAX_CHAR_CLIP) + "<br>";
222 } 245 }
223 } 246 }
224 } 247 }
225 } 248 }
226 if (msg.isEmpty()) { 249 if (msg.isEmpty()) {
227 msg = "No more appointments today"; 250 msg = tr("No more appointments today");
228 } 251 }
229 DatesField->setText(msg); 252 DatesField->setText(msg);
230 } 253 }
231} 254}
232 255
233/* 256/*
234 * Parse in the todolist.xml 257 * Parse in the todolist.xml
235 */ 258 */
236QList<TodoItem> Today::loadTodo(const char *filename) { 259QList<TodoItem> Today::loadTodo(const char *filename) {
237 DOM *todo; 260 DOM *todo;
238 ELE *tasks; 261 ELE *tasks;
239 ELE **tasklist; 262 ELE **tasklist;
@@ -331,34 +354,34 @@ void Today::getTodo() {
331 for( item = todolist.first(); item; item = todolist.next()) { 354 for( item = todolist.first(); item; item = todolist.next()) {
332 if (!(item->getCompleted() == 1) ) { 355 if (!(item->getCompleted() == 1) ) {
333 count++; 356 count++;
334 if (count <= MAX_LINES_TASK) { 357 if (count <= MAX_LINES_TASK) {
335 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>")));
336 } 359 }
337 } 360 }
338 } 361 }
339 } 362 }
340 363
341 if (count > 0) { 364 if (count > 0) {
342 if( count == 1 ) { 365 if( count == 1 ) {
343 output = QString("There is <b> 1</b> active task: <br>" ); 366 output = tr("There is <b> 1</b> active task: <br>" );
344 } else { 367 } else {
345 output = QString("There are <b> %1</b> active tasks: <br>").arg(count); 368 output = tr("There are <b> %1</b> active tasks: <br>").arg(count);
346 } 369 }
347 output += tmpout; 370 output += tmpout;
348 } else { 371 } else {
349 output = ("No active tasks"); 372 output = tr("No active tasks");
350 } 373 }
351 374
352 TodoField->setText(output); 375 TodoField->setText(tr(output));
353} 376}
354 377
355/* 378/*
356 * launches datebook 379 * launches datebook
357 */ 380 */
358void Today::startDatebook() { 381void Today::startDatebook() {
359 QCopEnvelope e("QPE/System", "execute(QString)"); 382 QCopEnvelope e("QPE/System", "execute(QString)");
360 e << QString("datebook"); 383 e << QString("datebook");
361} 384}
362 385
363/* 386/*
364 * launches todolist 387 * launches todolist