summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/firstuse.cpp24
-rw-r--r--core/launcher/firstuse.h1
-rw-r--r--core/launcher/main.cpp3
3 files changed, 16 insertions, 12 deletions
diff --git a/core/launcher/firstuse.cpp b/core/launcher/firstuse.cpp
index 2dc6a72..3f769ae 100644
--- a/core/launcher/firstuse.cpp
+++ b/core/launcher/firstuse.cpp
@@ -25,19 +25,18 @@
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 <qtopia/custom.h> 32#include <qtopia/custom.h>
33#if defined(QPE_NEED_CALIBRATION) 33
34#include "calibrate.h" 34#include "calibrate.h"
35#endif
36#include "documentlist.h" 35#include "documentlist.h"
37 36
38#include <qtopia/resource.h> 37#include <qtopia/resource.h>
39#include <qtopia/qcopenvelope_qws.h> 38#include <qtopia/qcopenvelope_qws.h>
40#include <qtopia/qpeapplication.h> 39#include <qtopia/qpeapplication.h>
41#include <qtopia/config.h> 40#include <qtopia/config.h>
42#include <qtopia/applnk.h> 41#include <qtopia/applnk.h>
43#include <qtopia/mimetype.h> 42#include <qtopia/mimetype.h>
@@ -163,22 +162,26 @@ FirstUse::FirstUse(QWidget* parent, const char * name, WFlags wf) :
163 162
164#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 163#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
165 qDebug("Setting up QCop to QPE/System"); 164 qDebug("Setting up QCop to QPE/System");
166 QCopChannel* sysChannel = new QCopChannel( "QPE/System", this ); 165 QCopChannel* sysChannel = new QCopChannel( "QPE/System", this );
167 connect(sysChannel, SIGNAL(received(const QCString &, const QByteArray &)), 166 connect(sysChannel, SIGNAL(received(const QCString &, const QByteArray &)),
168 this, SLOT(message(const QCString &, const QByteArray &)) ); 167 this, SLOT(message(const QCString &, const QByteArray &)) );
169#endif 168#endif
170 calcMaxWindowRect(); 169 calcMaxWindowRect();
171#if defined(QPE_NEED_CALIBRATION) 170
172 if ( !QFile::exists("/etc/pointercal") ) { 171 m_calHandler = ( QWSServer::mouseHandler() && QWSServer::mouseHandler()->inherits("QCalibratedMouseHandler") ) ? true : false;
173 needCalibrate = TRUE; 172
174 grabMouse(); 173 if ( m_calHandler) {
174 if ( !QFile::exists("/etc/pointercal") ) {
175 needCalibrate = TRUE;
176 grabMouse();
177 }
175 } 178 }
176#endif 179
177 Config config("locale"); 180 Config config("locale");
178 config.setGroup( "Language"); 181 config.setGroup( "Language");
179 lang = config.readEntry( "Language", "en"); 182 lang = config.readEntry( "Language", "en");
180 183
181 defaultFont = font(); 184 defaultFont = font();
182 185
183 //###language/font hack; should look it up somewhere 186 //###language/font hack; should look it up somewhere
184#ifdef Q_WS_QWS 187#ifdef Q_WS_QWS
@@ -225,17 +228,17 @@ void FirstUse::nextDialog()
225{ 228{
226 int prevApp = currApp; 229 int prevApp = currApp;
227 do { 230 do {
228 currApp++; 231 currApp++;
229 qDebug( "currApp = %d", currApp ); 232 qDebug( "currApp = %d", currApp );
230 if ( settingsTable[currApp].app == 0 ) { 233 if ( settingsTable[currApp].app == 0 ) {
231 if ( prevApp >= 0 && appLauncher->isRunning(settingsTable[prevApp].app) ) { 234 if ( prevApp >= 0 && appLauncher->isRunning(settingsTable[prevApp].app) ) {
232 // The last application is still running. 235 // The last application is still running.
233 // Tell it to stop, and when its done we'll come back 236 // Tell it to stop, and when its done we'll come back
234 // to nextDialog and exit. 237 // to nextDialog and exit.
235 qDebug( "Waiting for %s to exit", settingsTable[prevApp].app ); 238 qDebug( "Waiting for %s to exit", settingsTable[prevApp].app );
236 QCopEnvelope e(QCString("QPE/Application/") + settingsTable[prevApp].app, 239 QCopEnvelope e(QCString("QPE/Application/") + settingsTable[prevApp].app,
237 settingsTable[prevApp].stop ); 240 settingsTable[prevApp].stop );
238 currApp = prevApp; 241 currApp = prevApp;
239 } else { 242 } else {
240 qDebug( "Done!" ); 243 qDebug( "Done!" );
241 Config config( "qpe" ); 244 Config config( "qpe" );
@@ -486,32 +489,31 @@ void FirstUse::updateButtons()
486 489
487 i = currApp+1; 490 i = currApp+1;
488 while ( settingsTable[i].app && !settingsTable[i].enabled ) 491 while ( settingsTable[i].app && !settingsTable[i].enabled )
489 i++; 492 i++;
490 if ( !settingsTable[i].app ) 493 if ( !settingsTable[i].app )
491 next->setText(tr("Finish")); 494 next->setText(tr("Finish"));
492 else 495 else
493 next->setText(tr("Next >>")); 496 next->setText(tr("Next >>"));
497
494 next->setEnabled( !waitingForLaunch ); 498 next->setEnabled( !waitingForLaunch );
495} 499}
496 500
497void FirstUse::keyPressEvent( QKeyEvent *e ) 501void FirstUse::keyPressEvent( QKeyEvent *e )
498{ 502{
499 // Allow cancelling at first dialog, in case display is broken. 503 // Allow cancelling at first dialog, in case display is broken.
500 if ( e->key() == Key_Escape && currApp < 0 ) 504 if ( e->key() == Key_Escape && currApp < 0 )
501 QDialog::keyPressEvent(e); 505 QDialog::keyPressEvent(e);
502} 506}
503 507
504void FirstUse::mouseReleaseEvent( QMouseEvent * ) 508void FirstUse::mouseReleaseEvent( QMouseEvent * )
505{ 509{
506 if ( currApp < 0 ) { 510 if ( currApp < 0 ) {
507#if defined(QPE_NEED_CALIBRATION) 511 if ( m_calHandler && needCalibrate ) {
508 if ( needCalibrate ) {
509 releaseMouse(); 512 releaseMouse();
510 Calibrate *cal = new Calibrate; 513 Calibrate *cal = new Calibrate;
511 cal->exec(); 514 cal->exec();
512 delete cal; 515 delete cal;
513 } 516 }
514#endif
515 nextDialog(); 517 nextDialog();
516 } 518 }
517} 519}
diff --git a/core/launcher/firstuse.h b/core/launcher/firstuse.h
index 44a95a8..98858f8 100644
--- a/core/launcher/firstuse.h
+++ b/core/launcher/firstuse.h
@@ -74,11 +74,12 @@ private:
74 DocumentList *docList; 74 DocumentList *docList;
75 AppLauncher *appLauncher; 75 AppLauncher *appLauncher;
76 QWidget *taskBar; 76 QWidget *taskBar;
77 77
78 int currApp; 78 int currApp;
79 int waitForExit; 79 int waitForExit;
80 bool waitingForLaunch; 80 bool waitingForLaunch;
81 bool needRestart; 81 bool needRestart;
82 bool m_calHandler : 1;
82 83
83 QFont defaultFont; 84 QFont defaultFont;
84}; 85};
diff --git a/core/launcher/main.cpp b/core/launcher/main.cpp
index 075985d..ad40536 100644
--- a/core/launcher/main.cpp
+++ b/core/launcher/main.cpp
@@ -193,17 +193,18 @@ static void initKeyboard()
193 193
194 QString layout = config.readEntry( "Layout", "us101" ); 194 QString layout = config.readEntry( "Layout", "us101" );
195 Server::setKeyboardLayout( layout ); 195 Server::setKeyboardLayout( layout );
196} 196}
197 197
198static bool firstUse() 198static bool firstUse()
199{ 199{
200 bool needFirstUse = FALSE; 200 bool needFirstUse = FALSE;
201 if ( QWSServer::mouseHandler() ->inherits("QCalibratedMouseHandler") ) { 201 if ( QWSServer::mouseHandler() &&
202 QWSServer::mouseHandler() ->inherits("QCalibratedMouseHandler") ) {
202 if ( !QFile::exists( "/etc/pointercal" ) ) 203 if ( !QFile::exists( "/etc/pointercal" ) )
203 needFirstUse = TRUE; 204 needFirstUse = TRUE;
204 } 205 }
205 206
206 { 207 {
207 Config config( "qpe" ); 208 Config config( "qpe" );
208 config.setGroup( "Startup" ); 209 config.setGroup( "Startup" );
209 needFirstUse |= config.readBoolEntry( "FirstUse", TRUE ); 210 needFirstUse |= config.readBoolEntry( "FirstUse", TRUE );