summaryrefslogtreecommitdiff
path: root/library
Unidiff
Diffstat (limited to 'library') (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpeapplication.cpp27
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*/
1168QPEApplication::~QPEApplication() 1168QPEApplication::~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*/
1188QString QPEApplication::qpeDir() 1188QString 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*/
1201QString QPEApplication::documentDir() 1214QString 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
1210static int deforient = -1; 1223static int deforient = -1;
1211 1224
1212/*! 1225/*!
1213 \internal 1226 \internal
1214*/ 1227*/
1215int QPEApplication::defaultRotation() 1228int 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