-rw-r--r-- | examples/simple-pim/simple.cpp | 33 | ||||
-rw-r--r-- | examples/simple-pim/simple.h | 4 |
2 files changed, 21 insertions, 16 deletions
diff --git a/examples/simple-pim/simple.cpp b/examples/simple-pim/simple.cpp index efd5070..d3ce2cc 100644 --- a/examples/simple-pim/simple.cpp +++ b/examples/simple-pim/simple.cpp | |||
@@ -228,97 +228,97 @@ void MainWindow::slotLoad() { | |||
228 | void MainWindow::slotDesktopReceive(const QCString& cmd, const QByteArray& data ) { | 228 | void MainWindow::slotDesktopReceive(const QCString& cmd, const QByteArray& data ) { |
229 | /* the bytearray was filled with the QDataStream now | 229 | /* the bytearray was filled with the QDataStream now |
230 | * we open it read only to get the value(s) | 230 | * we open it read only to get the value(s) |
231 | */ | 231 | */ |
232 | QDataStream stream(data, IO_ReadOnly ); | 232 | QDataStream stream(data, IO_ReadOnly ); |
233 | /* | 233 | /* |
234 | * we're only interested in the flushDone | 234 | * we're only interested in the flushDone |
235 | */ | 235 | */ |
236 | if ( cmd == "flushDone(QString)" ) { | 236 | if ( cmd == "flushDone(QString)" ) { |
237 | QString appname; | 237 | QString appname; |
238 | stream >> appname; // get the first argument out of stream | 238 | stream >> appname; // get the first argument out of stream |
239 | if (appname == QString::fromLatin1("datebook") || | 239 | if (appname == QString::fromLatin1("datebook") || |
240 | appname == QString::fromLatin1("todolist") ) | 240 | appname == QString::fromLatin1("todolist") ) |
241 | m_synced++; | 241 | m_synced++; |
242 | } | 242 | } |
243 | 243 | ||
244 | /* | 244 | /* |
245 | * If we synced both we can go ahead | 245 | * If we synced both we can go ahead |
246 | * In future this is not needed anymore when we finally | 246 | * In future this is not needed anymore when we finally |
247 | * implemented X-Ref and other PIM features | 247 | * implemented X-Ref and other PIM features |
248 | */ | 248 | */ |
249 | if (m_synced >= 2 ) { | 249 | if (m_synced >= 2 ) { |
250 | delete m_loading; | 250 | delete m_loading; |
251 | delete m_desktopChannel; | 251 | delete m_desktopChannel; |
252 | /* now we finally can start doing the actual loading */ | 252 | /* now we finally can start doing the actual loading */ |
253 | m_tb.load(); | 253 | m_tb.load(); |
254 | m_db.load(); | 254 | m_db.load(); |
255 | { | 255 | { |
256 | /* tell the applications to reload */ | 256 | /* tell the applications to reload */ |
257 | QCopEnvelope("QPE/Application/todolist", "reload()"); | 257 | QCopEnvelope("QPE/Application/todolist", "reload()"); |
258 | QCopEnvelope("QPE/Application/datebook", "reload()"); | 258 | QCopEnvelope("QPE/Application/datebook", "reload()"); |
259 | } | 259 | } |
260 | slotLoadForDay( QDate::currentDate() ); | 260 | slotLoadForDay( QDate::currentDate() ); |
261 | } | 261 | } |
262 | 262 | ||
263 | } | 263 | } |
264 | 264 | ||
265 | /* overloaded member for shortcoming of libqpe */ | 265 | /* overloaded member for shortcoming of libqpe */ |
266 | void MainWindow::slotLoadForDay(int y, int m, int d) { | 266 | void MainWindow::slotLoadForDay(int y, int m, int d) { |
267 | /* year,month, day */ | 267 | /* year,month, day */ |
268 | slotLoadForDay( QDate(y, m, d ) ); | 268 | slotLoadForDay( QDate(y, m, d ) ); |
269 | } | 269 | } |
270 | 270 | ||
271 | void MainWindow::slotLoadForDay(const QDate& date) { | 271 | void MainWindow::slotLoadForDay(const QDate& date) { |
272 | 272 | ||
273 | 273 | ||
274 | /* all todos for today including the ones without dueDate */ | 274 | /* all todos for today including the ones without dueDate */ |
275 | m_todoView->set( m_tb.effectiveToDos(date, date ) ); | 275 | m_todoView->set( m_tb.effectiveToDos(date, date ) ); |
276 | m_dateView->set( m_db.effectiveEvents( date, date ) ); | 276 | m_dateView->set( m_db.occurrences( date, date ) ); |
277 | } | 277 | } |
278 | 278 | ||
279 | /* we want to show the current record */ | 279 | /* we want to show the current record */ |
280 | void MainWindow::slotShow() { | 280 | void MainWindow::slotShow() { |
281 | /* we only added PIMListViews so we can safely cast */ | 281 | /* we only added PIMListViews so we can safely cast */ |
282 | PIMListView *view = static_cast<PIMListView*>(m_tab->currentWidget() ); | 282 | PIMListView *view = static_cast<PIMListView*>(m_tab->currentWidget() ); |
283 | 283 | ||
284 | /* ask the view to send a signal */ | 284 | /* ask the view to send a signal */ |
285 | view->showCurrentRecord(); | 285 | view->showCurrentRecord(); |
286 | 286 | ||
287 | } | 287 | } |
288 | 288 | ||
289 | /* as answer this slot will be called */ | 289 | /* as answer this slot will be called */ |
290 | void MainWindow::slotShowRecord( const Opie::OPimRecord& rec) { | 290 | void MainWindow::slotShowRecord( const Opie::OPimRecord& rec) { |
291 | /* got a parent but still is a toplevel MODAL dialog */ | 291 | /* got a parent but still is a toplevel MODAL dialog */ |
292 | QDialog* dia = new QDialog(this,"dialog",TRUE ); | 292 | QDialog* dia = new QDialog(this,"dialog",TRUE ); |
293 | QVBoxLayout *box = new QVBoxLayout( dia ); | 293 | QVBoxLayout *box = new QVBoxLayout( dia ); |
294 | dia->setCaption( tr("View Record") ); | 294 | dia->setCaption( tr("View Record") ); |
295 | 295 | ||
296 | 296 | ||
297 | QTextView *view = new QTextView(dia ); | 297 | QTextView *view = new QTextView(dia ); |
298 | view->setText( rec.toRichText() ); | 298 | view->setText( rec.toRichText() ); |
299 | box->addWidget( view ); | 299 | box->addWidget( view ); |
300 | /* | 300 | /* |
301 | * execute via QPEApplication | 301 | * execute via QPEApplication |
302 | * this allows QPEApplication to make a sane decision | 302 | * this allows QPEApplication to make a sane decision |
303 | * on the size | 303 | * on the size |
304 | */ | 304 | */ |
305 | dia->showMaximized(); | 305 | dia->showMaximized(); |
306 | QPEApplication::execDialog( dia ); | 306 | QPEApplication::execDialog( dia ); |
307 | delete dia; | 307 | delete dia; |
308 | } | 308 | } |
309 | 309 | ||
310 | 310 | ||
311 | void MainWindow::slotDate() { | 311 | void MainWindow::slotDate() { |
312 | /* | 312 | /* |
313 | * called by the action we will show a Popup | 313 | * called by the action we will show a Popup |
314 | * at the current mouse position with a DateChooser | 314 | * at the current mouse position with a DateChooser |
315 | * to select the day | 315 | * to select the day |
316 | */ | 316 | */ |
317 | odebug << "slot Date" << oendl; | 317 | odebug << "slot Date" << oendl; |
318 | QPopupMenu *menu = new QPopupMenu(); | 318 | QPopupMenu *menu = new QPopupMenu(); |
319 | /* A Month to select a date from TRUE for auto close */ | 319 | /* A Month to select a date from TRUE for auto close */ |
320 | DateBookMonth *month = new DateBookMonth(menu, 0, true ); | 320 | DateBookMonth *month = new DateBookMonth(menu, 0, true ); |
321 | connect(month, SIGNAL(dateClicked(int,int,int) ), | 321 | connect(month, SIGNAL(dateClicked(int,int,int) ), |
322 | this, SLOT(slotLoadForDay(int,int,int) ) ); | 322 | this, SLOT(slotLoadForDay(int,int,int) ) ); |
323 | 323 | ||
324 | menu->insertItem( month ); | 324 | menu->insertItem( month ); |
@@ -363,94 +363,99 @@ namespace { | |||
363 | int rtti()const; | 363 | int rtti()const; |
364 | Opie::OPimRecord* record()const; | 364 | Opie::OPimRecord* record()const; |
365 | 365 | ||
366 | private: | 366 | private: |
367 | Opie::OPimRecord* m_record; | 367 | Opie::OPimRecord* m_record; |
368 | }; | 368 | }; |
369 | 369 | ||
370 | PIMListViewItem::PIMListViewItem( QListView *p, Opie::OPimRecord* rec ) | 370 | PIMListViewItem::PIMListViewItem( QListView *p, Opie::OPimRecord* rec ) |
371 | : QListViewItem(p), m_record( rec ) { | 371 | : QListViewItem(p), m_record( rec ) { |
372 | } | 372 | } |
373 | 373 | ||
374 | PIMListViewItem::~PIMListViewItem() { | 374 | PIMListViewItem::~PIMListViewItem() { |
375 | /* we've the onwership so we need to delete it */ | 375 | /* we've the onwership so we need to delete it */ |
376 | delete m_record; | 376 | delete m_record; |
377 | } | 377 | } |
378 | 378 | ||
379 | Opie::OPimRecord* PIMListViewItem::record()const { | 379 | Opie::OPimRecord* PIMListViewItem::record()const { |
380 | return m_record; | 380 | return m_record; |
381 | } | 381 | } |
382 | 382 | ||
383 | } | 383 | } |
384 | 384 | ||
385 | 385 | ||
386 | PIMListView::PIMListView( QWidget* widget, const char* name, WFlags fl ) | 386 | PIMListView::PIMListView( QWidget* widget, const char* name, WFlags fl ) |
387 | : QListView(widget, name, fl ) | 387 | : QListView(widget, name, fl ) |
388 | { | 388 | { |
389 | addColumn("Summary"); | 389 | addColumn("Summary"); |
390 | } | 390 | } |
391 | 391 | ||
392 | PIMListView::~PIMListView() { | 392 | PIMListView::~PIMListView() { |
393 | 393 | ||
394 | } | 394 | } |
395 | 395 | ||
396 | void PIMListView::set( Opie::OPimTodoAccess::List list ) { | 396 | void PIMListView::set( Opie::OPimTodoAccess::List list ) { |
397 | /* clear first and then add new items */ | 397 | /* clear first and then add new items */ |
398 | clear(); | 398 | clear(); |
399 | 399 | ||
400 | Opie::OPimTodoAccess::List::Iterator it; | 400 | Opie::OPimTodoAccess::List::Iterator it; |
401 | for (it = list.begin(); it != list.end(); ++it ) { | 401 | for (it = list.begin(); it != list.end(); ++it ) { |
402 | /* | 402 | /* |
403 | * make a new item which automatically gets added to the listview | 403 | * make a new item which automatically gets added to the listview |
404 | * and call the copy c'tor to create a new OPimTodo | 404 | * and call the copy c'tor to create a new OPimTodo |
405 | */ | 405 | */ |
406 | PIMListViewItem *i = new PIMListViewItem(this, new Opie::OPimTodo( *it ) ); | 406 | PIMListViewItem *i = new PIMListViewItem(this, new Opie::OPimTodo( *it ) ); |
407 | i->setText(0, (*it).summary() ); | 407 | i->setText(0, (*it).summary() ); |
408 | } | 408 | } |
409 | } | 409 | } |
410 | 410 | ||
411 | void PIMListView::set( const Opie::OEffectiveEvent::ValueList& lst ) { | 411 | void PIMListView::set( const Opie::OPimOccurrence::List& lst ) { |
412 | /* clear first and then add items */ | 412 | /* clear first and then add items */ |
413 | clear(); | 413 | clear(); |
414 | 414 | ||
415 | Opie::OEffectiveEvent::ValueList::ConstIterator it; | 415 | Opie::OPimOccurrence::List::ConstIterator it; |
416 | for ( it = lst.begin(); it != lst.end(); ++it ) { | 416 | for ( it = lst.begin(); it != lst.end(); ++it ) { |
417 | PIMListViewItem *i = new PIMListViewItem(this, new Opie::OPimEvent( (*it).event() ) ); | 417 | PIMListViewItem *i = new PIMListViewItem(this, new Opie::OPimEvent( (*it).toEvent() ) ); |
418 | i->setText( 0, PIMListView::makeString( (*it) ) ); | 418 | i->setText( 0, PIMListView::makeString( (*it) ) ); |
419 | } | 419 | } |
420 | 420 | ||
421 | } | 421 | } |
422 | 422 | ||
423 | void PIMListView::showCurrentRecord() { | 423 | void PIMListView::showCurrentRecord() { |
424 | /* it could be possible that their is no currentItem */ | 424 | /* it could be possible that their is no currentItem */ |
425 | if (!currentItem() ) | 425 | if (!currentItem() ) |
426 | return; | 426 | return; |
427 | 427 | ||
428 | /* | 428 | /* |
429 | * we only add PIMListViewItems so it is save | 429 | * we only add PIMListViewItems so it is save |
430 | * to do this case. If this would not be the case | 430 | * to do this case. If this would not be the case |
431 | * use rtti() to check in a switch() case | 431 | * use rtti() to check in a switch() case |
432 | */ | 432 | */ |
433 | PIMListViewItem *item = static_cast<PIMListViewItem*>( currentItem() ); | 433 | PIMListViewItem *item = static_cast<PIMListViewItem*>( currentItem() ); |
434 | 434 | ||
435 | /* finally you see how to emit a signal */ | 435 | /* finally you see how to emit a signal */ |
436 | emit showRecord( (*item->record() ) ); | 436 | emit showRecord( (*item->record() ) ); |
437 | } | 437 | } |
438 | 438 | ||
439 | QString PIMListView::makeString( const Opie::OEffectiveEvent& ev ) { | 439 | QString PIMListView::makeString( const Opie::OPimOccurrence& _ev ) { |
440 | QString str; | 440 | QString str; |
441 | str += ev.description(); | 441 | str += _ev.summary(); |
442 | if ( !ev.event().isAllDay() ) { | 442 | |
443 | Opie::OPimEvent ev = _ev.toEvent(); | ||
444 | if ( !ev.isAllDay() ) { | ||
445 | #if 0 | ||
443 | if ( ev.startDate() != ev.endDate() ) { | 446 | if ( ev.startDate() != ev.endDate() ) { |
444 | str += tr("Start ") + TimeString::timeString( ev.event().startDateTime().time() ); | 447 | str += tr("Start ") + TimeString::timeString( ev.startDateTime().time() ); |
445 | str += " - " + TimeString::longDateString( ev.startDate() ); | 448 | str += " - " + TimeString::longDateString( ev.startDateTime().date() ); |
446 | str += tr("End ") + TimeString::timeString( ev.event().endDateTime().time() ); | 449 | str += tr("End ") + TimeString::timeString( ev.endDateTime().time() ); |
447 | str += " - " + TimeString::longDateString( ev.endDate() ); | 450 | str += " - " + TimeString::longDateString( ev.endDateTime().date() ); |
448 | }else{ | 451 | }else |
449 | str += tr("Time ") + TimeString::timeString( ev.startTime() ); | 452 | #endif |
450 | str += " - " + TimeString::timeString( ev.endTime() ); | 453 | { |
454 | str += tr("Time ") + TimeString::timeString( _ev.startTime() ); | ||
455 | str += " - " + TimeString::timeString( _ev.endTime() ); | ||
451 | } | 456 | } |
452 | }else | 457 | }else |
453 | str += tr(" This is an All-Day Event"); | 458 | str += tr(" This is an All-Day Event"); |
454 | 459 | ||
455 | return str; | 460 | return str; |
456 | } | 461 | } |
diff --git a/examples/simple-pim/simple.h b/examples/simple-pim/simple.h index 2a6e8ce..a537dde 100644 --- a/examples/simple-pim/simple.h +++ b/examples/simple-pim/simple.h | |||
@@ -40,60 +40,60 @@ class OTabWidget; | |||
40 | */ | 40 | */ |
41 | class MainWindow : public QMainWindow { | 41 | class MainWindow : public QMainWindow { |
42 | Q_OBJECT | 42 | Q_OBJECT |
43 | public: | 43 | public: |
44 | static QString appName() { return QString::fromLatin1("simple-pim"); } | 44 | static QString appName() { return QString::fromLatin1("simple-pim"); } |
45 | MainWindow( QWidget* parent, const char* name, WFlags fl ); | 45 | MainWindow( QWidget* parent, const char* name, WFlags fl ); |
46 | ~MainWindow(); | 46 | ~MainWindow(); |
47 | 47 | ||
48 | public slots: | 48 | public slots: |
49 | void setDocument( const QString& ); | 49 | void setDocument( const QString& ); |
50 | private slots: | 50 | private slots: |
51 | void slotDesktopReceive( const QCString&, const QByteArray& ); | 51 | void slotDesktopReceive( const QCString&, const QByteArray& ); |
52 | void slotLoad(); | 52 | void slotLoad(); |
53 | void slotLoadForDay(int, int, int ); | 53 | void slotLoadForDay(int, int, int ); |
54 | void slotLoadForDay(const QDate&); | 54 | void slotLoadForDay(const QDate&); |
55 | void slotShow(); | 55 | void slotShow(); |
56 | void slotDate(); | 56 | void slotDate(); |
57 | void slotShowRecord( const Opie::OPimRecord& ); | 57 | void slotShowRecord( const Opie::OPimRecord& ); |
58 | 58 | ||
59 | private: | 59 | private: |
60 | void initUI(); | 60 | void initUI(); |
61 | QAction *m_fire; | 61 | QAction *m_fire; |
62 | QAction *m_dateAction; | 62 | QAction *m_dateAction; |
63 | Opie::Ui::OTabWidget* m_tab; | 63 | Opie::Ui::OTabWidget* m_tab; |
64 | 64 | ||
65 | Opie::OPimTodoAccess m_tb; | 65 | Opie::OPimTodoAccess m_tb; |
66 | Opie::ODateBookAccess m_db; | 66 | Opie::ODateBookAccess m_db; |
67 | PIMListView *m_todoView; | 67 | PIMListView *m_todoView; |
68 | PIMListView *m_dateView; | 68 | PIMListView *m_dateView; |
69 | 69 | ||
70 | int m_synced; // a counter for synced objects.. | 70 | int m_synced; // a counter for synced objects.. |
71 | QCopChannel *m_desktopChannel; | 71 | QCopChannel *m_desktopChannel; |
72 | Opie::Ui::OWait *m_loading; | 72 | Opie::Ui::OWait *m_loading; |
73 | }; | 73 | }; |
74 | 74 | ||
75 | /* | 75 | /* |
76 | * Instead of the simple QWidgets we will design | 76 | * Instead of the simple QWidgets we will design |
77 | * a new widget based on a QListView | 77 | * a new widget based on a QListView |
78 | * it should show either Todos or EffectiveEvents | 78 | * it should show either Todos or EffectiveEvents |
79 | */ | 79 | */ |
80 | class PIMListView : public QListView { | 80 | class PIMListView : public QListView { |
81 | Q_OBJECT | 81 | Q_OBJECT |
82 | public: | 82 | public: |
83 | PIMListView( QWidget* parent, const char* name, WFlags fl= 0 ); | 83 | PIMListView( QWidget* parent, const char* name, WFlags fl= 0 ); |
84 | ~PIMListView(); | 84 | ~PIMListView(); |
85 | 85 | ||
86 | 86 | ||
87 | void set( Opie::OPimTodoAccess::List ); | 87 | void set( Opie::OPimTodoAccess::List ); |
88 | void set( const Opie::OEffectiveEvent::ValueList& ); | 88 | void set( const Opie::OPimOccurrence::List& ); |
89 | void showCurrentRecord(); | 89 | void showCurrentRecord(); |
90 | 90 | ||
91 | signals: | 91 | signals: |
92 | void showRecord( const Opie::OPimRecord& ); | 92 | void showRecord( const Opie::OPimRecord& ); |
93 | 93 | ||
94 | private: | 94 | private: |
95 | static QString makeString( const Opie::OEffectiveEvent& ev ); | 95 | static QString makeString( const Opie::OPimOccurrence& ev ); |
96 | 96 | ||
97 | }; | 97 | }; |
98 | 98 | ||
99 | #endif | 99 | #endif |