summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--examples/simple-pim/simple.cpp33
-rw-r--r--examples/simple-pim/simple.h4
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() {
228void MainWindow::slotDesktopReceive(const QCString& cmd, const QByteArray& data ) { 228void 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 */
266void MainWindow::slotLoadForDay(int y, int m, int d) { 266void 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
271void MainWindow::slotLoadForDay(const QDate& date) { 271void 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 */
280void MainWindow::slotShow() { 280void 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 */
290void MainWindow::slotShowRecord( const Opie::OPimRecord& rec) { 290void 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
311void MainWindow::slotDate() { 311void 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
386PIMListView::PIMListView( QWidget* widget, const char* name, WFlags fl ) 386PIMListView::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
392PIMListView::~PIMListView() { 392PIMListView::~PIMListView() {
393 393
394} 394}
395 395
396void PIMListView::set( Opie::OPimTodoAccess::List list ) { 396void 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
411void PIMListView::set( const Opie::OEffectiveEvent::ValueList& lst ) { 411void 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
423void PIMListView::showCurrentRecord() { 423void 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
439QString PIMListView::makeString( const Opie::OEffectiveEvent& ev ) { 439QString 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 */
41class MainWindow : public QMainWindow { 41class MainWindow : public QMainWindow {
42 Q_OBJECT 42 Q_OBJECT
43public: 43public:
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
48public slots: 48public slots:
49 void setDocument( const QString& ); 49 void setDocument( const QString& );
50private slots: 50private 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
59private: 59private:
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 */
80class PIMListView : public QListView { 80class PIMListView : public QListView {
81 Q_OBJECT 81 Q_OBJECT
82public: 82public:
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
91signals: 91signals:
92 void showRecord( const Opie::OPimRecord& ); 92 void showRecord( const Opie::OPimRecord& );
93 93
94private: 94private:
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