-rw-r--r-- | library/qpeapplication.cpp | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 3efba20..0b6d56d 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -368,78 +368,78 @@ public: | |||
368 | 368 | ||
369 | 369 | ||
370 | void show(QWidget* mw, bool nomax) | 370 | void show(QWidget* mw, bool nomax) |
371 | { | 371 | { |
372 | setWidgetCaptionFromAppName( mw, appName, QPEApplication::qpeDir() + "apps" ); | 372 | setWidgetCaptionFromAppName( mw, appName, QPEApplication::qpeDir() + "apps" ); |
373 | nomaximize = nomax; | 373 | nomaximize = nomax; |
374 | qpe_main_widget = mw; | 374 | qpe_main_widget = mw; |
375 | qcopQok = TRUE; | 375 | qcopQok = TRUE; |
376 | #ifndef QT_NO_COP | 376 | #ifndef QT_NO_COP |
377 | 377 | ||
378 | sendQCopQ(); | 378 | sendQCopQ(); |
379 | #endif | 379 | #endif |
380 | 380 | ||
381 | if ( preloaded ) { | 381 | if ( preloaded ) { |
382 | if (forceshow) | 382 | if (forceshow) |
383 | show_mx(mw, nomax, appName); | 383 | show_mx(mw, nomax, appName); |
384 | } | 384 | } |
385 | else if ( keep_running ) { | 385 | else if ( keep_running ) { |
386 | show_mx(mw, nomax, appName); | 386 | show_mx(mw, nomax, appName); |
387 | } | 387 | } |
388 | } | 388 | } |
389 | 389 | ||
390 | void loadTextCodecs() | 390 | void loadTextCodecs() |
391 | { | 391 | { |
392 | QString path = QPEApplication::qpeDir() + "/plugins/textcodecs"; | 392 | QString path = QPEApplication::qpeDir() + "plugins/textcodecs"; |
393 | #ifdef Q_OS_MACX | 393 | #ifdef Q_OS_MACX |
394 | QDir dir( path, "lib*.dylib" ); | 394 | QDir dir( path, "lib*.dylib" ); |
395 | #else | 395 | #else |
396 | QDir dir( path, "lib*.so" ); | 396 | QDir dir( path, "lib*.so" ); |
397 | #endif | 397 | #endif |
398 | QStringList list; | 398 | QStringList list; |
399 | if ( dir. exists ( )) | 399 | if ( dir. exists ( )) |
400 | list = dir.entryList(); | 400 | list = dir.entryList(); |
401 | QStringList::Iterator it; | 401 | QStringList::Iterator it; |
402 | for ( it = list.begin(); it != list.end(); ++it ) { | 402 | for ( it = list.begin(); it != list.end(); ++it ) { |
403 | TextCodecInterface *iface = 0; | 403 | TextCodecInterface *iface = 0; |
404 | QLibrary *lib = new QLibrary( path + "/" + *it ); | 404 | QLibrary *lib = new QLibrary( path + "/" + *it ); |
405 | if ( lib->queryInterface( IID_QtopiaTextCodec, (QUnknownInterface**)&iface ) == QS_OK && iface ) { | 405 | if ( lib->queryInterface( IID_QtopiaTextCodec, (QUnknownInterface**)&iface ) == QS_OK && iface ) { |
406 | QValueList<int> mibs = iface->mibEnums(); | 406 | QValueList<int> mibs = iface->mibEnums(); |
407 | for (QValueList<int>::ConstIterator i = mibs.begin(); i != mibs.end(); ++i) { | 407 | for (QValueList<int>::ConstIterator i = mibs.begin(); i != mibs.end(); ++i) { |
408 | (void)iface->createForMib(*i); | 408 | (void)iface->createForMib(*i); |
409 | // ### it exists now; need to remember if we can delete it | 409 | // ### it exists now; need to remember if we can delete it |
410 | } | 410 | } |
411 | } | 411 | } |
412 | else { | 412 | else { |
413 | lib->unload(); | 413 | lib->unload(); |
414 | delete lib; | 414 | delete lib; |
415 | } | 415 | } |
416 | } | 416 | } |
417 | } | 417 | } |
418 | 418 | ||
419 | void loadImageCodecs() | 419 | void loadImageCodecs() |
420 | { | 420 | { |
421 | QString path = QPEApplication::qpeDir() + "/plugins/imagecodecs"; | 421 | QString path = QPEApplication::qpeDir() + "plugins/imagecodecs"; |
422 | #ifdef Q_OS_MACX | 422 | #ifdef Q_OS_MACX |
423 | QDir dir( path, "lib*.dylib" ); | 423 | QDir dir( path, "lib*.dylib" ); |
424 | #else | 424 | #else |
425 | QDir dir( path, "lib*.so" ); | 425 | QDir dir( path, "lib*.so" ); |
426 | #endif | 426 | #endif |
427 | QStringList list; | 427 | QStringList list; |
428 | if ( dir. exists ( )) | 428 | if ( dir. exists ( )) |
429 | list = dir.entryList(); | 429 | list = dir.entryList(); |
430 | QStringList::Iterator it; | 430 | QStringList::Iterator it; |
431 | for ( it = list.begin(); it != list.end(); ++it ) { | 431 | for ( it = list.begin(); it != list.end(); ++it ) { |
432 | ImageCodecInterface *iface = 0; | 432 | ImageCodecInterface *iface = 0; |
433 | QLibrary *lib = new QLibrary( path + "/" + *it ); | 433 | QLibrary *lib = new QLibrary( path + "/" + *it ); |
434 | if ( lib->queryInterface( IID_QtopiaImageCodec, (QUnknownInterface**)&iface ) == QS_OK && iface ) { | 434 | if ( lib->queryInterface( IID_QtopiaImageCodec, (QUnknownInterface**)&iface ) == QS_OK && iface ) { |
435 | QStringList formats = iface->keys(); | 435 | QStringList formats = iface->keys(); |
436 | for (QStringList::ConstIterator i = formats.begin(); i != formats.end(); ++i) { | 436 | for (QStringList::ConstIterator i = formats.begin(); i != formats.end(); ++i) { |
437 | (void)iface->installIOHandler(*i); | 437 | (void)iface->installIOHandler(*i); |
438 | // ### it exists now; need to remember if we can delete it | 438 | // ### it exists now; need to remember if we can delete it |
439 | } | 439 | } |
440 | } | 440 | } |
441 | else { | 441 | else { |
442 | lib->unload(); | 442 | lib->unload(); |
443 | delete lib; | 443 | delete lib; |
444 | } | 444 | } |
445 | } | 445 | } |
@@ -1166,53 +1166,66 @@ bool QPEApplication::qwsEventFilter( QWSEvent * e ) | |||
1166 | Destroys the QPEApplication. | 1166 | Destroys the QPEApplication. |
1167 | */ | 1167 | */ |
1168 | QPEApplication::~QPEApplication() | 1168 | QPEApplication::~QPEApplication() |
1169 | { | 1169 | { |
1170 | ungrabKeyboard(); | 1170 | ungrabKeyboard(); |
1171 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 1171 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
1172 | // Need to delete QCopChannels early, since the display will | 1172 | // Need to delete QCopChannels early, since the display will |
1173 | // be gone by the time we get to ~QObject(). | 1173 | // be gone by the time we get to ~QObject(). |
1174 | delete sysChannel; | 1174 | delete sysChannel; |
1175 | delete pidChannel; | 1175 | delete pidChannel; |
1176 | #endif | 1176 | #endif |
1177 | 1177 | ||
1178 | #ifdef OPIE_WITHROHFEEDBACK | 1178 | #ifdef OPIE_WITHROHFEEDBACK |
1179 | if( d->RoH ) | 1179 | if( d->RoH ) |
1180 | delete d->RoH; | 1180 | delete d->RoH; |
1181 | #endif | 1181 | #endif |
1182 | delete d; | 1182 | delete d; |
1183 | } | 1183 | } |
1184 | 1184 | ||
1185 | /*! | 1185 | /*! |
1186 | Returns <tt>$OPIEDIR/</tt>. | 1186 | Returns <tt>$OPIEDIR/</tt>. |
1187 | */ | 1187 | */ |
1188 | QString QPEApplication::qpeDir() | 1188 | QString QPEApplication::qpeDir() |
1189 | { | 1189 | { |
1190 | const char * base = getenv( "OPIEDIR" ); | 1190 | QString base, dir; |
1191 | if ( base ) | 1191 | |
1192 | return QString( base ) + "/"; | 1192 | if (getenv( "OPIEDIR" )) |
1193 | base = QString(getenv("OPIEDIR")).stripWhiteSpace(); | ||
1194 | if ( !base.isNull() && (base.length() > 0 )){ | ||
1195 | #ifdef Q_OS_WIN32 | ||
1196 | QString temp(base); | ||
1197 | if (temp[(int)temp.length()-1] != QDir::separator()) | ||
1198 | temp.append(QDir::separator()); | ||
1199 | dir = temp; | ||
1200 | #else | ||
1201 | dir = QString( base ) + "/"; | ||
1202 | #endif | ||
1203 | }else{ | ||
1204 | dir = QString( ".." ) + QDir::separator(); | ||
1205 | } | ||
1193 | 1206 | ||
1194 | return QString( "../" ); | 1207 | return dir; |
1195 | } | 1208 | } |
1196 | 1209 | ||
1197 | /*! | 1210 | /*! |
1198 | Returns the user's current Document directory. There is a trailing "/". | 1211 | Returns the user's current Document directory. There is a trailing "/". |
1199 | .. well, it does now,, and there's no trailing '/' | 1212 | .. well, it does now,, and there's no trailing '/' |
1200 | */ | 1213 | */ |
1201 | QString QPEApplication::documentDir() | 1214 | QString QPEApplication::documentDir() |
1202 | { | 1215 | { |
1203 | const char* base = getenv( "HOME"); | 1216 | const char* base = getenv( "HOME"); |
1204 | if ( base ) | 1217 | if ( base ) |
1205 | return QString( base ) + "/Documents"; | 1218 | return QString( base ) + "/Documents"; |
1206 | 1219 | ||
1207 | return QString( "../Documents" ); | 1220 | return QString( "../Documents" ); |
1208 | } | 1221 | } |
1209 | 1222 | ||
1210 | static int deforient = -1; | 1223 | static int deforient = -1; |
1211 | 1224 | ||
1212 | /*! | 1225 | /*! |
1213 | \internal | 1226 | \internal |
1214 | */ | 1227 | */ |
1215 | int QPEApplication::defaultRotation() | 1228 | int QPEApplication::defaultRotation() |
1216 | { | 1229 | { |
1217 | if ( deforient < 0 ) { | 1230 | if ( deforient < 0 ) { |
1218 | QString d = getenv( "QWS_DISPLAY" ); | 1231 | QString d = getenv( "QWS_DISPLAY" ); |
@@ -1814,49 +1827,49 @@ void QPEApplication::internalSetStyle( const QString &style ) | |||
1814 | else if ( style == "QPE" ) { | 1827 | else if ( style == "QPE" ) { |
1815 | setStyle( new QPEStyle ); | 1828 | setStyle( new QPEStyle ); |
1816 | } | 1829 | } |
1817 | else if ( style == "Light" ) { | 1830 | else if ( style == "Light" ) { |
1818 | setStyle( new LightStyle ); | 1831 | setStyle( new LightStyle ); |
1819 | } | 1832 | } |
1820 | #ifndef QT_NO_STYLE_PLATINUM | 1833 | #ifndef QT_NO_STYLE_PLATINUM |
1821 | else if ( style == "Platinum" ) { | 1834 | else if ( style == "Platinum" ) { |
1822 | setStyle( new QPlatinumStyle ); | 1835 | setStyle( new QPlatinumStyle ); |
1823 | } | 1836 | } |
1824 | #endif | 1837 | #endif |
1825 | #ifndef QT_NO_STYLE_MOTIF | 1838 | #ifndef QT_NO_STYLE_MOTIF |
1826 | else if ( style == "Motif" ) { | 1839 | else if ( style == "Motif" ) { |
1827 | setStyle( new QMotifStyle ); | 1840 | setStyle( new QMotifStyle ); |
1828 | } | 1841 | } |
1829 | #endif | 1842 | #endif |
1830 | #ifndef QT_NO_STYLE_MOTIFPLUS | 1843 | #ifndef QT_NO_STYLE_MOTIFPLUS |
1831 | else if ( style == "MotifPlus" ) { | 1844 | else if ( style == "MotifPlus" ) { |
1832 | setStyle( new QMotifPlusStyle ); | 1845 | setStyle( new QMotifPlusStyle ); |
1833 | } | 1846 | } |
1834 | #endif | 1847 | #endif |
1835 | 1848 | ||
1836 | else { | 1849 | else { |
1837 | QStyle *sty = 0; | 1850 | QStyle *sty = 0; |
1838 | QString path = QPEApplication::qpeDir ( ) + "/plugins/styles/"; | 1851 | QString path = QPEApplication::qpeDir ( ) + "plugins/styles/"; |
1839 | 1852 | ||
1840 | #ifdef Q_OS_MACX | 1853 | #ifdef Q_OS_MACX |
1841 | if ( style. find ( ".dylib" ) > 0 ) | 1854 | if ( style. find ( ".dylib" ) > 0 ) |
1842 | path += style; | 1855 | path += style; |
1843 | else | 1856 | else |
1844 | path = path + "lib" + style. lower ( ) + ".dylib"; // compatibility | 1857 | path = path + "lib" + style. lower ( ) + ".dylib"; // compatibility |
1845 | #else | 1858 | #else |
1846 | if ( style. find ( ".so" ) > 0 ) | 1859 | if ( style. find ( ".so" ) > 0 ) |
1847 | path += style; | 1860 | path += style; |
1848 | else | 1861 | else |
1849 | path = path + "lib" + style. lower ( ) + ".so"; // compatibility | 1862 | path = path + "lib" + style. lower ( ) + ".so"; // compatibility |
1850 | #endif | 1863 | #endif |
1851 | static QLibrary *lastlib = 0; | 1864 | static QLibrary *lastlib = 0; |
1852 | static StyleInterface *lastiface = 0; | 1865 | static StyleInterface *lastiface = 0; |
1853 | 1866 | ||
1854 | QLibrary *lib = new QLibrary ( path ); | 1867 | QLibrary *lib = new QLibrary ( path ); |
1855 | StyleInterface *iface = 0; | 1868 | StyleInterface *iface = 0; |
1856 | 1869 | ||
1857 | if (( lib-> queryInterface ( IID_Style, ( QUnknownInterface ** ) &iface ) == QS_OK ) && iface ) | 1870 | if (( lib-> queryInterface ( IID_Style, ( QUnknownInterface ** ) &iface ) == QS_OK ) && iface ) |
1858 | sty = iface-> style ( ); | 1871 | sty = iface-> style ( ); |
1859 | 1872 | ||
1860 | if ( sty ) { | 1873 | if ( sty ) { |
1861 | setStyle ( sty ); | 1874 | setStyle ( sty ); |
1862 | 1875 | ||