-rw-r--r-- | core/pim/today/today.cpp | 41 |
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 | ||
46 | int MAX_LINES_TASK; | 46 | int MAX_LINES_TASK; |
47 | int MAX_CHAR_CLIP; | 47 | int MAX_CHAR_CLIP; |
48 | int MAX_LINES_MEET; | 48 | int MAX_LINES_MEET; |
49 | int SHOW_LOCATION; | 49 | int SHOW_LOCATION; |
50 | int SHOW_NOTES; | 50 | int SHOW_NOTES; |
51 | // show only later dates | 51 | // show only later dates |
52 | int ONLY_LATER; | 52 | int ONLY_LATER; |
53 | int 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 | */ |
57 | Today::Today( QWidget* parent, const char* name, WFlags fl ) | 58 | Today::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 | ||
71 | void 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 | |||
68 | void Today::draw() { | 86 | void 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 | ||
77 | void Today::init() { | 95 | void 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 | */ |
151 | void Today::getDates() { | 174 | void 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 | */ |
236 | QList<TodoItem> Today::loadTodo(const char *filename) { | 259 | QList<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 | */ |
358 | void Today::startDatebook() { | 381 | void 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 |