summaryrefslogtreecommitdiff
path: root/core
Unidiff
Diffstat (limited to 'core') (more/less context) (show whitespace changes)
-rw-r--r--core/pim/today/today.cpp60
-rw-r--r--core/pim/today/today.h14
2 files changed, 61 insertions, 13 deletions
diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp
index d10082f..1cdc6b4 100644
--- a/core/pim/today/today.cpp
+++ b/core/pim/today/today.cpp
@@ -65,15 +65,14 @@ Today::Today( QWidget* parent, const char* name, WFlags fl )
65 : TodayBase( parent, name, fl ) { 65 : TodayBase( parent, name, fl ) {
66 QObject::connect( (QObject*)PushButton1, SIGNAL( clicked() ), this, SLOT(startConfig() ) ); 66 QObject::connect( (QObject*)PushButton1, SIGNAL( clicked() ), this, SLOT(startConfig() ) );
67 QObject::connect( (QObject*)TodoButton, SIGNAL( clicked() ), this, SLOT(startTodo() ) ); 67 QObject::connect( (QObject*)TodoButton, SIGNAL( clicked() ), this, SLOT(startTodo() ) );
68 QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startDatebook() ) ); 68 QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startDatebook() ) );
69 QObject::connect( (QObject*)MailButton, SIGNAL( clicked() ), this, SLOT(startMail() ) ); 69 QObject::connect( (QObject*)MailButton, SIGNAL( clicked() ), this, SLOT(startMail() ) );
70 70
71
72 autoStart();
73 draw(); 71 draw();
72 autoStart();
74} 73}
75 74
76void Today::autoStart() { 75void Today::autoStart() {
77 Config cfg("today"); 76 Config cfg("today");
78 cfg.setGroup("Autostart"); 77 cfg.setGroup("Autostart");
79 AUTOSTART = cfg.readNumEntry("autostart",1); 78 AUTOSTART = cfg.readNumEntry("autostart",1);
@@ -91,13 +90,13 @@ void Today::autoStart() {
91void Today::draw() { 90void Today::draw() {
92 init(); 91 init();
93 getDates(); 92 getDates();
94 getMail(); 93 getMail();
95 getTodo(); 94 getTodo();
96 // how often refresh 95 // how often refresh
97 QTimer::singleShot( 30*1000, this, SLOT(draw()) ); 96 QTimer::singleShot( 10*1000, this, SLOT(draw() ) );
98} 97}
99 98
100 99
101/* 100/*
102 * Check if the todolist.xml was modified (if there are new entries. 101 * Check if the todolist.xml was modified (if there are new entries.
103 * Returns true if it was modified. 102 * Returns true if it was modified.
@@ -193,60 +192,72 @@ void Today::startConfig() {
193 cfg.writeEntry("shownotes", notes); 192 cfg.writeEntry("shownotes", notes);
194 cfg.writeEntry("onlylater", onlylater); 193 cfg.writeEntry("onlylater", onlylater);
195 cfg.setGroup("Autostart"); 194 cfg.setGroup("Autostart");
196 cfg.writeEntry("autostart", autostart); 195 cfg.writeEntry("autostart", autostart);
197 // sync it to "disk" 196 // sync it to "disk"
198 cfg.write(); 197 cfg.write();
199 autoStart();
200 draw(); 198 draw();
199 autoStart();
201} 200}
202 201
203 202
204/* 203/*
205 * Get all events that are in the datebook xml file for today 204 * Get all events that are in the datebook xml file for today
206 */ 205 */
207void Today::getDates() { 206void Today::getDates() {
208 QDate date = QDate::currentDate(); 207 QDate date = QDate::currentDate();
209 QWidget* AllDateBookEvents = new QWidget( ); 208 QWidget* AllDateBookEvents = new QWidget( );
210 QVBoxLayout* layoutDates = new QVBoxLayout(AllDateBookEvents); 209 QVBoxLayout* layoutDates = new QVBoxLayout(AllDateBookEvents);
211 //QTime time = QTime::currentTime();
212 210
213 QValueList<EffectiveEvent> list = db->getEffectiveEvents(date, date); 211 QValueList<EffectiveEvent> list = db->getEffectiveEvents(date, date);
214 212
215 Config config( "qpe" ); 213 Config config( "qpe" );
216 // if 24 h format 214 // if 24 h format
217 //bool ampm = config.readBoolEntry( "AMPM", TRUE ); 215 //bool ampm = config.readBoolEntry( "AMPM", TRUE );
218 216
219 int count=0; 217 int count=0;
220 218
221 if ( list.count() > 0 ) { 219 if ( list.count() > 0 ) {
222 QString msg;
223 220
224 for ( QValueList<EffectiveEvent>::ConstIterator it=list.begin(); 221 for ( QValueList<EffectiveEvent>::ConstIterator it=list.begin();
225 it!=list.end(); ++it ) { 222 it!=list.end(); ++it ) {
226 223
227 count++; 224 count++;
228 225
229 if ( count <= MAX_LINES_MEET ) { 226 if ( count <= MAX_LINES_MEET ) {
230 227
228 QTime time = QTime::currentTime();
231 229
230 if (!ONLY_LATER) {
232 DateBookEvent *l=new DateBookEvent(*it, AllDateBookEvents); 231 DateBookEvent *l=new DateBookEvent(*it, AllDateBookEvents);
233 layoutDates->addWidget(l); 232 layoutDates->addWidget(l);
234 connect (l, SIGNAL(editEvent(const Event &)), 233 connect (l, SIGNAL(editEvent(const Event &)),
235 this, SIGNAL(editEvent(const Event &))); 234 this, SIGNAL(editEvent(const Event &)));
235 } else if ((time.toString() <= TimeString::dateString((*it).event().end())) ) {
236 // show only later appointments
237 DateBookEventLater *l=new DateBookEventLater(*it, AllDateBookEvents);
238 layoutDates->addWidget(l);
239 connect (l, SIGNAL(editEvent(const Event &)),
240 this, SIGNAL(editEvent(const Event &)));
241 } else {
242 QLabel* noMoreEvents = new QLabel(AllDateBookEvents);
243 noMoreEvents->setText("No more appointments today");
244 layoutDates->addWidget(noMoreEvents);
236 } 245 }
237
238 } 246 }
247 }
248 } else {
249 QLabel* noEvents = new QLabel(AllDateBookEvents);
250 noEvents->setText("No appointments today");
251 layoutDates->addWidget(noEvents);
252 }
253
239 layoutDates->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding)); 254 layoutDates->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding));
240 sv1->addChild(AllDateBookEvents); 255 sv1->addChild(AllDateBookEvents);
241 256
242 //if (msg.isEmpty()) { 257
243 // msg = tr("No more appointments today");
244 //}
245 //DatesField->setText(msg);
246 }
247} 258}
248 259
249/* 260/*
250 * Parse in the todolist.xml 261 * Parse in the todolist.xml
251 */ 262 */
252QList<TodoItem> Today::loadTodo(const char *filename) { 263QList<TodoItem> Today::loadTodo(const char *filename) {
@@ -436,13 +447,30 @@ DateBookEvent::DateBookEvent(const EffectiveEvent &ev,
436 + "<b> - </b>" + TimeString::timeString(QTime((ev).event().end().time()) ); 447 + "<b> - </b>" + TimeString::timeString(QTime((ev).event().end().time()) );
437 } 448 }
438 // include possible note or not 449 // include possible note or not
439 if (SHOW_NOTES == 1) { 450 if (SHOW_NOTES == 1) {
440 msg += "<br> <i>note</i>:" +((ev).notes()).mid(0, MAX_CHAR_CLIP) + "<br>"; 451 msg += "<br> <i>note</i>:" +((ev).notes()).mid(0, MAX_CHAR_CLIP) + "<br>";
441 } 452 }
442 } else if ((time.toString() <= TimeString::dateString((ev).event().end())) ) { 453 }
454 setText(msg);
455 connect(this, SIGNAL(clicked()), this, SLOT(editMe()));
456 setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) );
457}
458
459
460DateBookEventLater::DateBookEventLater(const EffectiveEvent &ev,
461 QWidget* parent = 0,
462 const char* name = 0,
463 WFlags fl = 0) :
464 ClickableLabel(parent,name,fl), event(ev) {
465
466 QString msg;
467 QTime time = QTime::currentTime();
468
469 if ((time.toString() <= TimeString::dateString((ev).event().end())) ) {
470 // show only later appointments
443 msg += "<B>" + (ev).description() + "</B>"; 471 msg += "<B>" + (ev).description() + "</B>";
444 if ( (ev).event().hasAlarm() ) { 472 if ( (ev).event().hasAlarm() ) {
445 msg += " <b>[with alarm]</b>"; 473 msg += " <b>[with alarm]</b>";
446 } 474 }
447 // include location or not 475 // include location or not
448 if (SHOW_LOCATION == 1) { 476 if (SHOW_LOCATION == 1) {
@@ -461,17 +489,23 @@ DateBookEvent::DateBookEvent(const EffectiveEvent &ev,
461 // include possible note or not 489 // include possible note or not
462 if (SHOW_NOTES == 1) { 490 if (SHOW_NOTES == 1) {
463 msg += "<br> <i>note</i>:" +((ev).notes()).mid(0, MAX_CHAR_CLIP) + "<br>"; 491 msg += "<br> <i>note</i>:" +((ev).notes()).mid(0, MAX_CHAR_CLIP) + "<br>";
464 } 492 }
465 } 493 }
466 494
495 // if (msg.isEmpty()) {
496 // msg = tr("No more appointments today");
497 // }
467 setText(msg); 498 setText(msg);
468 connect(this, SIGNAL(clicked()), this, SLOT(editMe())); 499 connect(this, SIGNAL(clicked()), this, SLOT(editMe()));
469 setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) ); 500 setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) );
470} 501}
471 502
472void DateBookEvent::editMe() { 503void DateBookEvent::editMe() {
473 emit editEvent(event.event()); 504 emit editEvent(event.event());
474} 505}
475 506
507void DateBookEventLater::editMe() {
508 emit editEvent(event.event());
509}
476 510
477 511
diff --git a/core/pim/today/today.h b/core/pim/today/today.h
index 0a0837c..b3f0654 100644
--- a/core/pim/today/today.h
+++ b/core/pim/today/today.h
@@ -77,8 +77,22 @@ signals:
77private slots: 77private slots:
78 void editMe(); 78 void editMe();
79private: 79private:
80 const EffectiveEvent event; 80 const EffectiveEvent event;
81}; 81};
82 82
83class DateBookEventLater: public ClickableLabel {
84 Q_OBJECT
85public:
86 DateBookEventLater(const EffectiveEvent &ev,
87 QWidget* parent = 0, const char* name = 0,
88 WFlags fl = 0);
89signals:
90 void editEvent(const Event &e);
91private slots:
92 void editMe();
93private:
94 const EffectiveEvent event;
95};
96
83#endif // TODAY_H 97#endif // TODAY_H
84 98