summaryrefslogtreecommitdiff
path: root/examples/simple-pim
Unidiff
Diffstat (limited to 'examples/simple-pim') (more/less context) (ignore whitespace changes)
-rw-r--r--examples/simple-pim/opie-simple.control2
-rw-r--r--examples/simple-pim/simple.cpp8
2 files changed, 5 insertions, 5 deletions
diff --git a/examples/simple-pim/opie-simple.control b/examples/simple-pim/opie-simple.control
index 1b54f91..80ad85b 100644
--- a/examples/simple-pim/opie-simple.control
+++ b/examples/simple-pim/opie-simple.control
@@ -1,9 +1,9 @@
1Package: opie-simple-pim-example 1Package: opie-simple-pim-example
2Files: bin/main-tab apps/Examples/main-tab.desktop 2Files: bin/main-tab apps/Examples/main-tab.desktop
3Priority: optional 3Priority: optional
4Section: opie/examples 4Section: opie/examples
5Maintainer: Holger 'zecke' Freyther <zecke@handhelds.org> 5Maintainer: Holger 'zecke' Freyther <zecke@handhelds.org>
6Architecture: arm 6Architecture: arm
7Depends: task-opie-minimal, opie-pics 7Depends: task-opie-minimal, libopiecore2, libopieui2, libopiepim2, opie-pics
8Description: A simple example 8Description: A simple example
9Version: $QPE_VERSION$EXTRAVERSION 9Version: $QPE_VERSION$EXTRAVERSION
diff --git a/examples/simple-pim/simple.cpp b/examples/simple-pim/simple.cpp
index 00c5600..6019d04 100644
--- a/examples/simple-pim/simple.cpp
+++ b/examples/simple-pim/simple.cpp
@@ -1,62 +1,62 @@
1/* We use a sane order of include files, from the most special to the least special 1/* We use a sane order of include files, from the most special to the least special
2 That helps to reduce the number of implicit includes hence increases the reuse */ 2 That helps to reduce the number of implicit includes hence increases the reuse */
3 3
4/* First the local include files */ 4/* First the local include files */
5#include "simple.h" 5#include "simple.h"
6 6
7/* Then the Ope include files. 7/* Then the Ope include files.
8This includes qpe stuff which will eventually be merged with libopie2 */ 8This includes qpe stuff which will eventually be merged with libopie2 */
9#include <opie2/odebug.h> // for odebug streams 9#include <opie2/odebug.h> // for odebug streams
10#include <opie2/oapplicationfactory.h> // a template + macro to save the main method and allow quick launching 10#include <opie2/oapplicationfactory.h> // a template + macro to save the main method and allow quick launching
11#include <opie2/oresource.h>
11#include <opie2/otabwidget.h> 12#include <opie2/otabwidget.h>
12#include <opie2/owait.h> 13#include <opie2/owait.h>
13#include <qpe/qpeapplication.h> // the QPEApplication 14#include <qpe/qpeapplication.h> // the QPEApplication
14#include <qpe/resource.h>
15#include <qpe/sound.h> 15#include <qpe/sound.h>
16#include <qpe/qcopenvelope_qws.h> 16#include <qpe/qcopenvelope_qws.h>
17#include <qpe/datebookmonth.h> 17#include <qpe/datebookmonth.h>
18#include <qpe/timestring.h> 18#include <qpe/timestring.h>
19using namespace Opie::Core; 19using namespace Opie::Core;
20 20
21/* Now the Qt includes */ 21/* Now the Qt includes */
22#include <qaction.h> // action 22#include <qaction.h> // action
23#include <qmenubar.h> // menubar 23#include <qmenubar.h> // menubar
24#include <qtoolbar.h> // toolbar 24#include <qtoolbar.h> // toolbar
25#include <qlabel.h> // a label 25#include <qlabel.h> // a label
26#include <qpushbutton.h> // the header file for the QPushButton 26#include <qpushbutton.h> // the header file for the QPushButton
27#include <qlayout.h> 27#include <qlayout.h>
28#include <qtimer.h> // we use it for the singleShot 28#include <qtimer.h> // we use it for the singleShot
29#include <qdatetime.h> // for QDate 29#include <qdatetime.h> // for QDate
30#include <qtextview.h> // a rich text widget 30#include <qtextview.h> // a rich text widget
31#include <qdialog.h> 31#include <qdialog.h>
32#include <qwhatsthis.h> // for whats this 32#include <qwhatsthis.h> // for whats this
33 33
34/* Add standard includes here if you need some 34/* Add standard includes here if you need some
35 Examples are: stdlib.h, socket.h, etc. */ 35 Examples are: stdlib.h, socket.h, etc. */
36 36
37/* 37/*
38 * implementation of simple 38 * implementation of simple
39 */ 39 */
40 40
41/* 41/*
42 * The factory is used for quicklaunching 42 * The factory is used for quicklaunching
43 * It needs a constructor ( c'tor ) with at least QWidget, const char* and WFlags as parameter and a static QString appName() matching the TARGET of the .pro 43 * It needs a constructor ( c'tor ) with at least QWidget, const char* and WFlags as parameter and a static QString appName() matching the TARGET of the .pro
44 * 44 *
45 * Depending on the global quick launch setting this will create 45 * Depending on the global quick launch setting this will create
46 * either a main method or one for our component plugin system 46 * either a main method or one for our component plugin system
47 */ 47 */
48 48
49OPIE_EXPORT_APP( OApplicationFactory<MainWindow> ) 49OPIE_EXPORT_APP( OApplicationFactory<MainWindow> )
50 50
51MainWindow::MainWindow(QWidget *parent, const char* name, WFlags fl ) 51MainWindow::MainWindow(QWidget *parent, const char* name, WFlags fl )
52 : QMainWindow( parent, name, fl ) { 52 : QMainWindow( parent, name, fl ) {
53 setCaption(tr("My MainWindow") ); 53 setCaption(tr("My MainWindow") );
54 54
55 m_desktopChannel = 0; 55 m_desktopChannel = 0;
56 m_loading = 0; 56 m_loading = 0;
57 57
58 initUI(); 58 initUI();
59 59
60 60
61 /* 61 /*
62 * Tab widget as central 62 * Tab widget as central
@@ -86,119 +86,119 @@ MainWindow::MainWindow(QWidget *parent, const char* name, WFlags fl )
86 connect(m_dateAction, SIGNAL(activated() ), 86 connect(m_dateAction, SIGNAL(activated() ),
87 this, SLOT(slotDate() ) ); 87 this, SLOT(slotDate() ) );
88 88
89 /* 89 /*
90 * connect the show signal of the PIMListView 90 * connect the show signal of the PIMListView
91 * to a slot to show a dialog 91 * to a slot to show a dialog
92 */ 92 */
93 connect(m_todoView, SIGNAL(showRecord(const Opie::OPimRecord&) ), 93 connect(m_todoView, SIGNAL(showRecord(const Opie::OPimRecord&) ),
94 this, SLOT(slotShowRecord(const Opie::OPimRecord&) ) ); 94 this, SLOT(slotShowRecord(const Opie::OPimRecord&) ) );
95 connect(m_dateView, SIGNAL(showRecord(const Opie::OPimRecord&) ), 95 connect(m_dateView, SIGNAL(showRecord(const Opie::OPimRecord&) ),
96 this, SLOT(slotShowRecord(const Opie::OPimRecord&) ) ); 96 this, SLOT(slotShowRecord(const Opie::OPimRecord&) ) );
97 97
98 /* 98 /*
99 * Now comes the important lines of code for this example 99 * Now comes the important lines of code for this example
100 * We do not directly call load but delay loading until 100 * We do not directly call load but delay loading until
101 * all Events are dispatches and handled. 101 * all Events are dispatches and handled.
102 * SO we will load once our window is mapped to screen 102 * SO we will load once our window is mapped to screen
103 * to achieve that we use a QTimer::singleShot 103 * to achieve that we use a QTimer::singleShot
104 * After 10 milli seconds the timer fires and on TimerEvent 104 * After 10 milli seconds the timer fires and on TimerEvent
105 * out slot slotLoad will be called 105 * out slot slotLoad will be called
106 * Remember this a Constructor to construct your object and not 106 * Remember this a Constructor to construct your object and not
107 * to load 107 * to load
108 */ 108 */
109 QTimer::singleShot( 10, this, SLOT(slotLoad() ) ); 109 QTimer::singleShot( 10, this, SLOT(slotLoad() ) );
110} 110}
111 111
112MainWindow::~MainWindow() { 112MainWindow::~MainWindow() {
113 // again nothing to delete because Qt takes care 113 // again nothing to delete because Qt takes care
114} 114}
115 115
116 116
117void MainWindow::setDocument( const QString& /*str*/ ) { 117void MainWindow::setDocument( const QString& /*str*/ ) {
118} 118}
119 119
120 120
121void MainWindow::initUI() { 121void MainWindow::initUI() {
122 122
123 setToolBarsMovable( false ); 123 setToolBarsMovable( false );
124 124
125 QToolBar *menuBarHolder = new QToolBar( this ); 125 QToolBar *menuBarHolder = new QToolBar( this );
126 126
127 menuBarHolder->setHorizontalStretchable( true ); 127 menuBarHolder->setHorizontalStretchable( true );
128 QMenuBar *mb = new QMenuBar( menuBarHolder ); 128 QMenuBar *mb = new QMenuBar( menuBarHolder );
129 QToolBar *tb = new QToolBar( this ); 129 QToolBar *tb = new QToolBar( this );
130 130
131 QPopupMenu *fileMenu = new QPopupMenu( this ); 131 QPopupMenu *fileMenu = new QPopupMenu( this );
132 132
133 133
134 QAction *a = new QAction( tr("Quit"), Resource::loadIconSet("quit_icon"), 134 QAction *a = new QAction( tr("Quit"), Opie::Core::OResource::loadPixmap("quit_icon", Opie::Core::OResource::SmallIcon),
135 QString::null, 0, this, "quit_action" ); 135 QString::null, 0, this, "quit_action" );
136 /* 136 /*
137 * Connect quit to the QApplication quit slot 137 * Connect quit to the QApplication quit slot
138 */ 138 */
139 connect(a, SIGNAL(activated() ), 139 connect(a, SIGNAL(activated() ),
140 qApp, SLOT(quit() ) ); 140 qApp, SLOT(quit() ) );
141 a->addTo( fileMenu ); 141 a->addTo( fileMenu );
142 142
143 a = new QAction(tr("View Current"), 143 a = new QAction(tr("View Current"),
144 Resource::loadIconSet("zoom"), 144 Opie::Core::OResource::loadPixmap("zoom", Opie::Core::OResource::SmallIcon),
145 QString::null, 0, this, "view current"); 145 QString::null, 0, this, "view current");
146 /* a simple whats this online explanation of out button */ 146 /* a simple whats this online explanation of out button */
147 a->setWhatsThis(tr("Views the current record") ); 147 a->setWhatsThis(tr("Views the current record") );
148 /* or QWhatsThis::add(widget, "description" ); */ 148 /* or QWhatsThis::add(widget, "description" ); */
149 149
150 /* see the power? */ 150 /* see the power? */
151 a->addTo( fileMenu ); 151 a->addTo( fileMenu );
152 a->addTo( tb ); 152 a->addTo( tb );
153 m_fire = a; 153 m_fire = a;
154 154
155 a = new QAction(tr("Choose Date"), 155 a = new QAction(tr("Choose Date"),
156 Resource::loadIconSet("day"), 156 Opie::Core::OResource::loadPixmap("day", Opie::Core::OResource::SmallIcon),
157 QString::null, 0, this, "choose date" ); 157 QString::null, 0, this, "choose date" );
158 a->addTo( fileMenu ); 158 a->addTo( fileMenu );
159 a->addTo( tb ); 159 a->addTo( tb );
160 m_dateAction = a; 160 m_dateAction = a;
161 161
162 mb->insertItem(tr("File"), fileMenu ); 162 mb->insertItem(tr("File"), fileMenu );
163 163
164} 164}
165 165
166void MainWindow::slotLoad() { 166void MainWindow::slotLoad() {
167 /* 167 /*
168 * There is no real shared access in the PIM API 168 * There is no real shared access in the PIM API
169 * It wasn't finish cause of health problems of one 169 * It wasn't finish cause of health problems of one
170 * of the authors so we do something fancy and use QCOP 170 * of the authors so we do something fancy and use QCOP
171 * the IPC system to get a current copy 171 * the IPC system to get a current copy
172 */ 172 */
173 /* NOTES to QCOP: QCOP operates over channels and use QDataStream 173 /* NOTES to QCOP: QCOP operates over channels and use QDataStream
174 * to send data. You can check if a channel isRegistered or hook 174 * to send data. You can check if a channel isRegistered or hook
175 * yourself to that channel. A Channel is QCString and normally 175 * yourself to that channel. A Channel is QCString and normally
176 * prefix with QPE/ and then the system in example QPE/System, 176 * prefix with QPE/ and then the system in example QPE/System,
177 * QPE/Desktop a special channel is the application channel 177 * QPE/Desktop a special channel is the application channel
178 * it QPE/Application/appname this channel gets created on app 178 * it QPE/Application/appname this channel gets created on app
179 * startup by QPEApplication. QCOP is asynchronous 179 * startup by QPEApplication. QCOP is asynchronous
180 * 180 *
181 * To send you'll use QCopEnevelope 181 * To send you'll use QCopEnevelope
182 * 182 *
183 */ 183 */
184 /* 184 /*
185 * What we will do is first is get to know if either 185 * What we will do is first is get to know if either
186 * datebook or todolist are running if so we will kindly 186 * datebook or todolist are running if so we will kindly
187 * asked to save the data for us. 187 * asked to save the data for us.
188 * If neither are running we can load directly 188 * If neither are running we can load directly
189 */ 189 */
190 if (!QCopChannel::isRegistered("QPE/Application/todolist") && 190 if (!QCopChannel::isRegistered("QPE/Application/todolist") &&
191 !QCopChannel::isRegistered("QPE/Application/datebook") ) { 191 !QCopChannel::isRegistered("QPE/Application/datebook") ) {
192 m_db.load(); 192 m_db.load();
193 m_tb.load(); 193 m_tb.load();
194 return slotLoadForDay( QDate::currentDate() ); 194 return slotLoadForDay( QDate::currentDate() );
195 } 195 }
196 196
197 /* 197 /*
198 * prepare our answer machine the QCopChannel 198 * prepare our answer machine the QCopChannel
199 * QPE/Desktop will send "flushDone(QString)" when 199 * QPE/Desktop will send "flushDone(QString)" when
200 * the flush is done it emits a signal on receive 200 * the flush is done it emits a signal on receive
201 */ 201 */
202 m_desktopChannel = new QCopChannel("QPE/Desktop"); 202 m_desktopChannel = new QCopChannel("QPE/Desktop");
203 connect(m_desktopChannel, SIGNAL(received(const QCString&,const QByteArray&) ), 203 connect(m_desktopChannel, SIGNAL(received(const QCString&,const QByteArray&) ),
204 this, SLOT(slotDesktopReceive(const QCString&,const QByteArray&) ) ); 204 this, SLOT(slotDesktopReceive(const QCString&,const QByteArray&) ) );