summaryrefslogtreecommitdiff
Side-by-side diff
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() {
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