-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() { void MainWindow::slotDesktopReceive(const QCString& cmd, const QByteArray& data ) { /* the bytearray was filled with the QDataStream now * we open it read only to get the value(s) */ QDataStream stream(data, IO_ReadOnly ); /* * we're only interested in the flushDone */ if ( cmd == "flushDone(QString)" ) { QString appname; stream >> appname; // get the first argument out of stream if (appname == QString::fromLatin1("datebook") || appname == QString::fromLatin1("todolist") ) m_synced++; } /* * If we synced both we can go ahead * In future this is not needed anymore when we finally * implemented X-Ref and other PIM features */ if (m_synced >= 2 ) { delete m_loading; delete m_desktopChannel; /* now we finally can start doing the actual loading */ m_tb.load(); m_db.load(); { /* tell the applications to reload */ QCopEnvelope("QPE/Application/todolist", "reload()"); QCopEnvelope("QPE/Application/datebook", "reload()"); } slotLoadForDay( QDate::currentDate() ); } } /* overloaded member for shortcoming of libqpe */ void MainWindow::slotLoadForDay(int y, int m, int d) { /* year,month, day */ slotLoadForDay( QDate(y, m, d ) ); } void MainWindow::slotLoadForDay(const QDate& date) { /* all todos for today including the ones without dueDate */ m_todoView->set( m_tb.effectiveToDos(date, date ) ); - m_dateView->set( m_db.effectiveEvents( date, date ) ); + m_dateView->set( m_db.occurrences( date, date ) ); } /* we want to show the current record */ void MainWindow::slotShow() { /* we only added PIMListViews so we can safely cast */ PIMListView *view = static_cast<PIMListView*>(m_tab->currentWidget() ); /* ask the view to send a signal */ view->showCurrentRecord(); } /* as answer this slot will be called */ void MainWindow::slotShowRecord( const Opie::OPimRecord& rec) { /* got a parent but still is a toplevel MODAL dialog */ QDialog* dia = new QDialog(this,"dialog",TRUE ); QVBoxLayout *box = new QVBoxLayout( dia ); dia->setCaption( tr("View Record") ); QTextView *view = new QTextView(dia ); view->setText( rec.toRichText() ); box->addWidget( view ); /* * execute via QPEApplication * this allows QPEApplication to make a sane decision * on the size */ dia->showMaximized(); QPEApplication::execDialog( dia ); delete dia; } void MainWindow::slotDate() { /* * called by the action we will show a Popup * at the current mouse position with a DateChooser * to select the day */ odebug << "slot Date" << oendl; QPopupMenu *menu = new QPopupMenu(); /* A Month to select a date from TRUE for auto close */ DateBookMonth *month = new DateBookMonth(menu, 0, true ); connect(month, SIGNAL(dateClicked(int,int,int) ), this, SLOT(slotLoadForDay(int,int,int) ) ); menu->insertItem( month ); @@ -363,94 +363,99 @@ namespace { int rtti()const; Opie::OPimRecord* record()const; private: Opie::OPimRecord* m_record; }; PIMListViewItem::PIMListViewItem( QListView *p, Opie::OPimRecord* rec ) : QListViewItem(p), m_record( rec ) { } PIMListViewItem::~PIMListViewItem() { /* we've the onwership so we need to delete it */ delete m_record; } Opie::OPimRecord* PIMListViewItem::record()const { return m_record; } } PIMListView::PIMListView( QWidget* widget, const char* name, WFlags fl ) : QListView(widget, name, fl ) { addColumn("Summary"); } PIMListView::~PIMListView() { } void PIMListView::set( Opie::OPimTodoAccess::List list ) { /* clear first and then add new items */ clear(); Opie::OPimTodoAccess::List::Iterator it; for (it = list.begin(); it != list.end(); ++it ) { /* * make a new item which automatically gets added to the listview * and call the copy c'tor to create a new OPimTodo */ PIMListViewItem *i = new PIMListViewItem(this, new Opie::OPimTodo( *it ) ); i->setText(0, (*it).summary() ); } } -void PIMListView::set( const Opie::OEffectiveEvent::ValueList& lst ) { +void PIMListView::set( const Opie::OPimOccurrence::List& lst ) { /* clear first and then add items */ clear(); - Opie::OEffectiveEvent::ValueList::ConstIterator it; + Opie::OPimOccurrence::List::ConstIterator it; for ( it = lst.begin(); it != lst.end(); ++it ) { - PIMListViewItem *i = new PIMListViewItem(this, new Opie::OPimEvent( (*it).event() ) ); + PIMListViewItem *i = new PIMListViewItem(this, new Opie::OPimEvent( (*it).toEvent() ) ); i->setText( 0, PIMListView::makeString( (*it) ) ); } } void PIMListView::showCurrentRecord() { /* it could be possible that their is no currentItem */ if (!currentItem() ) return; /* * we only add PIMListViewItems so it is save * to do this case. If this would not be the case * use rtti() to check in a switch() case */ PIMListViewItem *item = static_cast<PIMListViewItem*>( currentItem() ); /* finally you see how to emit a signal */ emit showRecord( (*item->record() ) ); } -QString PIMListView::makeString( const Opie::OEffectiveEvent& ev ) { +QString PIMListView::makeString( const Opie::OPimOccurrence& _ev ) { QString str; - str += ev.description(); - if ( !ev.event().isAllDay() ) { + str += _ev.summary(); + + Opie::OPimEvent ev = _ev.toEvent(); + if ( !ev.isAllDay() ) { +#if 0 if ( ev.startDate() != ev.endDate() ) { - str += tr("Start ") + TimeString::timeString( ev.event().startDateTime().time() ); - str += " - " + TimeString::longDateString( ev.startDate() ); - str += tr("End ") + TimeString::timeString( ev.event().endDateTime().time() ); - str += " - " + TimeString::longDateString( ev.endDate() ); - }else{ - str += tr("Time ") + TimeString::timeString( ev.startTime() ); - str += " - " + TimeString::timeString( ev.endTime() ); + str += tr("Start ") + TimeString::timeString( ev.startDateTime().time() ); + str += " - " + TimeString::longDateString( ev.startDateTime().date() ); + str += tr("End ") + TimeString::timeString( ev.endDateTime().time() ); + str += " - " + TimeString::longDateString( ev.endDateTime().date() ); + }else +#endif + { + str += tr("Time ") + TimeString::timeString( _ev.startTime() ); + str += " - " + TimeString::timeString( _ev.endTime() ); } }else str += tr(" This is an All-Day Event"); return str; } 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; */ class MainWindow : public QMainWindow { Q_OBJECT public: static QString appName() { return QString::fromLatin1("simple-pim"); } MainWindow( QWidget* parent, const char* name, WFlags fl ); ~MainWindow(); public slots: void setDocument( const QString& ); private slots: void slotDesktopReceive( const QCString&, const QByteArray& ); void slotLoad(); void slotLoadForDay(int, int, int ); void slotLoadForDay(const QDate&); void slotShow(); void slotDate(); void slotShowRecord( const Opie::OPimRecord& ); private: void initUI(); QAction *m_fire; QAction *m_dateAction; Opie::Ui::OTabWidget* m_tab; Opie::OPimTodoAccess m_tb; Opie::ODateBookAccess m_db; PIMListView *m_todoView; PIMListView *m_dateView; int m_synced; // a counter for synced objects.. QCopChannel *m_desktopChannel; Opie::Ui::OWait *m_loading; }; /* * Instead of the simple QWidgets we will design * a new widget based on a QListView * it should show either Todos or EffectiveEvents */ class PIMListView : public QListView { Q_OBJECT public: PIMListView( QWidget* parent, const char* name, WFlags fl= 0 ); ~PIMListView(); void set( Opie::OPimTodoAccess::List ); - void set( const Opie::OEffectiveEvent::ValueList& ); + void set( const Opie::OPimOccurrence::List& ); void showCurrentRecord(); signals: void showRecord( const Opie::OPimRecord& ); private: - static QString makeString( const Opie::OEffectiveEvent& ev ); + static QString makeString( const Opie::OPimOccurrence& ev ); }; #endif |