-rw-r--r-- | core/launcher/firstuse.cpp | 9 | ||||
-rw-r--r-- | libopie2/opiepim/core/opimevent.cpp | 2 | ||||
-rw-r--r-- | library/backend/event.cpp | 2 | ||||
-rw-r--r-- | noncore/applets/zkbapplet/keyzcfg/zkbnames.cpp | 26 | ||||
-rw-r--r-- | noncore/games/qasteroids/view.cpp | 7 | ||||
-rw-r--r-- | noncore/games/solitaire/cardpile.h | 2 |
6 files changed, 29 insertions, 19 deletions
diff --git a/core/launcher/firstuse.cpp b/core/launcher/firstuse.cpp index acddeea..8344787 100644 --- a/core/launcher/firstuse.cpp +++ b/core/launcher/firstuse.cpp | |||
@@ -1,327 +1,328 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | // I need access to some things you don't normally get access to. | 21 | // I need access to some things you don't normally get access to. |
22 | 22 | ||
23 | #ifndef _MSC_VER | 23 | #ifndef _MSC_VER |
24 | //### revise to allow removal of translators under MSVC | 24 | //### revise to allow removal of translators under MSVC |
25 | #define private public | 25 | #define private public |
26 | #define protected public | 26 | #define protected public |
27 | #endif | 27 | #endif |
28 | #include "firstuse.h" | 28 | #include "firstuse.h" |
29 | #include "inputmethods.h" | 29 | #include "inputmethods.h" |
30 | #include "applauncher.h" | 30 | #include "applauncher.h" |
31 | #include "serverapp.h" | 31 | #include "serverapp.h" |
32 | #include "calibrate.h" | 32 | #include "calibrate.h" |
33 | #include "documentlist.h" | 33 | #include "documentlist.h" |
34 | 34 | ||
35 | /* OPIE */ | 35 | /* OPIE */ |
36 | #include <opie2/odebug.h> | 36 | #include <opie2/odebug.h> |
37 | #include <qtopia/resource.h> | 37 | #include <qtopia/resource.h> |
38 | #include <qtopia/qcopenvelope_qws.h> | 38 | #include <qtopia/qcopenvelope_qws.h> |
39 | #include <qtopia/config.h> | 39 | #include <qtopia/config.h> |
40 | #include <qtopia/fontmanager.h> | 40 | #include <qtopia/fontmanager.h> |
41 | using namespace Opie::Core; | 41 | using namespace Opie::Core; |
42 | 42 | ||
43 | /* QT */ | 43 | /* QT */ |
44 | #include <qfile.h> | 44 | #include <qfile.h> |
45 | #include <qpainter.h> | 45 | #include <qpainter.h> |
46 | #include <qsimplerichtext.h> | 46 | #include <qsimplerichtext.h> |
47 | #include <qpushbutton.h> | 47 | #include <qpushbutton.h> |
48 | #include <qlabel.h> | 48 | #include <qlabel.h> |
49 | #include <qtimer.h> | 49 | #include <qtimer.h> |
50 | 50 | ||
51 | #if defined( Q_WS_QWS ) | 51 | #if defined( Q_WS_QWS ) |
52 | #include <qwsdisplay_qws.h> | 52 | #include <qwsdisplay_qws.h> |
53 | #include <qgfx_qws.h> | 53 | #include <qgfx_qws.h> |
54 | #endif | 54 | #endif |
55 | 55 | ||
56 | /* STD */ | 56 | /* STD */ |
57 | #include <stdlib.h> | 57 | #include <stdlib.h> |
58 | #include <sys/types.h> | 58 | #include <sys/types.h> |
59 | #if defined(Q_OS_LINUX) || defined(_OS_LINUX_) | 59 | #if defined(Q_OS_LINUX) || defined(_OS_LINUX_) |
60 | #include <unistd.h> | 60 | #include <unistd.h> |
61 | #endif | 61 | #endif |
62 | 62 | ||
63 | 63 | ||
64 | struct { | 64 | struct settingsTable_t { |
65 | bool enabled; | 65 | bool enabled : 1; |
66 | const char *app; | 66 | const char *app; |
67 | const char *start; | 67 | const char *start; |
68 | const char *stop; | 68 | const char *stop; |
69 | const char *desc; | 69 | const char *desc; |
70 | } | 70 | }; |
71 | settingsTable [] = | 71 | |
72 | static settingsTable_t settingsTable [] = | ||
72 | { | 73 | { |
73 | { FALSE, "language", "raise()", "accept()", // No tr | 74 | { FALSE, "language", "raise()", "accept()", // No tr |
74 | QT_TR_NOOP("Language") }, | 75 | QT_TR_NOOP("Language") }, |
75 | { FALSE, "doctab", "raise()", "accept()", // No tr | 76 | { FALSE, "doctab", "raise()", "accept()", // No tr |
76 | QT_TR_NOOP("DocTab") }, | 77 | QT_TR_NOOP("DocTab") }, |
77 | #ifndef Q_OS_WIN32 | 78 | #ifndef Q_OS_WIN32 |
78 | { FALSE, "systemtime", "raise()", "accept()", // No tr | 79 | { FALSE, "systemtime", "raise()", "accept()", // No tr |
79 | QT_TR_NOOP("Time and Date") }, | 80 | QT_TR_NOOP("Time and Date") }, |
80 | #endif | 81 | #endif |
81 | { FALSE, "addressbook", "editPersonalAndClose()", "accept()", // No tr | 82 | { FALSE, "addressbook", "editPersonalAndClose()", "accept()", // No tr |
82 | QT_TR_NOOP("Personal Information") }, | 83 | QT_TR_NOOP("Personal Information") }, |
83 | { FALSE, 0, 0, 0, 0 } | 84 | { FALSE, 0, 0, 0, 0 } |
84 | }; | 85 | }; |
85 | 86 | ||
86 | 87 | ||
87 | FirstUse::FirstUse(QWidget* parent, const char * name, WFlags wf) : | 88 | FirstUse::FirstUse(QWidget* parent, const char * name, WFlags wf) : |
88 | QDialog( parent, name, TRUE, wf), | 89 | QDialog( parent, name, TRUE, wf), |
89 | transApp(0), transLib(0), needCalibrate(FALSE), currApp(-1), | 90 | transApp(0), transLib(0), needCalibrate(FALSE), currApp(-1), |
90 | waitForExit(-1), waitingForLaunch(FALSE), needRestart(FALSE) | 91 | waitForExit(-1), waitingForLaunch(FALSE), needRestart(FALSE) |
91 | { | 92 | { |
92 | ServerApplication::allowRestart = FALSE; | 93 | ServerApplication::allowRestart = FALSE; |
93 | // we force our height beyound the maximum (which we set anyway) | 94 | // we force our height beyound the maximum (which we set anyway) |
94 | QRect desk = qApp->desktop()->geometry(); | 95 | QRect desk = qApp->desktop()->geometry(); |
95 | setGeometry( 0, 0, desk.width(), desk.height() ); | 96 | setGeometry( 0, 0, desk.width(), desk.height() ); |
96 | 97 | ||
97 | connect(qwsServer, SIGNAL(newChannel(const QString&)), | 98 | connect(qwsServer, SIGNAL(newChannel(const QString&)), |
98 | this, SLOT(newQcopChannel(const QString&))); | 99 | this, SLOT(newQcopChannel(const QString&))); |
99 | 100 | ||
100 | // Create a DocumentList so appLauncher has appLnkSet to search | 101 | // Create a DocumentList so appLauncher has appLnkSet to search |
101 | docList = new DocumentList( 0, FALSE ); | 102 | docList = new DocumentList( 0, FALSE ); |
102 | appLauncher = new AppLauncher( this ); | 103 | appLauncher = new AppLauncher( this ); |
103 | connect( appLauncher, SIGNAL(terminated(int,const QString&)), | 104 | connect( appLauncher, SIGNAL(terminated(int,const QString&)), |
104 | this, SLOT(terminated(int,const QString&)) ); | 105 | this, SLOT(terminated(int,const QString&)) ); |
105 | 106 | ||
106 | // more hackery | 107 | // more hackery |
107 | // I will be run as either the main server or as part of the main server | 108 | // I will be run as either the main server or as part of the main server |
108 | QWSServer::setScreenSaverIntervals(0); | 109 | QWSServer::setScreenSaverIntervals(0); |
109 | loadPixmaps(); | 110 | loadPixmaps(); |
110 | 111 | ||
111 | //check if there is a language program | 112 | //check if there is a language program |
112 | #ifndef Q_OS_WIN32 | 113 | #ifndef Q_OS_WIN32 |
113 | QString exeSuffix; | 114 | QString exeSuffix; |
114 | #else | 115 | #else |
115 | QString exeSuffix(".exe"); | 116 | QString exeSuffix(".exe"); |
116 | #endif | 117 | #endif |
117 | 118 | ||
118 | for ( int i = 0; settingsTable[i].app; i++ ) { | 119 | for ( int i = 0; settingsTable[i].app; i++ ) { |
119 | QString file = QPEApplication::qpeDir() + "bin/"; | 120 | QString file = QPEApplication::qpeDir() + "bin/"; |
120 | file += settingsTable[i].app; | 121 | file += settingsTable[i].app; |
121 | file += exeSuffix; | 122 | file += exeSuffix; |
122 | if ( QFile::exists(file) ) | 123 | if ( QFile::exists(file) ) |
123 | settingsTable[i].enabled = TRUE; | 124 | settingsTable[i].enabled = TRUE; |
124 | } | 125 | } |
125 | 126 | ||
126 | setFocusPolicy(NoFocus); | 127 | setFocusPolicy(NoFocus); |
127 | 128 | ||
128 | taskBar = new QWidget(0, 0, WStyle_Tool | WStyle_Customize | WStyle_StaysOnTop | WGroupLeader); | 129 | taskBar = new QWidget(0, 0, WStyle_Tool | WStyle_Customize | WStyle_StaysOnTop | WGroupLeader); |
129 | 130 | ||
130 | inputMethods = new InputMethods(taskBar); | 131 | inputMethods = new InputMethods(taskBar); |
131 | connect(inputMethods, SIGNAL(inputToggled(bool)), | 132 | connect(inputMethods, SIGNAL(inputToggled(bool)), |
132 | this, SLOT(calcMaxWindowRect())); | 133 | this, SLOT(calcMaxWindowRect())); |
133 | 134 | ||
134 | back = new QPushButton(tr("<< Back"), taskBar); | 135 | back = new QPushButton(tr("<< Back"), taskBar); |
135 | back->setFocusPolicy(NoFocus); | 136 | back->setFocusPolicy(NoFocus); |
136 | connect(back, SIGNAL(clicked()), this, SLOT(previousDialog()) ); | 137 | connect(back, SIGNAL(clicked()), this, SLOT(previousDialog()) ); |
137 | 138 | ||
138 | next = new QPushButton(tr("Next >>"), taskBar); | 139 | next = new QPushButton(tr("Next >>"), taskBar); |
139 | next->setFocusPolicy(NoFocus); | 140 | next->setFocusPolicy(NoFocus); |
140 | connect(next, SIGNAL(clicked()), this, SLOT(nextDialog()) ); | 141 | connect(next, SIGNAL(clicked()), this, SLOT(nextDialog()) ); |
141 | 142 | ||
142 | // need to set the geom to lower corner | 143 | // need to set the geom to lower corner |
143 | QSize sz = inputMethods->sizeHint(); | 144 | QSize sz = inputMethods->sizeHint(); |
144 | int buttonWidth = (width() - sz.width()) / 2; | 145 | int buttonWidth = (width() - sz.width()) / 2; |
145 | int x = 0; | 146 | int x = 0; |
146 | 147 | ||
147 | controlHeight = back->sizeHint().height(); | 148 | controlHeight = back->sizeHint().height(); |
148 | 149 | ||
149 | inputMethods->setGeometry(0,0, sz.width(), controlHeight ); | 150 | inputMethods->setGeometry(0,0, sz.width(), controlHeight ); |
150 | x += sz.width(); | 151 | x += sz.width(); |
151 | 152 | ||
152 | back->setGeometry(x, 0, buttonWidth, controlHeight); | 153 | back->setGeometry(x, 0, buttonWidth, controlHeight); |
153 | x += buttonWidth; | 154 | x += buttonWidth; |
154 | next->setGeometry(x, 0, buttonWidth, controlHeight); | 155 | next->setGeometry(x, 0, buttonWidth, controlHeight); |
155 | 156 | ||
156 | taskBar->setGeometry( 0, height() - controlHeight, desk.width(), controlHeight); | 157 | taskBar->setGeometry( 0, height() - controlHeight, desk.width(), controlHeight); |
157 | taskBar->hide(); | 158 | taskBar->hide(); |
158 | 159 | ||
159 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 160 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
160 | odebug << "Setting up QCop to QPE/System" << oendl; | 161 | odebug << "Setting up QCop to QPE/System" << oendl; |
161 | QCopChannel* sysChannel = new QCopChannel( "QPE/System", this ); | 162 | QCopChannel* sysChannel = new QCopChannel( "QPE/System", this ); |
162 | connect(sysChannel, SIGNAL(received(const QCString&,const QByteArray&)), | 163 | connect(sysChannel, SIGNAL(received(const QCString&,const QByteArray&)), |
163 | this, SLOT(message(const QCString&,const QByteArray&)) ); | 164 | this, SLOT(message(const QCString&,const QByteArray&)) ); |
164 | #endif | 165 | #endif |
165 | calcMaxWindowRect(); | 166 | calcMaxWindowRect(); |
166 | 167 | ||
167 | m_calHandler = ( QWSServer::mouseHandler() && QWSServer::mouseHandler()->inherits("QCalibratedMouseHandler") ) ? true : false; | 168 | m_calHandler = ( QWSServer::mouseHandler() && QWSServer::mouseHandler()->inherits("QCalibratedMouseHandler") ) ? true : false; |
168 | 169 | ||
169 | if ( m_calHandler) { | 170 | if ( m_calHandler) { |
170 | if ( !QFile::exists("/etc/pointercal") ) { | 171 | if ( !QFile::exists("/etc/pointercal") ) { |
171 | needCalibrate = TRUE; | 172 | needCalibrate = TRUE; |
172 | grabMouse(); | 173 | grabMouse(); |
173 | } | 174 | } |
174 | } | 175 | } |
175 | 176 | ||
176 | Config config("locale"); | 177 | Config config("locale"); |
177 | config.setGroup( "Language"); | 178 | config.setGroup( "Language"); |
178 | lang = config.readEntry( "Language", "en"); | 179 | lang = config.readEntry( "Language", "en"); |
179 | 180 | ||
180 | defaultFont = font(); | 181 | defaultFont = font(); |
181 | 182 | ||
182 | //###language/font hack; should look it up somewhere | 183 | //###language/font hack; should look it up somewhere |
183 | #ifdef Q_WS_QWS | 184 | #ifdef Q_WS_QWS |
184 | if ( lang == "ja" || lang == "zh_CN" || lang == "zh_TW" || lang == "ko" ) { | 185 | if ( lang == "ja" || lang == "zh_CN" || lang == "zh_TW" || lang == "ko" ) { |
185 | QFont fn = FontManager::unicodeFont( FontManager::Proportional ); | 186 | QFont fn = FontManager::unicodeFont( FontManager::Proportional ); |
186 | qApp->setFont( fn, TRUE ); | 187 | qApp->setFont( fn, TRUE ); |
187 | } | 188 | } |
188 | #endif | 189 | #endif |
189 | } | 190 | } |
190 | 191 | ||
191 | FirstUse::~FirstUse() | 192 | FirstUse::~FirstUse() |
192 | { | 193 | { |
193 | delete appLauncher; | 194 | delete appLauncher; |
194 | delete docList; | 195 | delete docList; |
195 | delete taskBar; | 196 | delete taskBar; |
196 | ServerApplication::allowRestart = TRUE; | 197 | ServerApplication::allowRestart = TRUE; |
197 | } | 198 | } |
198 | 199 | ||
199 | void FirstUse::calcMaxWindowRect() | 200 | void FirstUse::calcMaxWindowRect() |
200 | { | 201 | { |
201 | #ifdef Q_WS_QWS | 202 | #ifdef Q_WS_QWS |
202 | QRect wr; | 203 | QRect wr; |
203 | int displayWidth = qApp->desktop()->width(); | 204 | int displayWidth = qApp->desktop()->width(); |
204 | QRect ir = inputMethods->inputRect(); | 205 | QRect ir = inputMethods->inputRect(); |
205 | if ( ir.isValid() ) { | 206 | if ( ir.isValid() ) { |
206 | wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 ); | 207 | wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 ); |
207 | } else { | 208 | } else { |
208 | wr.setCoords( 0, 0, displayWidth-1, | 209 | wr.setCoords( 0, 0, displayWidth-1, |
209 | qApp->desktop()->height() - controlHeight-1); | 210 | qApp->desktop()->height() - controlHeight-1); |
210 | } | 211 | } |
211 | 212 | ||
212 | #if QT_VERSION < 0x030000 | 213 | #if QT_VERSION < 0x030000 |
213 | QWSServer::setMaxWindowRect( qt_screen->mapToDevice(wr, | 214 | QWSServer::setMaxWindowRect( qt_screen->mapToDevice(wr, |
214 | QSize(qt_screen->width(),qt_screen->height())) | 215 | QSize(qt_screen->width(),qt_screen->height())) |
215 | ); | 216 | ); |
216 | #else | 217 | #else |
217 | QWSServer::setMaxWindowRect( wr ); | 218 | QWSServer::setMaxWindowRect( wr ); |
218 | #endif | 219 | #endif |
219 | #endif | 220 | #endif |
220 | } | 221 | } |
221 | 222 | ||
222 | /* cancel current dialog, and bring up next */ | 223 | /* cancel current dialog, and bring up next */ |
223 | void FirstUse::nextDialog() | 224 | void FirstUse::nextDialog() |
224 | { | 225 | { |
225 | int prevApp = currApp; | 226 | int prevApp = currApp; |
226 | do { | 227 | do { |
227 | currApp++; | 228 | currApp++; |
228 | odebug << "currApp = " << currApp << "" << oendl; | 229 | odebug << "currApp = " << currApp << "" << oendl; |
229 | if ( settingsTable[currApp].app == 0 ) { | 230 | if ( settingsTable[currApp].app == 0 ) { |
230 | if ( prevApp >= 0 && appLauncher->isRunning(settingsTable[prevApp].app) ) { | 231 | if ( prevApp >= 0 && appLauncher->isRunning(settingsTable[prevApp].app) ) { |
231 | // The last application is still running. | 232 | // The last application is still running. |
232 | // Tell it to stop, and when its done we'll come back | 233 | // Tell it to stop, and when its done we'll come back |
233 | // to nextDialog and exit. | 234 | // to nextDialog and exit. |
234 | odebug << "Waiting for " << settingsTable[prevApp].app << " to exit" << oendl; | 235 | odebug << "Waiting for " << settingsTable[prevApp].app << " to exit" << oendl; |
235 | QCopEnvelope e(QCString("QPE/Application/") + settingsTable[prevApp].app, | 236 | QCopEnvelope e(QCString("QPE/Application/") + settingsTable[prevApp].app, |
236 | settingsTable[prevApp].stop ); | 237 | settingsTable[prevApp].stop ); |
237 | currApp = prevApp; | 238 | currApp = prevApp; |
238 | } else { | 239 | } else { |
239 | odebug << "Done!" << oendl; | 240 | odebug << "Done!" << oendl; |
240 | Config config( "qpe" ); | 241 | Config config( "qpe" ); |
241 | config.setGroup( "Startup" ); | 242 | config.setGroup( "Startup" ); |
242 | config.writeEntry( "FirstUse", FALSE ); | 243 | config.writeEntry( "FirstUse", FALSE ); |
243 | QPixmap pix = Resource::loadPixmap("bigwait"); | 244 | QPixmap pix = Resource::loadPixmap("bigwait"); |
244 | QLabel *lblWait = new QLabel(0, "wait hack!", // No tr | 245 | QLabel *lblWait = new QLabel(0, "wait hack!", // No tr |
245 | QWidget::WStyle_Customize | QWidget::WDestructiveClose | | 246 | QWidget::WStyle_Customize | QWidget::WDestructiveClose | |
246 | QWidget::WStyle_NoBorder | QWidget::WStyle_Tool | | 247 | QWidget::WStyle_NoBorder | QWidget::WStyle_Tool | |
247 | QWidget::WStyle_StaysOnTop); | 248 | QWidget::WStyle_StaysOnTop); |
248 | lblWait->setPixmap( pix ); | 249 | lblWait->setPixmap( pix ); |
249 | lblWait->setAlignment( QWidget::AlignCenter ); | 250 | lblWait->setAlignment( QWidget::AlignCenter ); |
250 | lblWait->setGeometry( qApp->desktop()->geometry() ); | 251 | lblWait->setGeometry( qApp->desktop()->geometry() ); |
251 | lblWait->show(); | 252 | lblWait->show(); |
252 | qApp->processEvents(); | 253 | qApp->processEvents(); |
253 | QTimer::singleShot( 1000, lblWait, SLOT(close()) ); | 254 | QTimer::singleShot( 1000, lblWait, SLOT(close()) ); |
254 | repaint(); | 255 | repaint(); |
255 | close(); | 256 | close(); |
256 | ServerApplication::allowRestart = TRUE; | 257 | ServerApplication::allowRestart = TRUE; |
257 | } | 258 | } |
258 | return; | 259 | return; |
259 | } | 260 | } |
260 | } while ( !settingsTable[currApp].enabled ); | 261 | } while ( !settingsTable[currApp].enabled ); |
261 | 262 | ||
262 | if ( prevApp >= 0 && appLauncher->isRunning(settingsTable[prevApp].app) ) { | 263 | if ( prevApp >= 0 && appLauncher->isRunning(settingsTable[prevApp].app) ) { |
263 | odebug << "Shutdown: " << settingsTable[prevApp].app << "" << oendl; | 264 | odebug << "Shutdown: " << settingsTable[prevApp].app << "" << oendl; |
264 | QCopEnvelope e(QCString("QPE/Application/") + settingsTable[prevApp].app, | 265 | QCopEnvelope e(QCString("QPE/Application/") + settingsTable[prevApp].app, |
265 | settingsTable[prevApp].stop ); | 266 | settingsTable[prevApp].stop ); |
266 | waitForExit = prevApp; | 267 | waitForExit = prevApp; |
267 | } else { | 268 | } else { |
268 | odebug << "Startup: " << settingsTable[currApp].app << "" << oendl; | 269 | odebug << "Startup: " << settingsTable[currApp].app << "" << oendl; |
269 | QCopEnvelope e(QCString("QPE/Application/") + settingsTable[currApp].app, | 270 | QCopEnvelope e(QCString("QPE/Application/") + settingsTable[currApp].app, |
270 | settingsTable[currApp].start ); | 271 | settingsTable[currApp].start ); |
271 | waitingForLaunch = TRUE; | 272 | waitingForLaunch = TRUE; |
272 | } | 273 | } |
273 | 274 | ||
274 | updateButtons(); | 275 | updateButtons(); |
275 | } | 276 | } |
276 | 277 | ||
277 | /* accept current dialog and bring up previous */ | 278 | /* accept current dialog and bring up previous */ |
278 | void FirstUse::previousDialog() | 279 | void FirstUse::previousDialog() |
279 | { | 280 | { |
280 | int prevApp = currApp; | 281 | int prevApp = currApp; |
281 | do { | 282 | do { |
282 | currApp--; | 283 | currApp--; |
283 | if ( currApp < 0 ) { | 284 | if ( currApp < 0 ) { |
284 | currApp = prevApp; | 285 | currApp = prevApp; |
285 | return; | 286 | return; |
286 | } | 287 | } |
287 | } while ( !settingsTable[currApp].enabled ); | 288 | } while ( !settingsTable[currApp].enabled ); |
288 | 289 | ||
289 | if ( prevApp >= 0 ) { | 290 | if ( prevApp >= 0 ) { |
290 | odebug << "Shutdown: " << settingsTable[prevApp].app << "" << oendl; | 291 | odebug << "Shutdown: " << settingsTable[prevApp].app << "" << oendl; |
291 | QCopEnvelope e(QCString("QPE/Application/") + settingsTable[prevApp].app, | 292 | QCopEnvelope e(QCString("QPE/Application/") + settingsTable[prevApp].app, |
292 | settingsTable[prevApp].stop ); | 293 | settingsTable[prevApp].stop ); |
293 | /* | 294 | /* |
294 | if (settingsTable[prevApp].app == QString("systemtime")) | 295 | if (settingsTable[prevApp].app == QString("systemtime")) |
295 | QCopEnvelope e("QPE/Application/citytime", "close()"); | 296 | QCopEnvelope e("QPE/Application/citytime", "close()"); |
296 | */ | 297 | */ |
297 | waitForExit = prevApp; | 298 | waitForExit = prevApp; |
298 | } else { | 299 | } else { |
299 | odebug << "Startup: " << settingsTable[currApp].app << "" << oendl; | 300 | odebug << "Startup: " << settingsTable[currApp].app << "" << oendl; |
300 | QCopEnvelope e(QCString("QPE/Application/") + settingsTable[currApp].app, | 301 | QCopEnvelope e(QCString("QPE/Application/") + settingsTable[currApp].app, |
301 | settingsTable[currApp].start ); | 302 | settingsTable[currApp].start ); |
302 | waitingForLaunch = TRUE; | 303 | waitingForLaunch = TRUE; |
303 | } | 304 | } |
304 | 305 | ||
305 | updateButtons(); | 306 | updateButtons(); |
306 | } | 307 | } |
307 | 308 | ||
308 | void FirstUse::message(const QCString &msg, const QByteArray &data) | 309 | void FirstUse::message(const QCString &msg, const QByteArray &data) |
309 | { | 310 | { |
310 | QDataStream stream( data, IO_ReadOnly ); | 311 | QDataStream stream( data, IO_ReadOnly ); |
311 | if ( msg == "timeChange(QString)" ) { | 312 | if ( msg == "timeChange(QString)" ) { |
312 | QString t; | 313 | QString t; |
313 | stream >> t; | 314 | stream >> t; |
314 | if ( t.isNull() ) | 315 | if ( t.isNull() ) |
315 | unsetenv("TZ"); | 316 | unsetenv("TZ"); |
316 | else | 317 | else |
317 | setenv( "TZ", t.latin1(), 1 ); | 318 | setenv( "TZ", t.latin1(), 1 ); |
318 | } | 319 | } |
319 | } | 320 | } |
320 | 321 | ||
321 | void FirstUse::terminated( int, const QString &app ) | 322 | void FirstUse::terminated( int, const QString &app ) |
322 | { | 323 | { |
323 | odebug << "--- terminated: " << app << "" << oendl; | 324 | odebug << "--- terminated: " << app << "" << oendl; |
324 | if ( waitForExit != -1 && settingsTable[waitForExit].app == app ) { | 325 | if ( waitForExit != -1 && settingsTable[waitForExit].app == app ) { |
325 | odebug << "Startup: " << settingsTable[currApp].app << "" << oendl; | 326 | odebug << "Startup: " << settingsTable[currApp].app << "" << oendl; |
326 | if ( settingsTable[waitForExit].app == "language" ) { // No tr | 327 | if ( settingsTable[waitForExit].app == "language" ) { // No tr |
327 | Config config("locale"); | 328 | Config config("locale"); |
diff --git a/libopie2/opiepim/core/opimevent.cpp b/libopie2/opiepim/core/opimevent.cpp index c656c3d..7bc6c32 100644 --- a/libopie2/opiepim/core/opimevent.cpp +++ b/libopie2/opiepim/core/opimevent.cpp | |||
@@ -1,329 +1,329 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | Copyright (C) Stefan Eilers <Eilers.Stefan@epost.de> | 3 | Copyright (C) Stefan Eilers <Eilers.Stefan@epost.de> |
4 | =. Copyright (C) The Opie Team <opie-devel@handhelds.org> | 4 | =. Copyright (C) The Opie Team <opie-devel@handhelds.org> |
5 | .=l. | 5 | .=l. |
6 | .>+-= | 6 | .>+-= |
7 | _;:, .> :=|. This program is free software; you can | 7 | _;:, .> :=|. This program is free software; you can |
8 | .> <`_, > . <= redistribute it and/or modify it under | 8 | .> <`_, > . <= redistribute it and/or modify it under |
9 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 9 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
10 | .="- .-=="i, .._ License as published by the Free Software | 10 | .="- .-=="i, .._ License as published by the Free Software |
11 | - . .-<_> .<> Foundation; either version 2 of the License, | 11 | - . .-<_> .<> Foundation; either version 2 of the License, |
12 | ._= =} : or (at your option) any later version. | 12 | ._= =} : or (at your option) any later version. |
13 | .%`+i> _;_. | 13 | .%`+i> _;_. |
14 | .i_,=:_. -<s. This program is distributed in the hope that | 14 | .i_,=:_. -<s. This program is distributed in the hope that |
15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
16 | : .. .:, . . . without even the implied warranty of | 16 | : .. .:, . . . without even the implied warranty of |
17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
19 | ..}^=.= = ; Library General Public License for more | 19 | ..}^=.= = ; Library General Public License for more |
20 | ++= -. .` .: details. | 20 | ++= -. .` .: details. |
21 | : = ...= . :.=- | 21 | : = ...= . :.=- |
22 | -. .:....=;==+<; You should have received a copy of the GNU | 22 | -. .:....=;==+<; You should have received a copy of the GNU |
23 | -_. . . )=. = Library General Public License along with | 23 | -_. . . )=. = Library General Public License along with |
24 | -- :-=` this library; see the file COPYING.LIB. | 24 | -- :-=` this library; see the file COPYING.LIB. |
25 | If not, write to the Free Software Foundation, | 25 | If not, write to the Free Software Foundation, |
26 | Inc., 59 Temple Place - Suite 330, | 26 | Inc., 59 Temple Place - Suite 330, |
27 | Boston, MA 02111-1307, USA. | 27 | Boston, MA 02111-1307, USA. |
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include "opimevent.h" | 30 | #include "opimevent.h" |
31 | 31 | ||
32 | /* OPIE */ | 32 | /* OPIE */ |
33 | #include <opie2/opimrecurrence.h> | 33 | #include <opie2/opimrecurrence.h> |
34 | #include <opie2/opimresolver.h> | 34 | #include <opie2/opimresolver.h> |
35 | #include <opie2/opimnotifymanager.h> | 35 | #include <opie2/opimnotifymanager.h> |
36 | #include <opie2/odebug.h> | 36 | #include <opie2/odebug.h> |
37 | 37 | ||
38 | #include <qpe/categories.h> | 38 | #include <qpe/categories.h> |
39 | #include <qpe/stringutil.h> | 39 | #include <qpe/stringutil.h> |
40 | 40 | ||
41 | /* QT */ | 41 | /* QT */ |
42 | 42 | ||
43 | namespace Opie | 43 | namespace Opie |
44 | { | 44 | { |
45 | 45 | ||
46 | int OCalendarHelper::week( const QDate& date ) | 46 | int OCalendarHelper::week( const QDate& date ) |
47 | { | 47 | { |
48 | // Calculates the week this date is in within that | 48 | // Calculates the week this date is in within that |
49 | // month. Equals the "row" is is in in the month view | 49 | // month. Equals the "row" is is in in the month view |
50 | int week = 1; | 50 | int week = 1; |
51 | QDate tmp( date.year(), date.month(), 1 ); | 51 | QDate tmp( date.year(), date.month(), 1 ); |
52 | if ( date.dayOfWeek() < tmp.dayOfWeek() ) | 52 | if ( date.dayOfWeek() < tmp.dayOfWeek() ) |
53 | ++week; | 53 | ++week; |
54 | 54 | ||
55 | week += ( date.day() - 1 ) / 7; | 55 | week += ( date.day() - 1 ) / 7; |
56 | 56 | ||
57 | return week; | 57 | return week; |
58 | } | 58 | } |
59 | 59 | ||
60 | 60 | ||
61 | int OCalendarHelper::ocurrence( const QDate& date ) | 61 | int OCalendarHelper::ocurrence( const QDate& date ) |
62 | { | 62 | { |
63 | // calculates the number of occurrances of this day of the | 63 | // calculates the number of occurrances of this day of the |
64 | // week till the given date (e.g 3rd Wednesday of the month) | 64 | // week till the given date (e.g 3rd Wednesday of the month) |
65 | return ( date.day() - 1 ) / 7 + 1; | 65 | return ( date.day() - 1 ) / 7 + 1; |
66 | } | 66 | } |
67 | 67 | ||
68 | 68 | ||
69 | int OCalendarHelper::dayOfWeek( char day ) | 69 | int OCalendarHelper::dayOfWeek( char day ) |
70 | { | 70 | { |
71 | int dayOfWeek = 1; | 71 | int dayOfWeek = 1; |
72 | char i = OPimRecurrence::MON; | 72 | char i = OPimRecurrence::MON; |
73 | while ( !( i & day ) && i <= OPimRecurrence::SUN ) | 73 | while ( !( i & day ) && i <= static_cast<char>(OPimRecurrence::SUN) ) |
74 | { | 74 | { |
75 | i <<= 1; | 75 | i <<= 1; |
76 | ++dayOfWeek; | 76 | ++dayOfWeek; |
77 | } | 77 | } |
78 | return dayOfWeek; | 78 | return dayOfWeek; |
79 | } | 79 | } |
80 | 80 | ||
81 | 81 | ||
82 | int OCalendarHelper::monthDiff( const QDate& first, const QDate& second ) | 82 | int OCalendarHelper::monthDiff( const QDate& first, const QDate& second ) |
83 | { | 83 | { |
84 | return ( second.year() - first.year() ) * 12 + | 84 | return ( second.year() - first.year() ) * 12 + |
85 | second.month() - first.month(); | 85 | second.month() - first.month(); |
86 | } | 86 | } |
87 | 87 | ||
88 | 88 | ||
89 | struct OPimEvent::Data : public QShared | 89 | struct OPimEvent::Data : public QShared |
90 | { | 90 | { |
91 | Data() : QShared() | 91 | Data() : QShared() |
92 | { | 92 | { |
93 | child = 0; | 93 | child = 0; |
94 | recur = 0; | 94 | recur = 0; |
95 | manager = 0; | 95 | manager = 0; |
96 | isAllDay = false; | 96 | isAllDay = false; |
97 | parent = 0; | 97 | parent = 0; |
98 | } | 98 | } |
99 | ~Data() | 99 | ~Data() |
100 | { | 100 | { |
101 | delete manager; | 101 | delete manager; |
102 | delete recur; | 102 | delete recur; |
103 | } | 103 | } |
104 | QString description; | 104 | QString description; |
105 | QString location; | 105 | QString location; |
106 | OPimNotifyManager* manager; | 106 | OPimNotifyManager* manager; |
107 | OPimRecurrence* recur; | 107 | OPimRecurrence* recur; |
108 | QString note; | 108 | QString note; |
109 | QDateTime created; | 109 | QDateTime created; |
110 | QDateTime start; | 110 | QDateTime start; |
111 | QDateTime end; | 111 | QDateTime end; |
112 | bool isAllDay : 1; | 112 | bool isAllDay : 1; |
113 | QString timezone; | 113 | QString timezone; |
114 | QArray<int>* child; | 114 | QArray<int>* child; |
115 | int parent; | 115 | int parent; |
116 | }; | 116 | }; |
117 | 117 | ||
118 | 118 | ||
119 | OPimEvent::OPimEvent( int uid ) | 119 | OPimEvent::OPimEvent( int uid ) |
120 | : OPimRecord( uid ) | 120 | : OPimRecord( uid ) |
121 | { | 121 | { |
122 | data = new Data; | 122 | data = new Data; |
123 | } | 123 | } |
124 | 124 | ||
125 | 125 | ||
126 | OPimEvent::OPimEvent( const OPimEvent& ev ) | 126 | OPimEvent::OPimEvent( const OPimEvent& ev ) |
127 | : OPimRecord( ev ), data( ev.data ) | 127 | : OPimRecord( ev ), data( ev.data ) |
128 | { | 128 | { |
129 | data->ref(); | 129 | data->ref(); |
130 | } | 130 | } |
131 | 131 | ||
132 | 132 | ||
133 | OPimEvent::OPimEvent( const QMap<int, QString> map ) | 133 | OPimEvent::OPimEvent( const QMap<int, QString> map ) |
134 | : OPimRecord( 0 ) | 134 | : OPimRecord( 0 ) |
135 | { | 135 | { |
136 | data = new Data; | 136 | data = new Data; |
137 | 137 | ||
138 | fromMap( map ); | 138 | fromMap( map ); |
139 | } | 139 | } |
140 | 140 | ||
141 | 141 | ||
142 | OPimEvent::~OPimEvent() | 142 | OPimEvent::~OPimEvent() |
143 | { | 143 | { |
144 | if ( data->deref() ) | 144 | if ( data->deref() ) |
145 | { | 145 | { |
146 | delete data; | 146 | delete data; |
147 | data = 0; | 147 | data = 0; |
148 | } | 148 | } |
149 | } | 149 | } |
150 | 150 | ||
151 | 151 | ||
152 | OPimEvent& OPimEvent::operator=( const OPimEvent& ev ) | 152 | OPimEvent& OPimEvent::operator=( const OPimEvent& ev ) |
153 | { | 153 | { |
154 | if ( this == &ev ) return * this; | 154 | if ( this == &ev ) return * this; |
155 | 155 | ||
156 | OPimRecord::operator=( ev ); | 156 | OPimRecord::operator=( ev ); |
157 | ev.data->ref(); | 157 | ev.data->ref(); |
158 | deref(); | 158 | deref(); |
159 | data = ev.data; | 159 | data = ev.data; |
160 | 160 | ||
161 | 161 | ||
162 | return *this; | 162 | return *this; |
163 | } | 163 | } |
164 | 164 | ||
165 | 165 | ||
166 | QString OPimEvent::description() const | 166 | QString OPimEvent::description() const |
167 | { | 167 | { |
168 | return data->description; | 168 | return data->description; |
169 | } | 169 | } |
170 | 170 | ||
171 | 171 | ||
172 | void OPimEvent::setDescription( const QString& description ) | 172 | void OPimEvent::setDescription( const QString& description ) |
173 | { | 173 | { |
174 | changeOrModify(); | 174 | changeOrModify(); |
175 | data->description = description; | 175 | data->description = description; |
176 | } | 176 | } |
177 | 177 | ||
178 | 178 | ||
179 | void OPimEvent::setLocation( const QString& loc ) | 179 | void OPimEvent::setLocation( const QString& loc ) |
180 | { | 180 | { |
181 | changeOrModify(); | 181 | changeOrModify(); |
182 | data->location = loc; | 182 | data->location = loc; |
183 | } | 183 | } |
184 | 184 | ||
185 | 185 | ||
186 | QString OPimEvent::location() const | 186 | QString OPimEvent::location() const |
187 | { | 187 | { |
188 | return data->location; | 188 | return data->location; |
189 | } | 189 | } |
190 | 190 | ||
191 | 191 | ||
192 | OPimNotifyManager &OPimEvent::notifiers() const | 192 | OPimNotifyManager &OPimEvent::notifiers() const |
193 | { | 193 | { |
194 | // I hope we can skip the changeOrModify here | 194 | // I hope we can skip the changeOrModify here |
195 | // the notifier should take care of it | 195 | // the notifier should take care of it |
196 | // and OPimNotify is shared too | 196 | // and OPimNotify is shared too |
197 | if ( !data->manager ) | 197 | if ( !data->manager ) |
198 | data->manager = new OPimNotifyManager; | 198 | data->manager = new OPimNotifyManager; |
199 | 199 | ||
200 | return *data->manager; | 200 | return *data->manager; |
201 | } | 201 | } |
202 | 202 | ||
203 | 203 | ||
204 | bool OPimEvent::hasNotifiers() const | 204 | bool OPimEvent::hasNotifiers() const |
205 | { | 205 | { |
206 | if ( !data->manager ) | 206 | if ( !data->manager ) |
207 | return false; | 207 | return false; |
208 | if ( data->manager->reminders().isEmpty() && | 208 | if ( data->manager->reminders().isEmpty() && |
209 | data->manager->alarms().isEmpty() ) | 209 | data->manager->alarms().isEmpty() ) |
210 | return false; | 210 | return false; |
211 | 211 | ||
212 | return true; | 212 | return true; |
213 | } | 213 | } |
214 | 214 | ||
215 | 215 | ||
216 | OPimRecurrence OPimEvent::recurrence() const | 216 | OPimRecurrence OPimEvent::recurrence() const |
217 | { | 217 | { |
218 | if ( !data->recur ) | 218 | if ( !data->recur ) |
219 | data->recur = new OPimRecurrence; | 219 | data->recur = new OPimRecurrence; |
220 | 220 | ||
221 | return *data->recur; | 221 | return *data->recur; |
222 | } | 222 | } |
223 | 223 | ||
224 | 224 | ||
225 | void OPimEvent::setRecurrence( const OPimRecurrence& rec ) | 225 | void OPimEvent::setRecurrence( const OPimRecurrence& rec ) |
226 | { | 226 | { |
227 | changeOrModify(); | 227 | changeOrModify(); |
228 | if ( data->recur ) | 228 | if ( data->recur ) |
229 | ( *data->recur ) = rec; | 229 | ( *data->recur ) = rec; |
230 | else | 230 | else |
231 | data->recur = new OPimRecurrence( rec ); | 231 | data->recur = new OPimRecurrence( rec ); |
232 | } | 232 | } |
233 | 233 | ||
234 | 234 | ||
235 | bool OPimEvent::hasRecurrence() const | 235 | bool OPimEvent::hasRecurrence() const |
236 | { | 236 | { |
237 | if ( !data->recur ) return false; | 237 | if ( !data->recur ) return false; |
238 | return data->recur->doesRecur(); | 238 | return data->recur->doesRecur(); |
239 | } | 239 | } |
240 | 240 | ||
241 | 241 | ||
242 | QString OPimEvent::note() const | 242 | QString OPimEvent::note() const |
243 | { | 243 | { |
244 | return data->note; | 244 | return data->note; |
245 | } | 245 | } |
246 | 246 | ||
247 | 247 | ||
248 | void OPimEvent::setNote( const QString& note ) | 248 | void OPimEvent::setNote( const QString& note ) |
249 | { | 249 | { |
250 | changeOrModify(); | 250 | changeOrModify(); |
251 | data->note = note; | 251 | data->note = note; |
252 | } | 252 | } |
253 | 253 | ||
254 | 254 | ||
255 | QDateTime OPimEvent::createdDateTime() const | 255 | QDateTime OPimEvent::createdDateTime() const |
256 | { | 256 | { |
257 | return data->created; | 257 | return data->created; |
258 | } | 258 | } |
259 | 259 | ||
260 | 260 | ||
261 | void OPimEvent::setCreatedDateTime( const QDateTime& time ) | 261 | void OPimEvent::setCreatedDateTime( const QDateTime& time ) |
262 | { | 262 | { |
263 | changeOrModify(); | 263 | changeOrModify(); |
264 | data->created = time; | 264 | data->created = time; |
265 | } | 265 | } |
266 | 266 | ||
267 | 267 | ||
268 | QDateTime OPimEvent::startDateTime() const | 268 | QDateTime OPimEvent::startDateTime() const |
269 | { | 269 | { |
270 | if ( data->isAllDay ) | 270 | if ( data->isAllDay ) |
271 | return QDateTime( data->start.date(), QTime( 0, 0, 0 ) ); | 271 | return QDateTime( data->start.date(), QTime( 0, 0, 0 ) ); |
272 | return data->start; | 272 | return data->start; |
273 | } | 273 | } |
274 | 274 | ||
275 | 275 | ||
276 | QDateTime OPimEvent::startDateTimeInZone() const | 276 | QDateTime OPimEvent::startDateTimeInZone() const |
277 | { | 277 | { |
278 | /* if no timezone, or all day event or if the current and this timeZone match... */ | 278 | /* if no timezone, or all day event or if the current and this timeZone match... */ |
279 | if ( data->timezone.isEmpty() || data->isAllDay || data->timezone == OPimTimeZone::current().timeZone() ) return startDateTime(); | 279 | if ( data->timezone.isEmpty() || data->isAllDay || data->timezone == OPimTimeZone::current().timeZone() ) return startDateTime(); |
280 | 280 | ||
281 | OPimTimeZone zone( data->timezone ); | 281 | OPimTimeZone zone( data->timezone ); |
282 | return zone.toDateTime( data->start, OPimTimeZone::current() ); | 282 | return zone.toDateTime( data->start, OPimTimeZone::current() ); |
283 | } | 283 | } |
284 | 284 | ||
285 | 285 | ||
286 | void OPimEvent::setStartDateTime( const QDateTime& dt ) | 286 | void OPimEvent::setStartDateTime( const QDateTime& dt ) |
287 | { | 287 | { |
288 | changeOrModify(); | 288 | changeOrModify(); |
289 | data->start = dt; | 289 | data->start = dt; |
290 | } | 290 | } |
291 | 291 | ||
292 | 292 | ||
293 | QDateTime OPimEvent::endDateTime() const | 293 | QDateTime OPimEvent::endDateTime() const |
294 | { | 294 | { |
295 | /* | 295 | /* |
296 | * if all Day event the end time needs | 296 | * if all Day event the end time needs |
297 | * to be on the same day as the start | 297 | * to be on the same day as the start |
298 | */ | 298 | */ |
299 | if ( data->isAllDay ) { | 299 | if ( data->isAllDay ) { |
300 | QDate end = data->end.isValid() ? data->end.date() : data->start.date() ; | 300 | QDate end = data->end.isValid() ? data->end.date() : data->start.date() ; |
301 | return QDateTime( end, QTime( 23, 59, 59 ) ); | 301 | return QDateTime( end, QTime( 23, 59, 59 ) ); |
302 | } | 302 | } |
303 | return data->end; | 303 | return data->end; |
304 | } | 304 | } |
305 | 305 | ||
306 | 306 | ||
307 | QDateTime OPimEvent::endDateTimeInZone() const | 307 | QDateTime OPimEvent::endDateTimeInZone() const |
308 | { | 308 | { |
309 | /* if no timezone, or all day event or if the current and this timeZone match... */ | 309 | /* if no timezone, or all day event or if the current and this timeZone match... */ |
310 | if ( data->timezone.isEmpty() || data->isAllDay || data->timezone == OPimTimeZone::current().timeZone() ) return endDateTime(); | 310 | if ( data->timezone.isEmpty() || data->isAllDay || data->timezone == OPimTimeZone::current().timeZone() ) return endDateTime(); |
311 | 311 | ||
312 | OPimTimeZone zone( data->timezone ); | 312 | OPimTimeZone zone( data->timezone ); |
313 | return zone.toDateTime( data->end, OPimTimeZone::current() ); | 313 | return zone.toDateTime( data->end, OPimTimeZone::current() ); |
314 | } | 314 | } |
315 | 315 | ||
316 | 316 | ||
317 | void OPimEvent::setEndDateTime( const QDateTime& dt ) | 317 | void OPimEvent::setEndDateTime( const QDateTime& dt ) |
318 | { | 318 | { |
319 | changeOrModify(); | 319 | changeOrModify(); |
320 | data->end = dt; | 320 | data->end = dt; |
321 | } | 321 | } |
322 | 322 | ||
323 | 323 | ||
324 | bool OPimEvent::isMultipleDay() const | 324 | bool OPimEvent::isMultipleDay() const |
325 | { | 325 | { |
326 | return data->end.date().day() - data->start.date().day(); | 326 | return data->end.date().day() - data->start.date().day(); |
327 | } | 327 | } |
328 | 328 | ||
329 | 329 | ||
diff --git a/library/backend/event.cpp b/library/backend/event.cpp index 90860e8..abc420b 100644 --- a/library/backend/event.cpp +++ b/library/backend/event.cpp | |||
@@ -146,513 +146,513 @@ Qtopia::UidGen Event::sUidGen( Qtopia::UidGen::Qtopia ); | |||
146 | <li>\c MonthlyDay - Event occurs every n months. Event will always occur in | 146 | <li>\c MonthlyDay - Event occurs every n months. Event will always occur in |
147 | the same week and same day of week as the first event. | 147 | the same week and same day of week as the first event. |
148 | <li>\c MonthlyDate - Event occurs every n months. Event will always occur | 148 | <li>\c MonthlyDate - Event occurs every n months. Event will always occur |
149 | on the same day of the month as the first event. | 149 | on the same day of the month as the first event. |
150 | <li>\c Yearly - Event occurs every n years. | 150 | <li>\c Yearly - Event occurs every n years. |
151 | </ul> | 151 | </ul> |
152 | */ | 152 | */ |
153 | 153 | ||
154 | /*! | 154 | /*! |
155 | \fn bool Event::isAllDay() const | 155 | \fn bool Event::isAllDay() const |
156 | 156 | ||
157 | Returns TRUE if the event is an all day event. Otherwise returns FALSE. | 157 | Returns TRUE if the event is an all day event. Otherwise returns FALSE. |
158 | */ | 158 | */ |
159 | 159 | ||
160 | /*! | 160 | /*! |
161 | \fn void Event::setAllDay(bool allday) | 161 | \fn void Event::setAllDay(bool allday) |
162 | 162 | ||
163 | If \a allday is TRUE, will set the event to be an all day event. | 163 | If \a allday is TRUE, will set the event to be an all day event. |
164 | Otherwise sets the event to not be an all day event. | 164 | Otherwise sets the event to not be an all day event. |
165 | 165 | ||
166 | \warning This function may affect the start and end times of the event. | 166 | \warning This function may affect the start and end times of the event. |
167 | */ | 167 | */ |
168 | 168 | ||
169 | /*! | 169 | /*! |
170 | \fn QDateTime Event::start(bool) const | 170 | \fn QDateTime Event::start(bool) const |
171 | 171 | ||
172 | Returns the start date and time of the first occurance of the event. | 172 | Returns the start date and time of the first occurance of the event. |
173 | */ | 173 | */ |
174 | 174 | ||
175 | /*! | 175 | /*! |
176 | \fn QDateTime Event::end(bool) const | 176 | \fn QDateTime Event::end(bool) const |
177 | 177 | ||
178 | Returns the end date and time of the first occurance of the event. | 178 | Returns the end date and time of the first occurance of the event. |
179 | */ | 179 | */ |
180 | 180 | ||
181 | /*! | 181 | /*! |
182 | \fn time_t Event::startTime() const | 182 | \fn time_t Event::startTime() const |
183 | \internal | 183 | \internal |
184 | */ | 184 | */ |
185 | 185 | ||
186 | /*! | 186 | /*! |
187 | \fn time_t Event::endTime() const | 187 | \fn time_t Event::endTime() const |
188 | \internal | 188 | \internal |
189 | */ | 189 | */ |
190 | 190 | ||
191 | /*! | 191 | /*! |
192 | \fn void Event::setAlarm(int delay, SoundTypeChoice s) | 192 | \fn void Event::setAlarm(int delay, SoundTypeChoice s) |
193 | 193 | ||
194 | Sets the alarm delay of the event to \a delay and the sound type of the | 194 | Sets the alarm delay of the event to \a delay and the sound type of the |
195 | alarm to \a s. | 195 | alarm to \a s. |
196 | */ | 196 | */ |
197 | 197 | ||
198 | /*! | 198 | /*! |
199 | \fn void Event::clearAlarm() | 199 | \fn void Event::clearAlarm() |
200 | 200 | ||
201 | Clears the alarm for the event. | 201 | Clears the alarm for the event. |
202 | */ | 202 | */ |
203 | 203 | ||
204 | /*! | 204 | /*! |
205 | \fn int Event::alarmDelay() const | 205 | \fn int Event::alarmDelay() const |
206 | 206 | ||
207 | Returns the delay in minutes between the alarm for an event and the | 207 | Returns the delay in minutes between the alarm for an event and the |
208 | start of the event. | 208 | start of the event. |
209 | */ | 209 | */ |
210 | 210 | ||
211 | /*! | 211 | /*! |
212 | \fn Event::RepeatType Event::repeatType() const | 212 | \fn Event::RepeatType Event::repeatType() const |
213 | 213 | ||
214 | Returns the repeat pattern type for the event. | 214 | Returns the repeat pattern type for the event. |
215 | 215 | ||
216 | \sa frequency() | 216 | \sa frequency() |
217 | */ | 217 | */ |
218 | 218 | ||
219 | /*! | 219 | /*! |
220 | \fn int Event::weekOffset() const | 220 | \fn int Event::weekOffset() const |
221 | 221 | ||
222 | Returns the number of weeks from the start of the month that this event | 222 | Returns the number of weeks from the start of the month that this event |
223 | occurs. | 223 | occurs. |
224 | */ | 224 | */ |
225 | 225 | ||
226 | /*! | 226 | /*! |
227 | \fn QDate Event::repeatTill() const | 227 | \fn QDate Event::repeatTill() const |
228 | 228 | ||
229 | Returns the date that the event will continue to repeat until. If the event | 229 | Returns the date that the event will continue to repeat until. If the event |
230 | repeats forever the value returned is undefined. | 230 | repeats forever the value returned is undefined. |
231 | 231 | ||
232 | \sa repeatForever() | 232 | \sa repeatForever() |
233 | */ | 233 | */ |
234 | 234 | ||
235 | /*! | 235 | /*! |
236 | \fn bool Event::repeatForever() const | 236 | \fn bool Event::repeatForever() const |
237 | 237 | ||
238 | Returns FALSE if there is a date set for the event to continue until. | 238 | Returns FALSE if there is a date set for the event to continue until. |
239 | Otherwise returns TRUE. | 239 | Otherwise returns TRUE. |
240 | */ | 240 | */ |
241 | 241 | ||
242 | /*! | 242 | /*! |
243 | \fn bool Event::doRepeat() const | 243 | \fn bool Event::doRepeat() const |
244 | \internal | 244 | \internal |
245 | */ | 245 | */ |
246 | 246 | ||
247 | /*! | 247 | /*! |
248 | \fn bool Event::repeatOnWeekDay(int day) const | 248 | \fn bool Event::repeatOnWeekDay(int day) const |
249 | 249 | ||
250 | Returns TRUE if the event has a RepeatType of Weekly and is set to occur on | 250 | Returns TRUE if the event has a RepeatType of Weekly and is set to occur on |
251 | \a day each week. Otherwise returns FALSE. | 251 | \a day each week. Otherwise returns FALSE. |
252 | 252 | ||
253 | \sa QDate::dayName() | 253 | \sa QDate::dayName() |
254 | */ | 254 | */ |
255 | 255 | ||
256 | /*! | 256 | /*! |
257 | \fn void Event::setRepeatOnWeekDay(int day, bool enable) | 257 | \fn void Event::setRepeatOnWeekDay(int day, bool enable) |
258 | 258 | ||
259 | If \a enable is TRUE then sets the event to occur on \a day each week. | 259 | If \a enable is TRUE then sets the event to occur on \a day each week. |
260 | Otherwise sets the event not to occur on \a day. | 260 | Otherwise sets the event not to occur on \a day. |
261 | 261 | ||
262 | \warning this function is only relavent for a event with RepeatType of | 262 | \warning this function is only relavent for a event with RepeatType of |
263 | Weekly. | 263 | Weekly. |
264 | 264 | ||
265 | \sa QDate::dayName() | 265 | \sa QDate::dayName() |
266 | */ | 266 | */ |
267 | 267 | ||
268 | /*! | 268 | /*! |
269 | \fn int Event::frequency() const | 269 | \fn int Event::frequency() const |
270 | 270 | ||
271 | Returns how often the event repeats. | 271 | Returns how often the event repeats. |
272 | 272 | ||
273 | \sa repeatType() | 273 | \sa repeatType() |
274 | */ | 274 | */ |
275 | 275 | ||
276 | /*! | 276 | /*! |
277 | \fn void Event::setRepeatType(RepeatType t) | 277 | \fn void Event::setRepeatType(RepeatType t) |
278 | 278 | ||
279 | Sets the repeat pattern type of the event to \a t. | 279 | Sets the repeat pattern type of the event to \a t. |
280 | 280 | ||
281 | \sa setFrequency() | 281 | \sa setFrequency() |
282 | */ | 282 | */ |
283 | 283 | ||
284 | /*! | 284 | /*! |
285 | \fn void Event::setFrequency(int n) | 285 | \fn void Event::setFrequency(int n) |
286 | 286 | ||
287 | Sets how often the event occurs with in its repeat pattern. | 287 | Sets how often the event occurs with in its repeat pattern. |
288 | 288 | ||
289 | \sa setRepeatType() | 289 | \sa setRepeatType() |
290 | */ | 290 | */ |
291 | 291 | ||
292 | /*! | 292 | /*! |
293 | \fn void Event::setRepeatTill(const QDate &d) | 293 | \fn void Event::setRepeatTill(const QDate &d) |
294 | 294 | ||
295 | Sets the event to repeat until \a d. | 295 | Sets the event to repeat until \a d. |
296 | */ | 296 | */ |
297 | 297 | ||
298 | /*! | 298 | /*! |
299 | \fn void Event::setRepeatForever(bool enable) | 299 | \fn void Event::setRepeatForever(bool enable) |
300 | 300 | ||
301 | If \a enable is TRUE, sets the event to repeat forever. Otherwise | 301 | If \a enable is TRUE, sets the event to repeat forever. Otherwise |
302 | sets the event to stop repeating at some date. | 302 | sets the event to stop repeating at some date. |
303 | 303 | ||
304 | \warning This function may affect the specific date the event will repeat | 304 | \warning This function may affect the specific date the event will repeat |
305 | till. | 305 | till. |
306 | */ | 306 | */ |
307 | 307 | ||
308 | /*! | 308 | /*! |
309 | \fn bool Event::match(const QRegExp &r) const | 309 | \fn bool Event::match(const QRegExp &r) const |
310 | 310 | ||
311 | Returns TRUE if the event matches the regular expression \a r. | 311 | Returns TRUE if the event matches the regular expression \a r. |
312 | Otherwise returns FALSE. | 312 | Otherwise returns FALSE. |
313 | */ | 313 | */ |
314 | 314 | ||
315 | /*! | 315 | /*! |
316 | \fn char Event::day(int) | 316 | \fn char Event::day(int) |
317 | \internal | 317 | \internal |
318 | */ | 318 | */ |
319 | 319 | ||
320 | /*! | 320 | /*! |
321 | Creates a new, empty event. | 321 | Creates a new, empty event. |
322 | */ | 322 | */ |
323 | Event::Event() : Record() | 323 | Event::Event() : Record() |
324 | { | 324 | { |
325 | startUTC = endUTC = time( 0 ); | 325 | startUTC = endUTC = time( 0 ); |
326 | typ = Normal; | 326 | typ = Normal; |
327 | hAlarm = FALSE; | 327 | hAlarm = FALSE; |
328 | hRepeat = FALSE; | 328 | hRepeat = FALSE; |
329 | aMinutes = 0; | 329 | aMinutes = 0; |
330 | aSound = Silent; | 330 | aSound = Silent; |
331 | pattern.type = NoRepeat; | 331 | pattern.type = NoRepeat; |
332 | pattern.frequency = -1; | 332 | pattern.frequency = -1; |
333 | } | 333 | } |
334 | 334 | ||
335 | /*! | 335 | /*! |
336 | \internal | 336 | \internal |
337 | */ | 337 | */ |
338 | Event::Event( const QMap<int, QString> &map ) | 338 | Event::Event( const QMap<int, QString> &map ) |
339 | { | 339 | { |
340 | setDescription( map[DatebookDescription] ); | 340 | setDescription( map[DatebookDescription] ); |
341 | setLocation( map[Location] ); | 341 | setLocation( map[Location] ); |
342 | setCategories( idsFromString( map[DatebookCategory] ) ); | 342 | setCategories( idsFromString( map[DatebookCategory] ) ); |
343 | setTimeZone( map[TimeZone] ); | 343 | setTimeZone( map[TimeZone] ); |
344 | setNotes( map[Note] ); | 344 | setNotes( map[Note] ); |
345 | setStart( TimeConversion::fromUTC( map[StartDateTime].toUInt() ) ); | 345 | setStart( TimeConversion::fromUTC( map[StartDateTime].toUInt() ) ); |
346 | setEnd( TimeConversion::fromUTC( map[EndDateTime].toUInt() ) ); | 346 | setEnd( TimeConversion::fromUTC( map[EndDateTime].toUInt() ) ); |
347 | setType( (Event::Type) map[DatebookType].toInt() ); | 347 | setType( (Event::Type) map[DatebookType].toInt() ); |
348 | setAlarm( ( map[HasAlarm] == "1" ? TRUE : FALSE ), map[AlarmTime].toInt(), (Event::SoundTypeChoice)map[SoundType].toInt() ); | 348 | setAlarm( ( map[HasAlarm] == "1" ? TRUE : FALSE ), map[AlarmTime].toInt(), (Event::SoundTypeChoice)map[SoundType].toInt() ); |
349 | Event::RepeatPattern p; | 349 | Event::RepeatPattern p; |
350 | p.type = (Event::RepeatType) map[ RepeatPatternType ].toInt(); | 350 | p.type = (Event::RepeatType) map[ RepeatPatternType ].toInt(); |
351 | p.frequency = map[ RepeatPatternFrequency ].toInt(); | 351 | p.frequency = map[ RepeatPatternFrequency ].toInt(); |
352 | p.position = map[ RepeatPatternPosition ].toInt(); | 352 | p.position = map[ RepeatPatternPosition ].toInt(); |
353 | p.days = map[ RepeatPatternDays ].toInt(); | 353 | p.days = map[ RepeatPatternDays ].toInt(); |
354 | p.hasEndDate = map[ RepeatPatternHasEndDate ].toInt(); | 354 | p.hasEndDate = map[ RepeatPatternHasEndDate ].toInt(); |
355 | p.endDateUTC = map[ RepeatPatternEndDate ].toUInt(); | 355 | p.endDateUTC = map[ RepeatPatternEndDate ].toUInt(); |
356 | setRepeat( p ); | 356 | setRepeat( p ); |
357 | 357 | ||
358 | setUid( map[ DatebookUid ].toInt() ); | 358 | setUid( map[ DatebookUid ].toInt() ); |
359 | } | 359 | } |
360 | 360 | ||
361 | /*! | 361 | /*! |
362 | Destroys an event. | 362 | Destroys an event. |
363 | */ | 363 | */ |
364 | Event::~Event() | 364 | Event::~Event() |
365 | { | 365 | { |
366 | } | 366 | } |
367 | 367 | ||
368 | /*! | 368 | /*! |
369 | \internal | 369 | \internal |
370 | */ | 370 | */ |
371 | int Event::week( const QDate& date ) | 371 | int Event::week( const QDate& date ) |
372 | { | 372 | { |
373 | // Calculates the week this date is in within that | 373 | // Calculates the week this date is in within that |
374 | // month. Equals the "row" is is in in the month view | 374 | // month. Equals the "row" is is in in the month view |
375 | int week = 1; | 375 | int week = 1; |
376 | QDate tmp( date.year(), date.month(), 1 ); | 376 | QDate tmp( date.year(), date.month(), 1 ); |
377 | 377 | ||
378 | if ( date.dayOfWeek() < tmp.dayOfWeek() ) | 378 | if ( date.dayOfWeek() < tmp.dayOfWeek() ) |
379 | ++week; | 379 | ++week; |
380 | 380 | ||
381 | week += ( date.day() - 1 ) / 7; | 381 | week += ( date.day() - 1 ) / 7; |
382 | return week; | 382 | return week; |
383 | } | 383 | } |
384 | 384 | ||
385 | /*! | 385 | /*! |
386 | \internal | 386 | \internal |
387 | */ | 387 | */ |
388 | int Event::occurrence( const QDate& date ) | 388 | int Event::occurrence( const QDate& date ) |
389 | { | 389 | { |
390 | // calculates the number of occurrances of this day of the | 390 | // calculates the number of occurrances of this day of the |
391 | // week till the given date (e.g 3rd Wednesday of the month) | 391 | // week till the given date (e.g 3rd Wednesday of the month) |
392 | return ( date.day() - 1 ) / 7 + 1; | 392 | return ( date.day() - 1 ) / 7 + 1; |
393 | } | 393 | } |
394 | 394 | ||
395 | /*! | 395 | /*! |
396 | \internal | 396 | \internal |
397 | */ | 397 | */ |
398 | int Event::dayOfWeek( char day ) | 398 | int Event::dayOfWeek( char day ) |
399 | { | 399 | { |
400 | int dayOfWeek = 1; | 400 | int dayOfWeek = 1; |
401 | char i = Event::MON; | 401 | char i = Event::MON; |
402 | while ( !( i & day ) && i <= Event::SUN ) { | 402 | while ( !( i & day ) && i <= static_cast<char>(Event::SUN) ) { |
403 | i <<= 1; | 403 | i <<= 1; |
404 | ++dayOfWeek; | 404 | ++dayOfWeek; |
405 | } | 405 | } |
406 | return dayOfWeek; | 406 | return dayOfWeek; |
407 | } | 407 | } |
408 | 408 | ||
409 | /*! | 409 | /*! |
410 | \internal | 410 | \internal |
411 | */ | 411 | */ |
412 | int Event::monthDiff( const QDate& first, const QDate& second ) | 412 | int Event::monthDiff( const QDate& first, const QDate& second ) |
413 | { | 413 | { |
414 | return ( second.year() - first.year() ) * 12 + | 414 | return ( second.year() - first.year() ) * 12 + |
415 | second.month() - first.month(); | 415 | second.month() - first.month(); |
416 | } | 416 | } |
417 | 417 | ||
418 | /*! | 418 | /*! |
419 | \internal | 419 | \internal |
420 | */ | 420 | */ |
421 | QMap<int, QString> Event::toMap() const | 421 | QMap<int, QString> Event::toMap() const |
422 | { | 422 | { |
423 | QMap<int, QString> m; | 423 | QMap<int, QString> m; |
424 | 424 | ||
425 | if ( !description().isEmpty() ) | 425 | if ( !description().isEmpty() ) |
426 | m.insert( DatebookDescription, description() ); | 426 | m.insert( DatebookDescription, description() ); |
427 | if ( !location().isEmpty() ) | 427 | if ( !location().isEmpty() ) |
428 | m.insert ( Location, location() ); | 428 | m.insert ( Location, location() ); |
429 | if ( categories().count() ) | 429 | if ( categories().count() ) |
430 | m.insert ( DatebookCategory, idsToString( categories() ) ); | 430 | m.insert ( DatebookCategory, idsToString( categories() ) ); |
431 | if ( !timeZone().isEmpty() ) | 431 | if ( !timeZone().isEmpty() ) |
432 | m.insert ( TimeZone, timeZone() ); | 432 | m.insert ( TimeZone, timeZone() ); |
433 | if ( !notes().isEmpty() ) | 433 | if ( !notes().isEmpty() ) |
434 | m.insert ( Note, notes() ); | 434 | m.insert ( Note, notes() ); |
435 | 435 | ||
436 | m.insert ( StartDateTime, QString::number( TimeConversion::toUTC( start() ) ) ); | 436 | m.insert ( StartDateTime, QString::number( TimeConversion::toUTC( start() ) ) ); |
437 | m.insert ( EndDateTime, QString::number( TimeConversion::toUTC( end() ) ) ); | 437 | m.insert ( EndDateTime, QString::number( TimeConversion::toUTC( end() ) ) ); |
438 | m.insert ( DatebookType, QString::number( (int)type() ) ); | 438 | m.insert ( DatebookType, QString::number( (int)type() ) ); |
439 | m.insert ( HasAlarm, ( hasAlarm() ? "1" : "0" ) ); | 439 | m.insert ( HasAlarm, ( hasAlarm() ? "1" : "0" ) ); |
440 | m.insert ( SoundType, QString::number( (int)alarmSound() ) ); | 440 | m.insert ( SoundType, QString::number( (int)alarmSound() ) ); |
441 | m.insert ( AlarmTime, QString::number( alarmTime() ) ); | 441 | m.insert ( AlarmTime, QString::number( alarmTime() ) ); |
442 | m.insert ( RepeatPatternType, QString::number( static_cast<int>( repeatPattern().type ) ) ); | 442 | m.insert ( RepeatPatternType, QString::number( static_cast<int>( repeatPattern().type ) ) ); |
443 | m.insert ( RepeatPatternFrequency, QString::number( repeatPattern().frequency ) ); | 443 | m.insert ( RepeatPatternFrequency, QString::number( repeatPattern().frequency ) ); |
444 | m.insert ( RepeatPatternPosition, QString::number( repeatPattern().position ) ); | 444 | m.insert ( RepeatPatternPosition, QString::number( repeatPattern().position ) ); |
445 | m.insert ( RepeatPatternDays, QString::number( repeatPattern().days ) ); | 445 | m.insert ( RepeatPatternDays, QString::number( repeatPattern().days ) ); |
446 | m.insert ( RepeatPatternHasEndDate, QString::number( static_cast<int>( repeatPattern().hasEndDate ) ) ); | 446 | m.insert ( RepeatPatternHasEndDate, QString::number( static_cast<int>( repeatPattern().hasEndDate ) ) ); |
447 | m.insert ( RepeatPatternEndDate, QString::number( repeatPattern().endDateUTC ) ); | 447 | m.insert ( RepeatPatternEndDate, QString::number( repeatPattern().endDateUTC ) ); |
448 | 448 | ||
449 | m.insert( DatebookUid, QString::number( uid()) ); | 449 | m.insert( DatebookUid, QString::number( uid()) ); |
450 | 450 | ||
451 | return m; | 451 | return m; |
452 | } | 452 | } |
453 | 453 | ||
454 | /*! | 454 | /*! |
455 | \internal | 455 | \internal |
456 | */ | 456 | */ |
457 | void Event::setRepeat( const RepeatPattern &p ) | 457 | void Event::setRepeat( const RepeatPattern &p ) |
458 | { | 458 | { |
459 | setRepeat( p.type != NoRepeat, p ); | 459 | setRepeat( p.type != NoRepeat, p ); |
460 | } | 460 | } |
461 | 461 | ||
462 | /*! | 462 | /*! |
463 | Sets the description of the event to \a s. | 463 | Sets the description of the event to \a s. |
464 | */ | 464 | */ |
465 | void Event::setDescription( const QString &s ) | 465 | void Event::setDescription( const QString &s ) |
466 | { | 466 | { |
467 | descript = s; | 467 | descript = s; |
468 | } | 468 | } |
469 | 469 | ||
470 | /*! | 470 | /*! |
471 | Sets the location of the event to \a s. | 471 | Sets the location of the event to \a s. |
472 | */ | 472 | */ |
473 | void Event::setLocation( const QString &s ) | 473 | void Event::setLocation( const QString &s ) |
474 | { | 474 | { |
475 | locat = s; | 475 | locat = s; |
476 | } | 476 | } |
477 | 477 | ||
478 | // void Event::setCategory( const QString &s ) | 478 | // void Event::setCategory( const QString &s ) |
479 | // { | 479 | // { |
480 | // categ = s; | 480 | // categ = s; |
481 | // } | 481 | // } |
482 | 482 | ||
483 | /*! | 483 | /*! |
484 | \internal | 484 | \internal |
485 | */ | 485 | */ |
486 | void Event::setType( Type t ) | 486 | void Event::setType( Type t ) |
487 | { | 487 | { |
488 | typ = t; | 488 | typ = t; |
489 | } | 489 | } |
490 | 490 | ||
491 | /*! | 491 | /*! |
492 | Sets the start date and time of the first or only occurance of this event | 492 | Sets the start date and time of the first or only occurance of this event |
493 | to the date and time \a d. \a d should be in local time. | 493 | to the date and time \a d. \a d should be in local time. |
494 | */ | 494 | */ |
495 | void Event::setStart( const QDateTime &d ) | 495 | void Event::setStart( const QDateTime &d ) |
496 | { | 496 | { |
497 | startUTC = TimeConversion::toUTC( d ); | 497 | startUTC = TimeConversion::toUTC( d ); |
498 | } | 498 | } |
499 | 499 | ||
500 | /*! | 500 | /*! |
501 | \internal | 501 | \internal |
502 | */ | 502 | */ |
503 | void Event::setStart( time_t time ) | 503 | void Event::setStart( time_t time ) |
504 | { | 504 | { |
505 | startUTC = time; | 505 | startUTC = time; |
506 | } | 506 | } |
507 | 507 | ||
508 | /*! | 508 | /*! |
509 | Sets the end date and time of the first or only occurance of this event | 509 | Sets the end date and time of the first or only occurance of this event |
510 | to the date and time \a d. \a d should be in local time. | 510 | to the date and time \a d. \a d should be in local time. |
511 | */ | 511 | */ |
512 | void Event::setEnd( const QDateTime &d ) | 512 | void Event::setEnd( const QDateTime &d ) |
513 | { | 513 | { |
514 | endUTC = TimeConversion::toUTC( d ); | 514 | endUTC = TimeConversion::toUTC( d ); |
515 | } | 515 | } |
516 | 516 | ||
517 | /*! | 517 | /*! |
518 | \internal | 518 | \internal |
519 | */ | 519 | */ |
520 | void Event::setEnd( time_t time ) | 520 | void Event::setEnd( time_t time ) |
521 | { | 521 | { |
522 | endUTC = time; | 522 | endUTC = time; |
523 | } | 523 | } |
524 | 524 | ||
525 | /*! | 525 | /*! |
526 | \internal | 526 | \internal |
527 | */ | 527 | */ |
528 | void Event::setTimeZone( const QString &z ) | 528 | void Event::setTimeZone( const QString &z ) |
529 | { | 529 | { |
530 | tz = z; | 530 | tz = z; |
531 | } | 531 | } |
532 | 532 | ||
533 | /*! | 533 | /*! |
534 | \internal | 534 | \internal |
535 | */ | 535 | */ |
536 | void Event::setAlarm( bool b, int minutes, SoundTypeChoice s ) | 536 | void Event::setAlarm( bool b, int minutes, SoundTypeChoice s ) |
537 | { | 537 | { |
538 | hAlarm = b; | 538 | hAlarm = b; |
539 | aMinutes = minutes; | 539 | aMinutes = minutes; |
540 | aSound = s; | 540 | aSound = s; |
541 | } | 541 | } |
542 | 542 | ||
543 | /*! | 543 | /*! |
544 | \internal | 544 | \internal |
545 | */ | 545 | */ |
546 | void Event::setRepeat( bool b, const RepeatPattern &p ) | 546 | void Event::setRepeat( bool b, const RepeatPattern &p ) |
547 | { | 547 | { |
548 | hRepeat = b; | 548 | hRepeat = b; |
549 | pattern = p; | 549 | pattern = p; |
550 | } | 550 | } |
551 | 551 | ||
552 | /*! | 552 | /*! |
553 | Sets the notes for the event to \a n. | 553 | Sets the notes for the event to \a n. |
554 | */ | 554 | */ |
555 | void Event::setNotes( const QString &n ) | 555 | void Event::setNotes( const QString &n ) |
556 | { | 556 | { |
557 | note = n; | 557 | note = n; |
558 | } | 558 | } |
559 | 559 | ||
560 | /*! | 560 | /*! |
561 | Returns the description of the event. | 561 | Returns the description of the event. |
562 | */ | 562 | */ |
563 | const QString &Event::description() const | 563 | const QString &Event::description() const |
564 | { | 564 | { |
565 | return descript; | 565 | return descript; |
566 | } | 566 | } |
567 | 567 | ||
568 | /*! | 568 | /*! |
569 | Returns the location of the event. | 569 | Returns the location of the event. |
570 | */ | 570 | */ |
571 | const QString &Event::location() const | 571 | const QString &Event::location() const |
572 | { | 572 | { |
573 | return locat; | 573 | return locat; |
574 | } | 574 | } |
575 | 575 | ||
576 | // QString Event::category() const | 576 | // QString Event::category() const |
577 | // { | 577 | // { |
578 | // return categ; | 578 | // return categ; |
579 | // } | 579 | // } |
580 | 580 | ||
581 | /*! | 581 | /*! |
582 | \internal | 582 | \internal |
583 | */ | 583 | */ |
584 | Event::Type Event::type() const | 584 | Event::Type Event::type() const |
585 | { | 585 | { |
586 | return typ; | 586 | return typ; |
587 | } | 587 | } |
588 | /* | 588 | /* |
589 | QDateTime Event::start() const { | 589 | QDateTime Event::start() const { |
590 | return start( TRUE ); | 590 | return start( TRUE ); |
591 | } | 591 | } |
592 | */ | 592 | */ |
593 | /*! | 593 | /*! |
594 | \internal | 594 | \internal |
595 | */ | 595 | */ |
596 | QDateTime Event::start( bool actual ) const | 596 | QDateTime Event::start( bool actual ) const |
597 | { | 597 | { |
598 | QDateTime dt = TimeConversion::fromUTC( startUTC ); | 598 | QDateTime dt = TimeConversion::fromUTC( startUTC ); |
599 | 599 | ||
600 | if ( actual && typ == AllDay ) { | 600 | if ( actual && typ == AllDay ) { |
601 | QTime t = dt.time(); | 601 | QTime t = dt.time(); |
602 | t.setHMS( 0, 0, 0 ); | 602 | t.setHMS( 0, 0, 0 ); |
603 | dt.setTime( t ); | 603 | dt.setTime( t ); |
604 | } | 604 | } |
605 | return dt; | 605 | return dt; |
606 | } | 606 | } |
607 | /* | 607 | /* |
608 | QDateTime Event::end() const { | 608 | QDateTime Event::end() const { |
609 | return end( TRUE ); | 609 | return end( TRUE ); |
610 | } | 610 | } |
611 | */ | 611 | */ |
612 | /*! | 612 | /*! |
613 | \internal | 613 | \internal |
614 | */ | 614 | */ |
615 | QDateTime Event::end( bool actual ) const | 615 | QDateTime Event::end( bool actual ) const |
616 | { | 616 | { |
617 | QDateTime dt = TimeConversion::fromUTC( endUTC ); | 617 | QDateTime dt = TimeConversion::fromUTC( endUTC ); |
618 | if ( actual && typ == AllDay ) { | 618 | if ( actual && typ == AllDay ) { |
619 | dt.setTime( QTime(23,59,59) ); | 619 | dt.setTime( QTime(23,59,59) ); |
620 | } | 620 | } |
621 | return dt; | 621 | return dt; |
622 | } | 622 | } |
623 | 623 | ||
624 | /*! | 624 | /*! |
625 | \internal | 625 | \internal |
626 | */ | 626 | */ |
627 | const QString &Event::timeZone() const | 627 | const QString &Event::timeZone() const |
628 | { | 628 | { |
629 | return tz; | 629 | return tz; |
630 | } | 630 | } |
631 | 631 | ||
632 | /*! | 632 | /*! |
633 | \internal | 633 | \internal |
634 | */ | 634 | */ |
635 | bool Event::hasAlarm() const | 635 | bool Event::hasAlarm() const |
636 | { | 636 | { |
637 | return hAlarm; | 637 | return hAlarm; |
638 | } | 638 | } |
639 | 639 | ||
640 | /*! | 640 | /*! |
641 | \internal | 641 | \internal |
642 | */ | 642 | */ |
643 | int Event::alarmTime() const | 643 | int Event::alarmTime() const |
644 | { | 644 | { |
645 | return aMinutes; | 645 | return aMinutes; |
646 | } | 646 | } |
647 | 647 | ||
648 | /*! | 648 | /*! |
649 | Returns the sound type for the alarm of this event. | 649 | Returns the sound type for the alarm of this event. |
650 | */ | 650 | */ |
651 | Event::SoundTypeChoice Event::alarmSound() const | 651 | Event::SoundTypeChoice Event::alarmSound() const |
652 | { | 652 | { |
653 | return aSound; | 653 | return aSound; |
654 | } | 654 | } |
655 | 655 | ||
656 | /*! | 656 | /*! |
657 | \internal | 657 | \internal |
658 | */ | 658 | */ |
diff --git a/noncore/applets/zkbapplet/keyzcfg/zkbnames.cpp b/noncore/applets/zkbapplet/keyzcfg/zkbnames.cpp index b2180ba..a47bf6c 100644 --- a/noncore/applets/zkbapplet/keyzcfg/zkbnames.cpp +++ b/noncore/applets/zkbapplet/keyzcfg/zkbnames.cpp | |||
@@ -1,442 +1,448 @@ | |||
1 | #include <qmap.h> | 1 | #include <qmap.h> |
2 | 2 | ||
3 | #include "zkbnames.h" | 3 | #include "zkbnames.h" |
4 | 4 | ||
5 | QString Null_String((const char*) 0); | 5 | QString Null_String((const char*) 0); |
6 | 6 | ||
7 | // Implementation of KeyNames | 7 | // Implementation of KeyNames |
8 | static struct { | 8 | struct Key_Names_t { |
9 | int key; | 9 | int key; |
10 | char *name; | 10 | char *name; |
11 | } Key_Names[] = { | 11 | }; |
12 | |||
13 | static const Key_Names_t Key_Names[] = { | ||
12 | { 32, "Space" }, | 14 | { 32, "Space" }, |
13 | { 39, "Apostrophe" }, | 15 | { 39, "Apostrophe" }, |
14 | { 44, "Comma" }, | 16 | { 44, "Comma" }, |
15 | { 46, "Period" }, | 17 | { 46, "Period" }, |
16 | { 47, "Slash" }, | 18 | { 47, "Slash" }, |
17 | { 65, "A" }, | 19 | { 65, "A" }, |
18 | { 66, "B" }, | 20 | { 66, "B" }, |
19 | { 67, "C" }, | 21 | { 67, "C" }, |
20 | { 68, "D" }, | 22 | { 68, "D" }, |
21 | { 69, "E" }, | 23 | { 69, "E" }, |
22 | { 70, "F" }, | 24 | { 70, "F" }, |
23 | { 71, "G" }, | 25 | { 71, "G" }, |
24 | { 72, "H" }, | 26 | { 72, "H" }, |
25 | { 73, "I" }, | 27 | { 73, "I" }, |
26 | { 74, "J" }, | 28 | { 74, "J" }, |
27 | { 75, "K" }, | 29 | { 75, "K" }, |
28 | { 76, "L" }, | 30 | { 76, "L" }, |
29 | { 77, "M" }, | 31 | { 77, "M" }, |
30 | { 78, "N" }, | 32 | { 78, "N" }, |
31 | { 79, "O" }, | 33 | { 79, "O" }, |
32 | { 80, "P" }, | 34 | { 80, "P" }, |
33 | { 81, "Q" }, | 35 | { 81, "Q" }, |
34 | { 82, "R" }, | 36 | { 82, "R" }, |
35 | { 83, "S" }, | 37 | { 83, "S" }, |
36 | { 84, "T" }, | 38 | { 84, "T" }, |
37 | { 85, "U" }, | 39 | { 85, "U" }, |
38 | { 86, "V" }, | 40 | { 86, "V" }, |
39 | { 87, "W" }, | 41 | { 87, "W" }, |
40 | { 88, "X" }, | 42 | { 88, "X" }, |
41 | { 89, "Y" }, | 43 | { 89, "Y" }, |
42 | { 90, "Z" }, | 44 | { 90, "Z" }, |
43 | { 4096, "Cancel" }, | 45 | { 4096, "Cancel" }, |
44 | { 4097, "Tab" }, | 46 | { 4097, "Tab" }, |
45 | { 4099, "Backspace" }, | 47 | { 4099, "Backspace" }, |
46 | { 4100, "Enter" }, | 48 | { 4100, "Enter" }, |
47 | { 4114, "Left" }, | 49 | { 4114, "Left" }, |
48 | { 4115, "Up" }, | 50 | { 4115, "Up" }, |
49 | { 4116, "Right" }, | 51 | { 4116, "Right" }, |
50 | { 4117, "Down" }, | 52 | { 4117, "Down" }, |
51 | { 4128, "Left Shift" }, | 53 | { 4128, "Left Shift" }, |
52 | { 4130, "Right Shift" }, | 54 | { 4130, "Right Shift" }, |
53 | { 4152, "Calendar" }, | 55 | { 4152, "Calendar" }, |
54 | { 4153, "Addressbook" }, | 56 | { 4153, "Addressbook" }, |
55 | { 4154, "Menu" }, | 57 | { 4154, "Menu" }, |
56 | { 4155, "Home" }, | 58 | { 4155, "Home" }, |
57 | { 4156, "Mail" }, | 59 | { 4156, "Mail" }, |
58 | { 4165, "Fn" }, | 60 | { 4165, "Fn" }, |
59 | { 4173, "Middle" }, | 61 | { 4173, "Middle" }, |
60 | { 4176, "OK" }, | 62 | { 4176, "OK" }, |
61 | { 4177, "Off" }, | 63 | { 4177, "Off" }, |
62 | { 4178, "Light" }, | 64 | { 4178, "Light" }, |
63 | { 0, 0 } | 65 | { 0, 0 } |
64 | }; | 66 | }; |
65 | 67 | ||
66 | static QMap<QString, int> kn_map; | 68 | static QMap<QString, int> kn_map; |
67 | static QMap<int, QString> kn_rmap; | 69 | static QMap<int, QString> kn_rmap; |
68 | 70 | ||
69 | void init_kn_maps() { | 71 | void init_kn_maps() { |
70 | int i = 0; | 72 | int i = 0; |
71 | while (Key_Names[i].name != 0) { | 73 | while (Key_Names[i].name != 0) { |
72 | int key = Key_Names[i].key; | 74 | int key = Key_Names[i].key; |
73 | QString name(Key_Names[i].name); | 75 | QString name(Key_Names[i].name); |
74 | 76 | ||
75 | kn_map.insert(name, key); | 77 | kn_map.insert(name, key); |
76 | kn_rmap.insert(key, name); | 78 | kn_rmap.insert(key, name); |
77 | i++; | 79 | i++; |
78 | } | 80 | } |
79 | } | 81 | } |
80 | 82 | ||
81 | int KeyNames::find(const QString& key) { | 83 | int KeyNames::find(const QString& key) { |
82 | if (kn_map.isEmpty()) { | 84 | if (kn_map.isEmpty()) { |
83 | init_kn_maps(); | 85 | init_kn_maps(); |
84 | } | 86 | } |
85 | 87 | ||
86 | QMap<QString, int>::Iterator it = kn_map.find(key); | 88 | QMap<QString, int>::Iterator it = kn_map.find(key); |
87 | if (it == kn_map.end()) { | 89 | if (it == kn_map.end()) { |
88 | return -1; | 90 | return -1; |
89 | } else { | 91 | } else { |
90 | return it.data(); | 92 | return it.data(); |
91 | } | 93 | } |
92 | } | 94 | } |
93 | 95 | ||
94 | const QString& KeyNames::find(int k) { | 96 | const QString& KeyNames::find(int k) { |
95 | if (kn_map.isEmpty()) { | 97 | if (kn_map.isEmpty()) { |
96 | init_kn_maps(); | 98 | init_kn_maps(); |
97 | } | 99 | } |
98 | 100 | ||
99 | QMap<int, QString>::Iterator it = kn_rmap.find(k); | 101 | QMap<int, QString>::Iterator it = kn_rmap.find(k); |
100 | if (it == kn_rmap.end()) { | 102 | if (it == kn_rmap.end()) { |
101 | return Null_String; | 103 | return Null_String; |
102 | } else { | 104 | } else { |
103 | return it.data(); | 105 | return it.data(); |
104 | } | 106 | } |
105 | } | 107 | } |
106 | 108 | ||
107 | // Implementation of ModifierNames | 109 | // Implementation of ModifierNames |
108 | struct { | 110 | struct Modifier_Names_t { |
109 | int value; | 111 | int value; |
110 | char* name; | 112 | char* name; |
111 | } Modifier_Names[] = { | 113 | }; |
114 | |||
115 | static const Modifier_Names_t Modifier_Names[] = { | ||
112 | { 8, "Shift" }, | 116 | { 8, "Shift" }, |
113 | { 16, "Control" }, | 117 | { 16, "Control" }, |
114 | { 32, "Alt" }, | 118 | { 32, "Alt" }, |
115 | { 0x4000, "Keypad" }, | 119 | { 0x4000, "Keypad" }, |
116 | { 0, 0 } | 120 | { 0, 0 } |
117 | }; | 121 | }; |
118 | 122 | ||
119 | static QMap<QString, int> mn_map; | 123 | static QMap<QString, int> mn_map; |
120 | static QMap<int, QString> mn_rmap; | 124 | static QMap<int, QString> mn_rmap; |
121 | 125 | ||
122 | void init_mn_maps() { | 126 | void init_mn_maps() { |
123 | int i = 0; | 127 | int i = 0; |
124 | while (Modifier_Names[i].name != 0) { | 128 | while (Modifier_Names[i].name != 0) { |
125 | int value = Modifier_Names[i].value; | 129 | int value = Modifier_Names[i].value; |
126 | QString name(Modifier_Names[i].name); | 130 | QString name(Modifier_Names[i].name); |
127 | 131 | ||
128 | mn_map.insert(name, value); | 132 | mn_map.insert(name, value); |
129 | mn_rmap.insert(value, name); | 133 | mn_rmap.insert(value, name); |
130 | i++; | 134 | i++; |
131 | } | 135 | } |
132 | } | 136 | } |
133 | 137 | ||
134 | int ModifierNames::find(const QString& key) { | 138 | int ModifierNames::find(const QString& key) { |
135 | if (mn_map.isEmpty()) { | 139 | if (mn_map.isEmpty()) { |
136 | init_mn_maps(); | 140 | init_mn_maps(); |
137 | } | 141 | } |
138 | 142 | ||
139 | QMap<QString, int>::Iterator it = mn_map.find(key); | 143 | QMap<QString, int>::Iterator it = mn_map.find(key); |
140 | if (it == mn_map.end()) { | 144 | if (it == mn_map.end()) { |
141 | return -1; | 145 | return -1; |
142 | } else { | 146 | } else { |
143 | return it.data(); | 147 | return it.data(); |
144 | } | 148 | } |
145 | } | 149 | } |
146 | 150 | ||
147 | const QString& ModifierNames::find(int k) { | 151 | const QString& ModifierNames::find(int k) { |
148 | if (mn_map.isEmpty()) { | 152 | if (mn_map.isEmpty()) { |
149 | init_mn_maps(); | 153 | init_mn_maps(); |
150 | } | 154 | } |
151 | 155 | ||
152 | QMap<int, QString>::Iterator it = mn_rmap.find(k); | 156 | QMap<int, QString>::Iterator it = mn_rmap.find(k); |
153 | if (it == mn_rmap.end()) { | 157 | if (it == mn_rmap.end()) { |
154 | return Null_String; | 158 | return Null_String; |
155 | } else { | 159 | } else { |
156 | return it.data(); | 160 | return it.data(); |
157 | } | 161 | } |
158 | } | 162 | } |
159 | 163 | ||
160 | // Implementation of KeycodeNames | 164 | // Implementation of KeycodeNames |
161 | 165 | ||
162 | struct { | 166 | struct Keycode_Names_t { |
163 | char* name; | 167 | char* name; |
164 | int keycode; | 168 | int keycode; |
165 | } Keycode_Names[] = { | 169 | }; |
170 | |||
171 | static const Keycode_Names_t Keycode_Names[] = { | ||
166 | { "Escape", 0x1000 }, | 172 | { "Escape", 0x1000 }, |
167 | { "Tab", 0x1001 }, | 173 | { "Tab", 0x1001 }, |
168 | { "Backtab", 0x1002 }, | 174 | { "Backtab", 0x1002 }, |
169 | { "Backspace", 0x1003 }, | 175 | { "Backspace", 0x1003 }, |
170 | { "BackSpace", 0x1003 }, | 176 | { "BackSpace", 0x1003 }, |
171 | { "Return", 0x1004 }, | 177 | { "Return", 0x1004 }, |
172 | { "Enter", 0x1005 }, | 178 | { "Enter", 0x1005 }, |
173 | { "Insert", 0x1006 }, | 179 | { "Insert", 0x1006 }, |
174 | { "Delete", 0x1007 }, | 180 | { "Delete", 0x1007 }, |
175 | { "Pause", 0x1008 }, | 181 | { "Pause", 0x1008 }, |
176 | { "Print", 0x1009 }, | 182 | { "Print", 0x1009 }, |
177 | { "SysReq", 0x100a }, | 183 | { "SysReq", 0x100a }, |
178 | { "Home", 0x1010 }, | 184 | { "Home", 0x1010 }, |
179 | { "End", 0x1011 }, | 185 | { "End", 0x1011 }, |
180 | { "Left", 0x1012 }, | 186 | { "Left", 0x1012 }, |
181 | { "Up", 0x1013 }, | 187 | { "Up", 0x1013 }, |
182 | { "Right", 0x1014 }, | 188 | { "Right", 0x1014 }, |
183 | { "Down", 0x1015 }, | 189 | { "Down", 0x1015 }, |
184 | { "Prior", 0x1016 }, | 190 | { "Prior", 0x1016 }, |
185 | { "PageUp", 0x1016 }, | 191 | { "PageUp", 0x1016 }, |
186 | { "Next", 0x1017 }, | 192 | { "Next", 0x1017 }, |
187 | { "PageDown", 0x1017 }, | 193 | { "PageDown", 0x1017 }, |
188 | { "Shift", 0x1020 }, | 194 | { "Shift", 0x1020 }, |
189 | { "Control", 0x1021 }, | 195 | { "Control", 0x1021 }, |
190 | { "Meta", 0x1022 }, | 196 | { "Meta", 0x1022 }, |
191 | { "Alt", 0x1023 }, | 197 | { "Alt", 0x1023 }, |
192 | { "CapsLock", 0x1024 }, | 198 | { "CapsLock", 0x1024 }, |
193 | { "NumLock", 0x1025 }, | 199 | { "NumLock", 0x1025 }, |
194 | { "ScrollLock", 0x1026 }, | 200 | { "ScrollLock", 0x1026 }, |
195 | { "F1", 0x1030 }, | 201 | { "F1", 0x1030 }, |
196 | { "F2", 0x1031 }, | 202 | { "F2", 0x1031 }, |
197 | { "F3", 0x1032 }, | 203 | { "F3", 0x1032 }, |
198 | { "F4", 0x1033 }, | 204 | { "F4", 0x1033 }, |
199 | { "F5", 0x1034 }, | 205 | { "F5", 0x1034 }, |
200 | { "F6", 0x1035 }, | 206 | { "F6", 0x1035 }, |
201 | { "F7", 0x1036 }, | 207 | { "F7", 0x1036 }, |
202 | { "F8", 0x1037 }, | 208 | { "F8", 0x1037 }, |
203 | { "F9", 0x1038 }, | 209 | { "F9", 0x1038 }, |
204 | { "F10", 0x1039 }, | 210 | { "F10", 0x1039 }, |
205 | { "F11", 0x103a }, | 211 | { "F11", 0x103a }, |
206 | { "F12", 0x103b }, | 212 | { "F12", 0x103b }, |
207 | { "F13", 0x103c }, | 213 | { "F13", 0x103c }, |
208 | { "F14", 0x103d }, | 214 | { "F14", 0x103d }, |
209 | { "F15", 0x103e }, | 215 | { "F15", 0x103e }, |
210 | { "F16", 0x103f }, | 216 | { "F16", 0x103f }, |
211 | { "F17", 0x1040 }, | 217 | { "F17", 0x1040 }, |
212 | { "F18", 0x1041 }, | 218 | { "F18", 0x1041 }, |
213 | { "F19", 0x1042 }, | 219 | { "F19", 0x1042 }, |
214 | { "F20", 0x1043 }, | 220 | { "F20", 0x1043 }, |
215 | { "F21", 0x1044 }, | 221 | { "F21", 0x1044 }, |
216 | { "F22", 0x1045 }, | 222 | { "F22", 0x1045 }, |
217 | { "F23", 0x1046 }, | 223 | { "F23", 0x1046 }, |
218 | { "F24", 0x1047 }, | 224 | { "F24", 0x1047 }, |
219 | { "F25", 0x1048 }, | 225 | { "F25", 0x1048 }, |
220 | { "F26", 0x1049 }, | 226 | { "F26", 0x1049 }, |
221 | { "F27", 0x104a }, | 227 | { "F27", 0x104a }, |
222 | { "F28", 0x104b }, | 228 | { "F28", 0x104b }, |
223 | { "F29", 0x104c }, | 229 | { "F29", 0x104c }, |
224 | { "F30", 0x104d }, | 230 | { "F30", 0x104d }, |
225 | { "F31", 0x104e }, | 231 | { "F31", 0x104e }, |
226 | { "F32", 0x104f }, | 232 | { "F32", 0x104f }, |
227 | { "F33", 0x1050 }, | 233 | { "F33", 0x1050 }, |
228 | { "F34", 0x1051 }, | 234 | { "F34", 0x1051 }, |
229 | { "F35", 0x1052 }, | 235 | { "F35", 0x1052 }, |
230 | { "Super_L", 0x1053 }, | 236 | { "Super_L", 0x1053 }, |
231 | { "Super_R", 0x1054 }, | 237 | { "Super_R", 0x1054 }, |
232 | { "Menu", 0x1055 }, | 238 | { "Menu", 0x1055 }, |
233 | { "Hyper_L", 0x1056 }, | 239 | { "Hyper_L", 0x1056 }, |
234 | { "Hyper_R", 0x1057 }, | 240 | { "Hyper_R", 0x1057 }, |
235 | { "Help", 0x1058 }, | 241 | { "Help", 0x1058 }, |
236 | { "Space", 0x20 }, | 242 | { "Space", 0x20 }, |
237 | { "Any", 0x20 }, | 243 | { "Any", 0x20 }, |
238 | { "Exclam", 0x21 }, | 244 | { "Exclam", 0x21 }, |
239 | { "QuoteDbl", 0x22 }, | 245 | { "QuoteDbl", 0x22 }, |
240 | { "NumberSign", 0x23 }, | 246 | { "NumberSign", 0x23 }, |
241 | { "Dollar", 0x24 }, | 247 | { "Dollar", 0x24 }, |
242 | { "Percent", 0x25 }, | 248 | { "Percent", 0x25 }, |
243 | { "Ampersand", 0x26 }, | 249 | { "Ampersand", 0x26 }, |
244 | { "Apostrophe", 0x27 }, | 250 | { "Apostrophe", 0x27 }, |
245 | { "ParenLeft", 0x28 }, | 251 | { "ParenLeft", 0x28 }, |
246 | { "ParenRight", 0x29 }, | 252 | { "ParenRight", 0x29 }, |
247 | { "Asterisk", 0x2a }, | 253 | { "Asterisk", 0x2a }, |
248 | { "Plus", 0x2b }, | 254 | { "Plus", 0x2b }, |
249 | { "Comma", 0x2c }, | 255 | { "Comma", 0x2c }, |
250 | { "Minus", 0x2d }, | 256 | { "Minus", 0x2d }, |
251 | { "Period", 0x2e }, | 257 | { "Period", 0x2e }, |
252 | { "Slash", 0x2f }, | 258 | { "Slash", 0x2f }, |
253 | { "0", 0x30 }, | 259 | { "0", 0x30 }, |
254 | { "1", 0x31 }, | 260 | { "1", 0x31 }, |
255 | { "2", 0x32 }, | 261 | { "2", 0x32 }, |
256 | { "3", 0x33 }, | 262 | { "3", 0x33 }, |
257 | { "4", 0x34 }, | 263 | { "4", 0x34 }, |
258 | { "5", 0x35 }, | 264 | { "5", 0x35 }, |
259 | { "6", 0x36 }, | 265 | { "6", 0x36 }, |
260 | { "7", 0x37 }, | 266 | { "7", 0x37 }, |
261 | { "8", 0x38 }, | 267 | { "8", 0x38 }, |
262 | { "9", 0x39 }, | 268 | { "9", 0x39 }, |
263 | { "Colon", 0x3a }, | 269 | { "Colon", 0x3a }, |
264 | { "Semicolon", 0x3b }, | 270 | { "Semicolon", 0x3b }, |
265 | { "Less", 0x3c }, | 271 | { "Less", 0x3c }, |
266 | { "Equal", 0x3d }, | 272 | { "Equal", 0x3d }, |
267 | { "Greater", 0x3e }, | 273 | { "Greater", 0x3e }, |
268 | { "Question", 0x3f }, | 274 | { "Question", 0x3f }, |
269 | { "At", 0x40 }, | 275 | { "At", 0x40 }, |
270 | { "A", 0x41 }, | 276 | { "A", 0x41 }, |
271 | { "B", 0x42 }, | 277 | { "B", 0x42 }, |
272 | { "C", 0x43 }, | 278 | { "C", 0x43 }, |
273 | { "D", 0x44 }, | 279 | { "D", 0x44 }, |
274 | { "E", 0x45 }, | 280 | { "E", 0x45 }, |
275 | { "F", 0x46 }, | 281 | { "F", 0x46 }, |
276 | { "G", 0x47 }, | 282 | { "G", 0x47 }, |
277 | { "H", 0x48 }, | 283 | { "H", 0x48 }, |
278 | { "I", 0x49 }, | 284 | { "I", 0x49 }, |
279 | { "J", 0x4a }, | 285 | { "J", 0x4a }, |
280 | { "K", 0x4b }, | 286 | { "K", 0x4b }, |
281 | { "L", 0x4c }, | 287 | { "L", 0x4c }, |
282 | { "M", 0x4d }, | 288 | { "M", 0x4d }, |
283 | { "N", 0x4e }, | 289 | { "N", 0x4e }, |
284 | { "O", 0x4f }, | 290 | { "O", 0x4f }, |
285 | { "P", 0x50 }, | 291 | { "P", 0x50 }, |
286 | { "Q", 0x51 }, | 292 | { "Q", 0x51 }, |
287 | { "R", 0x52 }, | 293 | { "R", 0x52 }, |
288 | { "S", 0x53 }, | 294 | { "S", 0x53 }, |
289 | { "T", 0x54 }, | 295 | { "T", 0x54 }, |
290 | { "U", 0x55 }, | 296 | { "U", 0x55 }, |
291 | { "V", 0x56 }, | 297 | { "V", 0x56 }, |
292 | { "W", 0x57 }, | 298 | { "W", 0x57 }, |
293 | { "X", 0x58 }, | 299 | { "X", 0x58 }, |
294 | { "Y", 0x59 }, | 300 | { "Y", 0x59 }, |
295 | { "Z", 0x5a }, | 301 | { "Z", 0x5a }, |
296 | { "BracketLeft", 0x5b }, | 302 | { "BracketLeft", 0x5b }, |
297 | { "Backslash", 0x5c }, | 303 | { "Backslash", 0x5c }, |
298 | { "BracketRight", 0x5d }, | 304 | { "BracketRight", 0x5d }, |
299 | { "AsciiCircum", 0x5e }, | 305 | { "AsciiCircum", 0x5e }, |
300 | { "Underscore", 0x5f }, | 306 | { "Underscore", 0x5f }, |
301 | { "QuoteLeft", 0x60 }, | 307 | { "QuoteLeft", 0x60 }, |
302 | { "BraceLeft", 0x7b }, | 308 | { "BraceLeft", 0x7b }, |
303 | { "Bar", 0x7c }, | 309 | { "Bar", 0x7c }, |
304 | { "BraceRight", 0x7d }, | 310 | { "BraceRight", 0x7d }, |
305 | { "AsciiTilde", 0x7e }, | 311 | { "AsciiTilde", 0x7e }, |
306 | { "nobreakspace", 0x0a0 }, | 312 | { "nobreakspace", 0x0a0 }, |
307 | { "exclamdown", 0x0a1 }, | 313 | { "exclamdown", 0x0a1 }, |
308 | { "cent", 0x0a2 }, | 314 | { "cent", 0x0a2 }, |
309 | { "sterling", 0x0a3 }, | 315 | { "sterling", 0x0a3 }, |
310 | { "currency", 0x0a4 }, | 316 | { "currency", 0x0a4 }, |
311 | { "yen", 0x0a5 }, | 317 | { "yen", 0x0a5 }, |
312 | { "brokenbar", 0x0a6 }, | 318 | { "brokenbar", 0x0a6 }, |
313 | { "section", 0x0a7 }, | 319 | { "section", 0x0a7 }, |
314 | { "diaeresis", 0x0a8 }, | 320 | { "diaeresis", 0x0a8 }, |
315 | { "copyright", 0x0a9 }, | 321 | { "copyright", 0x0a9 }, |
316 | { "ordfeminine", 0x0aa }, | 322 | { "ordfeminine", 0x0aa }, |
317 | { "guillemotleft", 0x0ab }, | 323 | { "guillemotleft", 0x0ab }, |
318 | { "notsign", 0x0ac }, | 324 | { "notsign", 0x0ac }, |
319 | { "hyphen", 0x0ad }, | 325 | { "hyphen", 0x0ad }, |
320 | { "registered", 0x0ae }, | 326 | { "registered", 0x0ae }, |
321 | { "macron", 0x0af }, | 327 | { "macron", 0x0af }, |
322 | { "degree", 0x0b0 }, | 328 | { "degree", 0x0b0 }, |
323 | { "plusminus", 0x0b1 }, | 329 | { "plusminus", 0x0b1 }, |
324 | { "twosuperior", 0x0b2 }, | 330 | { "twosuperior", 0x0b2 }, |
325 | { "threesuperior", 0x0b3 }, | 331 | { "threesuperior", 0x0b3 }, |
326 | { "acute", 0x0b4 }, | 332 | { "acute", 0x0b4 }, |
327 | { "mu", 0x0b5 }, | 333 | { "mu", 0x0b5 }, |
328 | { "paragraph", 0x0b6 }, | 334 | { "paragraph", 0x0b6 }, |
329 | { "periodcentered", 0x0b7 }, | 335 | { "periodcentered", 0x0b7 }, |
330 | { "cedilla", 0x0b8 }, | 336 | { "cedilla", 0x0b8 }, |
331 | { "onesuperior", 0x0b9 }, | 337 | { "onesuperior", 0x0b9 }, |
332 | { "masculine", 0x0ba }, | 338 | { "masculine", 0x0ba }, |
333 | { "guillemotright", 0x0bb }, | 339 | { "guillemotright", 0x0bb }, |
334 | { "onequarter", 0x0bc }, | 340 | { "onequarter", 0x0bc }, |
335 | { "onehalf", 0x0bd }, | 341 | { "onehalf", 0x0bd }, |
336 | { "threequarters", 0x0be }, | 342 | { "threequarters", 0x0be }, |
337 | { "questiondown", 0x0bf }, | 343 | { "questiondown", 0x0bf }, |
338 | { "Agrave", 0x0c0 }, | 344 | { "Agrave", 0x0c0 }, |
339 | { "Aacute", 0x0c1 }, | 345 | { "Aacute", 0x0c1 }, |
340 | { "Acircumflex", 0x0c2 }, | 346 | { "Acircumflex", 0x0c2 }, |
341 | { "Atilde", 0x0c3 }, | 347 | { "Atilde", 0x0c3 }, |
342 | { "Adiaeresis", 0x0c4 }, | 348 | { "Adiaeresis", 0x0c4 }, |
343 | { "Aring", 0x0c5 }, | 349 | { "Aring", 0x0c5 }, |
344 | { "AE", 0x0c6 }, | 350 | { "AE", 0x0c6 }, |
345 | { "Ccedilla", 0x0c7 }, | 351 | { "Ccedilla", 0x0c7 }, |
346 | { "Egrave", 0x0c8 }, | 352 | { "Egrave", 0x0c8 }, |
347 | { "Eacute", 0x0c9 }, | 353 | { "Eacute", 0x0c9 }, |
348 | { "Ecircumflex", 0x0ca }, | 354 | { "Ecircumflex", 0x0ca }, |
349 | { "Ediaeresis", 0x0cb }, | 355 | { "Ediaeresis", 0x0cb }, |
350 | { "Igrave", 0x0cc }, | 356 | { "Igrave", 0x0cc }, |
351 | { "Iacute", 0x0cd }, | 357 | { "Iacute", 0x0cd }, |
352 | { "Icircumflex", 0x0ce }, | 358 | { "Icircumflex", 0x0ce }, |
353 | { "Idiaeresis", 0x0cf }, | 359 | { "Idiaeresis", 0x0cf }, |
354 | { "ETH", 0x0d0 }, | 360 | { "ETH", 0x0d0 }, |
355 | { "Ntilde", 0x0d1 }, | 361 | { "Ntilde", 0x0d1 }, |
356 | { "Ograve", 0x0d2 }, | 362 | { "Ograve", 0x0d2 }, |
357 | { "Oacute", 0x0d3 }, | 363 | { "Oacute", 0x0d3 }, |
358 | { "Ocircumflex", 0x0d4 }, | 364 | { "Ocircumflex", 0x0d4 }, |
359 | { "Otilde", 0x0d5 }, | 365 | { "Otilde", 0x0d5 }, |
360 | { "Odiaeresis", 0x0d6 }, | 366 | { "Odiaeresis", 0x0d6 }, |
361 | { "multiply", 0x0d7 }, | 367 | { "multiply", 0x0d7 }, |
362 | { "Ooblique", 0x0d8 }, | 368 | { "Ooblique", 0x0d8 }, |
363 | { "Ugrave", 0x0d9 }, | 369 | { "Ugrave", 0x0d9 }, |
364 | { "Uacute", 0x0da }, | 370 | { "Uacute", 0x0da }, |
365 | { "Ucircumflex", 0x0db }, | 371 | { "Ucircumflex", 0x0db }, |
366 | { "Udiaeresis", 0x0dc }, | 372 | { "Udiaeresis", 0x0dc }, |
367 | { "Yacute", 0x0dd }, | 373 | { "Yacute", 0x0dd }, |
368 | { "THORN", 0x0de }, | 374 | { "THORN", 0x0de }, |
369 | { "ssharp", 0x0df }, | 375 | { "ssharp", 0x0df }, |
370 | { "agrave", 0x0e0 }, | 376 | { "agrave", 0x0e0 }, |
371 | { "aacute", 0x0e1 }, | 377 | { "aacute", 0x0e1 }, |
372 | { "acircumflex", 0x0e2 }, | 378 | { "acircumflex", 0x0e2 }, |
373 | { "atilde", 0x0e3 }, | 379 | { "atilde", 0x0e3 }, |
374 | { "adiaeresis", 0x0e4 }, | 380 | { "adiaeresis", 0x0e4 }, |
375 | { "aring", 0x0e5 }, | 381 | { "aring", 0x0e5 }, |
376 | { "ae", 0x0e6 }, | 382 | { "ae", 0x0e6 }, |
377 | { "ccedilla", 0x0e7 }, | 383 | { "ccedilla", 0x0e7 }, |
378 | { "egrave", 0x0e8 }, | 384 | { "egrave", 0x0e8 }, |
379 | { "eacute", 0x0e9 }, | 385 | { "eacute", 0x0e9 }, |
380 | { "ecircumflex", 0x0ea }, | 386 | { "ecircumflex", 0x0ea }, |
381 | { "ediaeresis", 0x0eb }, | 387 | { "ediaeresis", 0x0eb }, |
382 | { "igrave", 0x0ec }, | 388 | { "igrave", 0x0ec }, |
383 | { "iacute", 0x0ed }, | 389 | { "iacute", 0x0ed }, |
384 | { "icircumflex", 0x0ee }, | 390 | { "icircumflex", 0x0ee }, |
385 | { "idiaeresis", 0x0ef }, | 391 | { "idiaeresis", 0x0ef }, |
386 | { "eth", 0x0f0 }, | 392 | { "eth", 0x0f0 }, |
387 | { "ntilde", 0x0f1 }, | 393 | { "ntilde", 0x0f1 }, |
388 | { "ograve", 0x0f2 }, | 394 | { "ograve", 0x0f2 }, |
389 | { "oacute", 0x0f3 }, | 395 | { "oacute", 0x0f3 }, |
390 | { "ocircumflex", 0x0f4 }, | 396 | { "ocircumflex", 0x0f4 }, |
391 | { "otilde", 0x0f5 }, | 397 | { "otilde", 0x0f5 }, |
392 | { "odiaeresis", 0x0f6 }, | 398 | { "odiaeresis", 0x0f6 }, |
393 | { "division", 0x0f7 }, | 399 | { "division", 0x0f7 }, |
394 | { "oslash", 0x0f8 }, | 400 | { "oslash", 0x0f8 }, |
395 | { "ugrave", 0x0f9 }, | 401 | { "ugrave", 0x0f9 }, |
396 | { "uacute", 0x0fa }, | 402 | { "uacute", 0x0fa }, |
397 | { "ucircumflex", 0x0fb }, | 403 | { "ucircumflex", 0x0fb }, |
398 | { "udiaeresis", 0x0fc }, | 404 | { "udiaeresis", 0x0fc }, |
399 | { "yacute", 0x0fd }, | 405 | { "yacute", 0x0fd }, |
400 | { "thorn", 0x0fe }, | 406 | { "thorn", 0x0fe }, |
401 | { "ydiaeresis", 0x0ff }, | 407 | { "ydiaeresis", 0x0ff }, |
402 | { "unknown", 0xffff }, | 408 | { "unknown", 0xffff }, |
403 | { 0, 0} | 409 | { 0, 0} |
404 | }; | 410 | }; |
405 | 411 | ||
406 | static QMap<QString, int> kcn_map; | 412 | static QMap<QString, int> kcn_map; |
407 | static QMap<int, QString> kcn_rmap; | 413 | static QMap<int, QString> kcn_rmap; |
408 | 414 | ||
409 | void init_kcn_maps() { | 415 | void init_kcn_maps() { |
410 | int i = 0; | 416 | int i = 0; |
411 | while (Keycode_Names[i].name != 0) { | 417 | while (Keycode_Names[i].name != 0) { |
412 | int keycode = Keycode_Names[i].keycode; | 418 | int keycode = Keycode_Names[i].keycode; |
413 | QString name(Keycode_Names[i].name); | 419 | QString name(Keycode_Names[i].name); |
414 | 420 | ||
415 | kcn_map.insert(name, keycode); | 421 | kcn_map.insert(name, keycode); |
416 | kcn_rmap.insert(keycode, name); | 422 | kcn_rmap.insert(keycode, name); |
417 | i++; | 423 | i++; |
418 | } | 424 | } |
419 | } | 425 | } |
420 | 426 | ||
421 | int KeycodeNames::find(const QString& key) { | 427 | int KeycodeNames::find(const QString& key) { |
422 | if (kcn_map.isEmpty()) { | 428 | if (kcn_map.isEmpty()) { |
423 | init_kcn_maps(); | 429 | init_kcn_maps(); |
424 | } | 430 | } |
425 | 431 | ||
426 | QMap<QString, int>::Iterator it = kcn_map.find(key); | 432 | QMap<QString, int>::Iterator it = kcn_map.find(key); |
427 | if (it == kcn_map.end()) { | 433 | if (it == kcn_map.end()) { |
428 | return -1; | 434 | return -1; |
429 | } else { | 435 | } else { |
430 | return it.data(); | 436 | return it.data(); |
431 | } | 437 | } |
432 | } | 438 | } |
433 | 439 | ||
434 | const QString& KeycodeNames::find(int k) { | 440 | const QString& KeycodeNames::find(int k) { |
435 | if (kcn_map.isEmpty()) { | 441 | if (kcn_map.isEmpty()) { |
436 | init_kcn_maps(); | 442 | init_kcn_maps(); |
437 | } | 443 | } |
438 | 444 | ||
439 | QMap<int, QString>::Iterator it = kcn_rmap.find(k); | 445 | QMap<int, QString>::Iterator it = kcn_rmap.find(k); |
440 | if (it == kcn_rmap.end()) { | 446 | if (it == kcn_rmap.end()) { |
441 | return Null_String; | 447 | return Null_String; |
442 | } else { | 448 | } else { |
diff --git a/noncore/games/qasteroids/view.cpp b/noncore/games/qasteroids/view.cpp index 352c63b..3a4d410 100644 --- a/noncore/games/qasteroids/view.cpp +++ b/noncore/games/qasteroids/view.cpp | |||
@@ -1,320 +1,321 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************//* | 19 | **********************************************************************//* |
20 | * KAsteroids - Copyright (c) Martin R. Jones 1997 | 20 | * KAsteroids - Copyright (c) Martin R. Jones 1997 |
21 | * | 21 | * |
22 | * Part of the KDE project | 22 | * Part of the KDE project |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include "view.h" | 25 | #include "view.h" |
26 | 26 | ||
27 | #include <qpe/resource.h> | 27 | #include <qpe/resource.h> |
28 | 28 | ||
29 | 29 | ||
30 | #include <stdlib.h> | 30 | #include <stdlib.h> |
31 | #include <math.h> | 31 | #include <math.h> |
32 | 32 | ||
33 | #define IMG_BACKGROUND "qasteroids/bg.png" | 33 | #define IMG_BACKGROUND "qasteroids/bg.png" |
34 | 34 | ||
35 | #define REFRESH_DELAY 33 | 35 | #define REFRESH_DELAY 33 |
36 | #define SHIP_SPEED 0.3 | 36 | #define SHIP_SPEED 0.3 |
37 | #define MISSILE_SPEED 10.0 | 37 | #define MISSILE_SPEED 10.0 |
38 | #define SHIP_STEPS 64 | 38 | #define SHIP_STEPS 64 |
39 | #define ROTATE_RATE 2 | 39 | #define ROTATE_RATE 2 |
40 | #define SHIELD_ON_COST 1 | 40 | #define SHIELD_ON_COST 1 |
41 | #define SHIELD_HIT_COST 30 | 41 | #define SHIELD_HIT_COST 30 |
42 | #define BRAKE_ON_COST 4 | 42 | #define BRAKE_ON_COST 4 |
43 | 43 | ||
44 | #define MAX_ROCK_SPEED 2.5 | 44 | #define MAX_ROCK_SPEED 2.5 |
45 | #define MAX_POWERUP_SPEED 1.5 | 45 | #define MAX_POWERUP_SPEED 1.5 |
46 | #define MAX_SHIP_SPEED 8 | 46 | #define MAX_SHIP_SPEED 8 |
47 | #define MAX_BRAKES 5 | 47 | #define MAX_BRAKES 5 |
48 | #define MAX_SHIELDS 5 | 48 | #define MAX_SHIELDS 5 |
49 | #define MAX_FIREPOWER 5 | 49 | #define MAX_FIREPOWER 5 |
50 | 50 | ||
51 | #define TEXT_SPEED 4 | 51 | #define TEXT_SPEED 4 |
52 | 52 | ||
53 | #define PI_X_2 6.283185307 | 53 | #define PI_X_2 6.283185307 |
54 | #ifndef M_PI | 54 | #ifndef M_PI |
55 | #define M_PI 3.141592654 | 55 | #define M_PI 3.141592654 |
56 | #endif | 56 | #endif |
57 | 57 | ||
58 | struct | 58 | struct kas_animations_t |
59 | { | 59 | { |
60 | int id; | 60 | int id; |
61 | const char *path; | 61 | const char *path; |
62 | int frames; | 62 | int frames; |
63 | } | 63 | }; |
64 | kas_animations [] = | 64 | |
65 | static const kas_animations_t kas_animations [] = | ||
65 | { | 66 | { |
66 | // { ID_ROCK_LARGE, "rock1/rock1\%1.png", 32 }, | 67 | // { ID_ROCK_LARGE, "rock1/rock1\%1.png", 32 }, |
67 | { ID_ROCK_MEDIUM, "rock2/rock2\%1.png", 32 }, | 68 | { ID_ROCK_MEDIUM, "rock2/rock2\%1.png", 32 }, |
68 | { ID_ROCK_SMALL, "rock3/rock3\%1.png", 32 }, | 69 | { ID_ROCK_SMALL, "rock3/rock3\%1.png", 32 }, |
69 | { ID_SHIP, "ship/ship\%1.png", 32 }, | 70 | { ID_SHIP, "ship/ship\%1.png", 32 }, |
70 | { ID_MISSILE, "missile/missile.png", 0 }, | 71 | { ID_MISSILE, "missile/missile.png", 0 }, |
71 | { ID_BIT, "bits/bits\%1.png", 16 }, | 72 | { ID_BIT, "bits/bits\%1.png", 16 }, |
72 | { ID_EXHAUST, "exhaust/exhaust.png", 0 }, | 73 | { ID_EXHAUST, "exhaust/exhaust.png", 0 }, |
73 | { ID_ENERGY_POWERUP, "powerups/energy.png", 0 }, | 74 | { ID_ENERGY_POWERUP, "powerups/energy.png", 0 }, |
74 | // { ID_TELEPORT_POWERUP, "powerups/teleport%1.png", 12 }, | 75 | // { ID_TELEPORT_POWERUP, "powerups/teleport%1.png", 12 }, |
75 | { ID_BRAKE_POWERUP, "powerups/brake.png", 0 }, | 76 | { ID_BRAKE_POWERUP, "powerups/brake.png", 0 }, |
76 | { ID_SHIELD_POWERUP, "powerups/shield.png", 0 }, | 77 | { ID_SHIELD_POWERUP, "powerups/shield.png", 0 }, |
77 | { ID_SHOOT_POWERUP, "powerups/shoot.png", 0 }, | 78 | { ID_SHOOT_POWERUP, "powerups/shoot.png", 0 }, |
78 | { ID_SHIELD, "shield/shield\%1.png", 6 }, | 79 | { ID_SHIELD, "shield/shield\%1.png", 6 }, |
79 | { 0, 0, 0 } | 80 | { 0, 0, 0 } |
80 | }; | 81 | }; |
81 | 82 | ||
82 | 83 | ||
83 | 84 | ||
84 | KAsteroidsView::KAsteroidsView( QWidget *parent, const char *name ) | 85 | KAsteroidsView::KAsteroidsView( QWidget *parent, const char *name ) |
85 | : QWidget( parent, name ), | 86 | : QWidget( parent, name ), |
86 | field(200, 200), | 87 | field(200, 200), |
87 | view(&field,this) | 88 | view(&field,this) |
88 | { | 89 | { |
89 | view.setVScrollBarMode( QScrollView::AlwaysOff ); | 90 | view.setVScrollBarMode( QScrollView::AlwaysOff ); |
90 | view.setHScrollBarMode( QScrollView::AlwaysOff ); | 91 | view.setHScrollBarMode( QScrollView::AlwaysOff ); |
91 | rocks.setAutoDelete( TRUE ); | 92 | rocks.setAutoDelete( TRUE ); |
92 | missiles.setAutoDelete( TRUE ); | 93 | missiles.setAutoDelete( TRUE ); |
93 | bits.setAutoDelete( TRUE ); | 94 | bits.setAutoDelete( TRUE ); |
94 | powerups.setAutoDelete( TRUE ); | 95 | powerups.setAutoDelete( TRUE ); |
95 | exhaust.setAutoDelete( TRUE ); | 96 | exhaust.setAutoDelete( TRUE ); |
96 | 97 | ||
97 | QPixmap pm( Resource::loadPixmap(IMG_BACKGROUND) ); | 98 | QPixmap pm( Resource::loadPixmap(IMG_BACKGROUND) ); |
98 | field.setBackgroundPixmap( pm ); | 99 | field.setBackgroundPixmap( pm ); |
99 | 100 | ||
100 | textSprite = new QCanvasText( &field ); | 101 | textSprite = new QCanvasText( &field ); |
101 | QFont font( "helvetica", 14 ); | 102 | QFont font( "helvetica", 14 ); |
102 | textSprite->setFont( font ); | 103 | textSprite->setFont( font ); |
103 | 104 | ||
104 | shield = 0; | 105 | shield = 0; |
105 | shieldOn = FALSE; | 106 | shieldOn = FALSE; |
106 | refreshRate = REFRESH_DELAY; | 107 | refreshRate = REFRESH_DELAY; |
107 | 108 | ||
108 | readSprites(); | 109 | readSprites(); |
109 | 110 | ||
110 | shieldTimer = new QTimer( this ); | 111 | shieldTimer = new QTimer( this ); |
111 | connect( shieldTimer, SIGNAL(timeout()), this, SLOT(hideShield()) ); | 112 | connect( shieldTimer, SIGNAL(timeout()), this, SLOT(hideShield()) ); |
112 | mTimerId = -1; | 113 | mTimerId = -1; |
113 | 114 | ||
114 | shipPower = MAX_POWER_LEVEL; | 115 | shipPower = MAX_POWER_LEVEL; |
115 | vitalsChanged = TRUE; | 116 | vitalsChanged = TRUE; |
116 | can_destroy_powerups = FALSE; | 117 | can_destroy_powerups = FALSE; |
117 | 118 | ||
118 | mPaused = TRUE; | 119 | mPaused = TRUE; |
119 | } | 120 | } |
120 | 121 | ||
121 | // - - - | 122 | // - - - |
122 | 123 | ||
123 | KAsteroidsView::~KAsteroidsView() | 124 | KAsteroidsView::~KAsteroidsView() |
124 | { | 125 | { |
125 | } | 126 | } |
126 | 127 | ||
127 | // - - - | 128 | // - - - |
128 | 129 | ||
129 | void KAsteroidsView::reset() | 130 | void KAsteroidsView::reset() |
130 | { | 131 | { |
131 | rocks.clear(); | 132 | rocks.clear(); |
132 | missiles.clear(); | 133 | missiles.clear(); |
133 | bits.clear(); | 134 | bits.clear(); |
134 | powerups.clear(); | 135 | powerups.clear(); |
135 | exhaust.clear(); | 136 | exhaust.clear(); |
136 | 137 | ||
137 | shotsFired = 0; | 138 | shotsFired = 0; |
138 | shotsHit = 0; | 139 | shotsHit = 0; |
139 | 140 | ||
140 | rockSpeed = 1.0; | 141 | rockSpeed = 1.0; |
141 | powerupSpeed = 1.0; | 142 | powerupSpeed = 1.0; |
142 | mFrameNum = 0; | 143 | mFrameNum = 0; |
143 | mPaused = FALSE; | 144 | mPaused = FALSE; |
144 | 145 | ||
145 | ship->hide(); | 146 | ship->hide(); |
146 | shield->hide(); | 147 | shield->hide(); |
147 | /* | 148 | /* |
148 | if ( mTimerId >= 0 ) { | 149 | if ( mTimerId >= 0 ) { |
149 | killTimer( mTimerId ); | 150 | killTimer( mTimerId ); |
150 | mTimerId = -1; | 151 | mTimerId = -1; |
151 | } | 152 | } |
152 | */ | 153 | */ |
153 | } | 154 | } |
154 | 155 | ||
155 | // - -- | 156 | // - -- |
156 | 157 | ||
157 | void KAsteroidsView::newGame() | 158 | void KAsteroidsView::newGame() |
158 | { | 159 | { |
159 | if ( shieldOn ) | 160 | if ( shieldOn ) |
160 | { | 161 | { |
161 | shield->hide(); | 162 | shield->hide(); |
162 | shieldOn = FALSE; | 163 | shieldOn = FALSE; |
163 | } | 164 | } |
164 | reset(); | 165 | reset(); |
165 | if ( mTimerId < 0 ) | 166 | if ( mTimerId < 0 ) |
166 | mTimerId = startTimer( REFRESH_DELAY ); | 167 | mTimerId = startTimer( REFRESH_DELAY ); |
167 | emit updateVitals(); | 168 | emit updateVitals(); |
168 | } | 169 | } |
169 | 170 | ||
170 | // - - - | 171 | // - - - |
171 | 172 | ||
172 | void KAsteroidsView::endGame() | 173 | void KAsteroidsView::endGame() |
173 | { | 174 | { |
174 | } | 175 | } |
175 | 176 | ||
176 | void KAsteroidsView::pause( bool p ) | 177 | void KAsteroidsView::pause( bool p ) |
177 | { | 178 | { |
178 | if ( !mPaused && p ) { | 179 | if ( !mPaused && p ) { |
179 | if ( mTimerId >= 0 ) { | 180 | if ( mTimerId >= 0 ) { |
180 | killTimer( mTimerId ); | 181 | killTimer( mTimerId ); |
181 | mTimerId = -1; | 182 | mTimerId = -1; |
182 | } | 183 | } |
183 | } else if ( mPaused && !p ) | 184 | } else if ( mPaused && !p ) |
184 | mTimerId = startTimer( REFRESH_DELAY ); | 185 | mTimerId = startTimer( REFRESH_DELAY ); |
185 | mPaused = p; | 186 | mPaused = p; |
186 | } | 187 | } |
187 | 188 | ||
188 | // - - - | 189 | // - - - |
189 | 190 | ||
190 | void KAsteroidsView::newShip() | 191 | void KAsteroidsView::newShip() |
191 | { | 192 | { |
192 | ship->move( field.width()/2, field.height()/2, 0 ); | 193 | ship->move( field.width()/2, field.height()/2, 0 ); |
193 | shield->move( field.width()/2, field.height()/2, 0 ); | 194 | shield->move( field.width()/2, field.height()/2, 0 ); |
194 | ship->setVelocity( 0.0, 0.0 ); | 195 | ship->setVelocity( 0.0, 0.0 ); |
195 | shipDx = 0; | 196 | shipDx = 0; |
196 | shipDy = 0; | 197 | shipDy = 0; |
197 | shipAngle = 0; | 198 | shipAngle = 0; |
198 | rotateL = FALSE; | 199 | rotateL = FALSE; |
199 | rotateR = FALSE; | 200 | rotateR = FALSE; |
200 | thrustShip = FALSE; | 201 | thrustShip = FALSE; |
201 | shootShip = FALSE; | 202 | shootShip = FALSE; |
202 | brakeShip = FALSE; | 203 | brakeShip = FALSE; |
203 | teleportShip = FALSE; | 204 | teleportShip = FALSE; |
204 | shieldOn = TRUE; | 205 | shieldOn = TRUE; |
205 | shootDelay = 0; | 206 | shootDelay = 0; |
206 | shipPower = MAX_POWER_LEVEL; | 207 | shipPower = MAX_POWER_LEVEL; |
207 | rotateRate = ROTATE_RATE; | 208 | rotateRate = ROTATE_RATE; |
208 | rotateSlow = 0; | 209 | rotateSlow = 0; |
209 | 210 | ||
210 | mBrakeCount = 0; | 211 | mBrakeCount = 0; |
211 | mTeleportCount = 0; | 212 | mTeleportCount = 0; |
212 | mShootCount = 0; | 213 | mShootCount = 0; |
213 | 214 | ||
214 | ship->show(); | 215 | ship->show(); |
215 | shield->show(); | 216 | shield->show(); |
216 | mShieldCount = 1; // just in case the ship appears on a rock. | 217 | mShieldCount = 1; // just in case the ship appears on a rock. |
217 | shieldTimer->start( 1000, TRUE ); | 218 | shieldTimer->start( 1000, TRUE ); |
218 | } | 219 | } |
219 | 220 | ||
220 | void KAsteroidsView::setShield( bool s ) | 221 | void KAsteroidsView::setShield( bool s ) |
221 | { | 222 | { |
222 | if ( shieldTimer->isActive() && !s ) { | 223 | if ( shieldTimer->isActive() && !s ) { |
223 | shieldTimer->stop(); | 224 | shieldTimer->stop(); |
224 | hideShield(); | 225 | hideShield(); |
225 | } else { | 226 | } else { |
226 | shieldOn = s && mShieldCount; | 227 | shieldOn = s && mShieldCount; |
227 | } | 228 | } |
228 | } | 229 | } |
229 | 230 | ||
230 | void KAsteroidsView::brake( bool b ) | 231 | void KAsteroidsView::brake( bool b ) |
231 | { | 232 | { |
232 | if ( mBrakeCount ) | 233 | if ( mBrakeCount ) |
233 | { | 234 | { |
234 | if ( brakeShip && !b ) | 235 | if ( brakeShip && !b ) |
235 | { | 236 | { |
236 | rotateL = FALSE; | 237 | rotateL = FALSE; |
237 | rotateR = FALSE; | 238 | rotateR = FALSE; |
238 | thrustShip = FALSE; | 239 | thrustShip = FALSE; |
239 | rotateRate = ROTATE_RATE; | 240 | rotateRate = ROTATE_RATE; |
240 | } | 241 | } |
241 | 242 | ||
242 | brakeShip = b; | 243 | brakeShip = b; |
243 | } | 244 | } |
244 | } | 245 | } |
245 | 246 | ||
246 | // - - - | 247 | // - - - |
247 | 248 | ||
248 | void KAsteroidsView::readSprites() | 249 | void KAsteroidsView::readSprites() |
249 | { | 250 | { |
250 | QString sprites_prefix = Resource::findPixmap( IMG_BACKGROUND ); | 251 | QString sprites_prefix = Resource::findPixmap( IMG_BACKGROUND ); |
251 | int sep = sprites_prefix.findRev( "/" ); | 252 | int sep = sprites_prefix.findRev( "/" ); |
252 | 253 | ||
253 | sprites_prefix.truncate( sep ); | 254 | sprites_prefix.truncate( sep ); |
254 | 255 | ||
255 | int i = 0; | 256 | int i = 0; |
256 | while ( kas_animations[i].id ) | 257 | while ( kas_animations[i].id ) |
257 | { | 258 | { |
258 | animation.insert( kas_animations[i].id, | 259 | animation.insert( kas_animations[i].id, |
259 | new QCanvasPixmapArray( sprites_prefix + "/" + kas_animations[i].path, | 260 | new QCanvasPixmapArray( sprites_prefix + "/" + kas_animations[i].path, |
260 | kas_animations[i].frames ) ); | 261 | kas_animations[i].frames ) ); |
261 | i++; | 262 | i++; |
262 | } | 263 | } |
263 | 264 | ||
264 | ship = new QCanvasSprite( animation[ID_SHIP], &field ); | 265 | ship = new QCanvasSprite( animation[ID_SHIP], &field ); |
265 | ship->hide(); | 266 | ship->hide(); |
266 | 267 | ||
267 | shield = new KShield( animation[ID_SHIELD], &field ); | 268 | shield = new KShield( animation[ID_SHIELD], &field ); |
268 | shield->hide(); | 269 | shield->hide(); |
269 | } | 270 | } |
270 | 271 | ||
271 | // - - - | 272 | // - - - |
272 | 273 | ||
273 | void KAsteroidsView::addRocks( int num ) | 274 | void KAsteroidsView::addRocks( int num ) |
274 | { | 275 | { |
275 | for ( int i = 0; i < num; i++ ) | 276 | for ( int i = 0; i < num; i++ ) |
276 | { | 277 | { |
277 | KRock *rock = new KRock( animation[ID_ROCK_MEDIUM], &field, | 278 | KRock *rock = new KRock( animation[ID_ROCK_MEDIUM], &field, |
278 | ID_ROCK_MEDIUM, randInt(2), randInt(2) ? -1 : 1 ); | 279 | ID_ROCK_MEDIUM, randInt(2), randInt(2) ? -1 : 1 ); |
279 | double dx = (2.0 - randDouble()*4.0) * rockSpeed; | 280 | double dx = (2.0 - randDouble()*4.0) * rockSpeed; |
280 | double dy = (2.0 - randDouble()*4.0) * rockSpeed; | 281 | double dy = (2.0 - randDouble()*4.0) * rockSpeed; |
281 | rock->setVelocity( dx, dy ); | 282 | rock->setVelocity( dx, dy ); |
282 | rock->setFrame( randInt( rock->frameCount() ) ); | 283 | rock->setFrame( randInt( rock->frameCount() ) ); |
283 | if ( dx > 0 ) | 284 | if ( dx > 0 ) |
284 | { | 285 | { |
285 | if ( dy > 0 ) | 286 | if ( dy > 0 ) |
286 | rock->move( 5, 5, 0 ); | 287 | rock->move( 5, 5, 0 ); |
287 | else | 288 | else |
288 | rock->move( 5, field.height() - 25, 0 ); | 289 | rock->move( 5, field.height() - 25, 0 ); |
289 | } | 290 | } |
290 | else | 291 | else |
291 | { | 292 | { |
292 | if ( dy > 0 ) | 293 | if ( dy > 0 ) |
293 | rock->move( field.width() - 25, 5, 0 ); | 294 | rock->move( field.width() - 25, 5, 0 ); |
294 | else | 295 | else |
295 | rock->move( field.width() - 25, field.height() - 25, 0 ); | 296 | rock->move( field.width() - 25, field.height() - 25, 0 ); |
296 | } | 297 | } |
297 | rock->show( ); | 298 | rock->show( ); |
298 | rocks.append( rock ); | 299 | rocks.append( rock ); |
299 | } | 300 | } |
300 | } | 301 | } |
301 | 302 | ||
302 | // - - - | 303 | // - - - |
303 | 304 | ||
304 | void KAsteroidsView::showText( const QString &text, const QColor &color, bool scroll ) | 305 | void KAsteroidsView::showText( const QString &text, const QColor &color, bool scroll ) |
305 | { | 306 | { |
306 | textSprite->setTextFlags( AlignLeft | AlignVCenter ); | 307 | textSprite->setTextFlags( AlignLeft | AlignVCenter ); |
307 | textSprite->setText( text ); | 308 | textSprite->setText( text ); |
308 | textSprite->setColor( color ); | 309 | textSprite->setColor( color ); |
309 | 310 | ||
310 | if ( scroll ) { | 311 | if ( scroll ) { |
311 | textSprite->move( (field.width()-textSprite->boundingRect().width()) / 2, | 312 | textSprite->move( (field.width()-textSprite->boundingRect().width()) / 2, |
312 | -textSprite->boundingRect().height() ); | 313 | -textSprite->boundingRect().height() ); |
313 | textDy = TEXT_SPEED; | 314 | textDy = TEXT_SPEED; |
314 | } else { | 315 | } else { |
315 | textSprite->move( (field.width()-textSprite->boundingRect().width()) / 2, | 316 | textSprite->move( (field.width()-textSprite->boundingRect().width()) / 2, |
316 | (field.height()-textSprite->boundingRect().height()) / 2 ); | 317 | (field.height()-textSprite->boundingRect().height()) / 2 ); |
317 | textDy = 0; | 318 | textDy = 0; |
318 | } | 319 | } |
319 | textSprite->show(); | 320 | textSprite->show(); |
320 | } | 321 | } |
diff --git a/noncore/games/solitaire/cardpile.h b/noncore/games/solitaire/cardpile.h index 1eb2499..757e6b3 100644 --- a/noncore/games/solitaire/cardpile.h +++ b/noncore/games/solitaire/cardpile.h | |||
@@ -1,115 +1,117 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | #ifndef CARD_PILE_H | 20 | #ifndef CARD_PILE_H |
21 | #define CARD_PILE_H | 21 | #define CARD_PILE_H |
22 | 22 | ||
23 | #include "card.h" | ||
24 | |||
23 | 25 | ||
24 | #include <qpoint.h> | 26 | #include <qpoint.h> |
25 | #include <qlist.h> | 27 | #include <qlist.h> |
26 | 28 | ||
27 | 29 | ||
28 | enum ePileStackingType { | 30 | enum ePileStackingType { |
29 | pileCascades = 0, pileStacks, pileCascadesOrStacks | 31 | pileCascades = 0, pileStacks, pileCascadesOrStacks |
30 | }; | 32 | }; |
31 | 33 | ||
32 | 34 | ||
33 | enum ePileFaceingType { | 35 | enum ePileFaceingType { |
34 | pileFaceUp = 0, pileFaceDown, pileFaceUpOrDown | 36 | pileFaceUp = 0, pileFaceDown, pileFaceUpOrDown |
35 | }; | 37 | }; |
36 | 38 | ||
37 | 39 | ||
38 | class Card; | 40 | class Card; |
39 | class Config; | 41 | class Config; |
40 | 42 | ||
41 | 43 | ||
42 | class CardPile : public QList<Card> | 44 | class CardPile : public QList<Card> |
43 | { | 45 | { |
44 | public: | 46 | public: |
45 | CardPile(int x, int y); | 47 | CardPile(int x, int y); |
46 | virtual ~CardPile() { } | 48 | virtual ~CardPile() { } |
47 | 49 | ||
48 | int getX() { return pileX; } | 50 | int getX() { return pileX; } |
49 | int getY() { return pileY; } | 51 | int getY() { return pileY; } |
50 | int getNextX() { return pileNextX; } | 52 | int getNextX() { return pileNextX; } |
51 | int getNextY() { return pileNextY; } | 53 | int getNextY() { return pileNextY; } |
52 | int getWidth() { return pileWidth; } | 54 | int getWidth() { return pileWidth; } |
53 | int getHeight() { return pileHeight; } | 55 | int getHeight() { return pileHeight; } |
54 | int getOffsetDown() { return pileOffsetDown; } | 56 | int getOffsetDown() { return pileOffsetDown; } |
55 | int getAnzCardsInPile() { | 57 | int getAnzCardsInPile() { |
56 | int anz=0; | 58 | int anz=0; |
57 | Card *card = cardOnBottom(); | 59 | Card *card = cardOnBottom(); |
58 | while (card != NULL) { anz++; card = cardInfront(card); } | 60 | while (card != NULL) { anz++; card = cardInfront(card); } |
59 | return anz; | 61 | return anz; |
60 | } | 62 | } |
61 | 63 | ||
62 | void setX(int x) { pileX = x; } | 64 | void setX(int x) { pileX = x; } |
63 | void setY(int y) { pileY = y; } | 65 | void setY(int y) { pileY = y; } |
64 | void setNextX(int x) { pileNextX = x; } | 66 | void setNextX(int x) { pileNextX = x; } |
65 | void setNextY(int y) { pileNextY = y; } | 67 | void setNextY(int y) { pileNextY = y; } |
66 | void setWidth(int width) { pileWidth = width; } | 68 | void setWidth(int width) { pileWidth = width; } |
67 | void setHeight(int height) { pileHeight = height; } | 69 | void setHeight(int height) { pileHeight = height; } |
68 | void setOffsetDown(int down) { pileOffsetDown = down; } | 70 | void setOffsetDown(int down) { pileOffsetDown = down; } |
69 | 71 | ||
70 | void beginDealing() { dealing = TRUE; } | 72 | void beginDealing() { dealing = TRUE; } |
71 | void endDealing() { dealing = FALSE; } | 73 | void endDealing() { dealing = FALSE; } |
72 | bool isDealing() { return dealing; } | 74 | bool isDealing() { return dealing; } |
73 | 75 | ||
74 | void beginPileResize() { PileResize = TRUE; } | 76 | void beginPileResize() { PileResize = TRUE; } |
75 | void endPileResize() { PileResize = FALSE; } | 77 | void endPileResize() { PileResize = FALSE; } |
76 | bool isPileResize() { return PileResize; } | 78 | bool isPileResize() { return PileResize; } |
77 | 79 | ||
78 | int distanceFromPile(int x, int y); | 80 | int distanceFromPile(int x, int y); |
79 | int distanceFromNextPos(int x, int y); | 81 | int distanceFromNextPos(int x, int y); |
80 | 82 | ||
81 | Card *cardOnTop() { return getLast(); } | 83 | Card *cardOnTop() { return getLast(); } |
82 | Card *cardOnBottom() { return getFirst(); } | 84 | Card *cardOnBottom() { return getFirst(); } |
83 | Card *cardInfront(Card *c); | 85 | Card *cardInfront(Card *c); |
84 | bool kingOnTop(); | 86 | bool kingOnTop(); |
85 | 87 | ||
86 | bool addCardToTop(Card *c); | 88 | bool addCardToTop(Card *c); |
87 | bool addCardToBottom(Card *c); | 89 | bool addCardToBottom(Card *c); |
88 | bool removeCard(Card *c); | 90 | bool removeCard(Card *c); |
89 | 91 | ||
90 | virtual void cardAddedToTop(Card *) { } | 92 | virtual void cardAddedToTop(Card *) { } |
91 | virtual void cardAddedToBottom(Card *) { } | 93 | virtual void cardAddedToBottom(Card *) { } |
92 | virtual void cardRemoved(Card *) { } | 94 | virtual void cardRemoved(Card *) { } |
93 | virtual bool isAllowedOnTop(Card *) { return FALSE; } | 95 | virtual bool isAllowedOnTop(Card *) { return FALSE; } |
94 | virtual bool isAllowedOnBottom(Card *) { return FALSE; } | 96 | virtual bool isAllowedOnBottom(Card *) { return FALSE; } |
95 | virtual bool isAllowedToBeMoved(Card *) { return FALSE; } | 97 | virtual bool isAllowedToBeMoved(Card *) { return FALSE; } |
96 | virtual QPoint getCardPos(Card *) { return QPoint(pileX, pileY); } | 98 | virtual QPoint getCardPos(Card *) { return QPoint(pileX, pileY); } |
97 | virtual QPoint getHypertheticalNextCardPos() { return QPoint(pileX, pileY); } | 99 | virtual QPoint getHypertheticalNextCardPos() { return QPoint(pileX, pileY); } |
98 | 100 | ||
99 | void writeConfig( Config& cfg, QString name ); | 101 | void writeConfig( Config& cfg, QString name ); |
100 | 102 | ||
101 | protected: | 103 | protected: |
102 | int pileX, pileY; | 104 | int pileX, pileY; |
103 | int pileNextX, pileNextY; | 105 | int pileNextX, pileNextY; |
104 | int pileWidth, pileHeight; | 106 | int pileWidth, pileHeight; |
105 | int pileCenterX, pileCenterY; | 107 | int pileCenterX, pileCenterY; |
106 | int pileRadius; | 108 | int pileRadius; |
107 | int pileOffsetDown; | 109 | int pileOffsetDown; |
108 | private: | 110 | private: |
109 | bool dealing; | 111 | bool dealing; |
110 | bool PileResize; | 112 | bool PileResize; |
111 | }; | 113 | }; |
112 | 114 | ||
113 | 115 | ||
114 | #endif | 116 | #endif |
115 | 117 | ||