-rw-r--r-- | core/launcher/firstuse.cpp | 16 | ||||
-rw-r--r-- | core/launcher/firstuse.h | 1 | ||||
-rw-r--r-- | core/launcher/main.cpp | 3 |
3 files changed, 12 insertions, 8 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 @@ #define private public #define protected public #endif #include "firstuse.h" #include "inputmethods.h" #include "applauncher.h" #include "serverapp.h" #include <qtopia/custom.h> -#if defined(QPE_NEED_CALIBRATION) + #include "calibrate.h" -#endif #include "documentlist.h" #include <qtopia/resource.h> #include <qtopia/qcopenvelope_qws.h> #include <qtopia/qpeapplication.h> #include <qtopia/config.h> #include <qtopia/applnk.h> #include <qtopia/mimetype.h> @@ -163,22 +162,26 @@ FirstUse::FirstUse(QWidget* parent, const char * name, WFlags wf) : #if defined(Q_WS_QWS) && !defined(QT_NO_COP) qDebug("Setting up QCop to QPE/System"); QCopChannel* sysChannel = new QCopChannel( "QPE/System", this ); connect(sysChannel, SIGNAL(received(const QCString &, const QByteArray &)), this, SLOT(message(const QCString &, const QByteArray &)) ); #endif calcMaxWindowRect(); -#if defined(QPE_NEED_CALIBRATION) + + m_calHandler = ( QWSServer::mouseHandler() && QWSServer::mouseHandler()->inherits("QCalibratedMouseHandler") ) ? true : false; + + if ( m_calHandler) { if ( !QFile::exists("/etc/pointercal") ) { needCalibrate = TRUE; grabMouse(); } -#endif + } + Config config("locale"); config.setGroup( "Language"); lang = config.readEntry( "Language", "en"); defaultFont = font(); //###language/font hack; should look it up somewhere #ifdef Q_WS_QWS @@ -486,32 +489,31 @@ void FirstUse::updateButtons() i = currApp+1; while ( settingsTable[i].app && !settingsTable[i].enabled ) i++; if ( !settingsTable[i].app ) next->setText(tr("Finish")); else next->setText(tr("Next >>")); + next->setEnabled( !waitingForLaunch ); } void FirstUse::keyPressEvent( QKeyEvent *e ) { // Allow cancelling at first dialog, in case display is broken. if ( e->key() == Key_Escape && currApp < 0 ) QDialog::keyPressEvent(e); } void FirstUse::mouseReleaseEvent( QMouseEvent * ) { if ( currApp < 0 ) { -#if defined(QPE_NEED_CALIBRATION) - if ( needCalibrate ) { + if ( m_calHandler && needCalibrate ) { releaseMouse(); Calibrate *cal = new Calibrate; cal->exec(); delete cal; } -#endif nextDialog(); } } 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: DocumentList *docList; AppLauncher *appLauncher; QWidget *taskBar; int currApp; int waitForExit; bool waitingForLaunch; bool needRestart; + bool m_calHandler : 1; QFont defaultFont; }; 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() QString layout = config.readEntry( "Layout", "us101" ); Server::setKeyboardLayout( layout ); } static bool firstUse() { bool needFirstUse = FALSE; - if ( QWSServer::mouseHandler() ->inherits("QCalibratedMouseHandler") ) { + if ( QWSServer::mouseHandler() && + QWSServer::mouseHandler() ->inherits("QCalibratedMouseHandler") ) { if ( !QFile::exists( "/etc/pointercal" ) ) needFirstUse = TRUE; } { Config config( "qpe" ); config.setGroup( "Startup" ); needFirstUse |= config.readBoolEntry( "FirstUse", TRUE ); |