author | sandman <sandman> | 2002-11-25 22:12:18 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-11-25 22:12:18 (UTC) |
commit | 4e6b2585987290f874697cbec7c289b4df29f82b (patch) (unidiff) | |
tree | e19415ef5374ffa3730380813298111e24711590 | |
parent | 7bd8ef9197506897d3a5287a013934f89658d60a (diff) | |
download | opie-4e6b2585987290f874697cbec7c289b4df29f82b.zip opie-4e6b2585987290f874697cbec7c289b4df29f82b.tar.gz opie-4e6b2585987290f874697cbec7c289b4df29f82b.tar.bz2 |
Some changes to the QPEDecoration c'tor internals:
Since the current deco plugin is unloaded, when a new Deco is created
via new (even if this new deco is never used or deleted immediatly afer-
wards), we have to remember the plugin name, in case someone calls the
default c'tor (without supplying a plugin name)
-rw-r--r-- | library/qpeapplication.cpp | 9 | ||||
-rw-r--r-- | library/qpedecoration_qws.cpp | 41 | ||||
-rw-r--r-- | library/qpedecoration_qws.h | 2 |
3 files changed, 25 insertions, 27 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index a54fb20..c8e6e74 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -898,9 +898,9 @@ void QPEApplication::setDefaultRotation( int r ) | |||
898 | } | 898 | } |
899 | } | 899 | } |
900 | 900 | ||
901 | // exported to libpreload.so | 901 | // exported to libpreload.so |
902 | bool opie_block_style = false; | 902 | int opie_block_style = 0; |
903 | 903 | ||
904 | /*! | 904 | /*! |
905 | \internal | 905 | \internal |
906 | */ | 906 | */ |
@@ -909,9 +909,9 @@ void QPEApplication::applyStyle() | |||
909 | Config config( "qpe" ); | 909 | Config config( "qpe" ); |
910 | config.setGroup( "Appearance" ); | 910 | config.setGroup( "Appearance" ); |
911 | 911 | ||
912 | // don't block ourselves ... | 912 | // don't block ourselves ... |
913 | opie_block_style = false; | 913 | opie_block_style = 0; |
914 | 914 | ||
915 | 915 | ||
916 | static QString appname; | 916 | static QString appname; |
917 | 917 | ||
@@ -974,8 +974,10 @@ void QPEApplication::applyStyle() | |||
974 | // don't set a custom deco | 974 | // don't set a custom deco |
975 | if ( nostyle & 0x04 ) | 975 | if ( nostyle & 0x04 ) |
976 | dec = ""; | 976 | dec = ""; |
977 | 977 | ||
978 | //qDebug ( "Setting Deco: %s -- old %s (%d)", dec.latin1(), d-> decorationName.latin1(), nostyle); | ||
979 | |||
978 | if ( dec != d->decorationName ) { | 980 | if ( dec != d->decorationName ) { |
979 | qwsSetDecoration( new QPEDecoration( dec ) ); | 981 | qwsSetDecoration( new QPEDecoration( dec ) ); |
980 | d->decorationName = dec; | 982 | d->decorationName = dec; |
981 | } | 983 | } |
@@ -992,9 +994,10 @@ void QPEApplication::applyStyle() | |||
992 | 994 | ||
993 | setFont( QFont(ff, fs) ); | 995 | setFont( QFont(ff, fs) ); |
994 | 996 | ||
995 | // revert to global blocking policy ... | 997 | // revert to global blocking policy ... |
996 | opie_block_style = config. readBoolEntry ( "ForceStyle", false ); | 998 | opie_block_style = config. readBoolEntry ( "ForceStyle", false ) ? 0xff : 0x00; |
999 | opie_block_style -= nostyle; | ||
997 | } | 1000 | } |
998 | 1001 | ||
999 | void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data ) | 1002 | void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data ) |
1000 | { | 1003 | { |
diff --git a/library/qpedecoration_qws.cpp b/library/qpedecoration_qws.cpp index 6221f5b..5e0c32a 100644 --- a/library/qpedecoration_qws.cpp +++ b/library/qpedecoration_qws.cpp | |||
@@ -479,50 +479,37 @@ private: | |||
479 | }; | 479 | }; |
480 | 480 | ||
481 | static WindowDecorationInterface *wdiface = 0; | 481 | static WindowDecorationInterface *wdiface = 0; |
482 | static QLibrary *wdlib = 0; | 482 | static QLibrary *wdlib = 0; |
483 | static QString libname; | ||
483 | 484 | ||
484 | //=========================================================================== | 485 | //=========================================================================== |
485 | 486 | ||
486 | QPEDecoration::QPEDecoration() | 487 | QPEDecoration::QPEDecoration() |
487 | : QWSDefaultDecoration() | 488 | : QWSDefaultDecoration() |
488 | { | 489 | { |
489 | if ( wdlib ) { | 490 | init ( libname ); |
490 | wdiface->release(); | ||
491 | wdlib->unload(); | ||
492 | delete wdlib; | ||
493 | wdlib = 0; | ||
494 | } else { | ||
495 | delete wdiface; | ||
496 | } | ||
497 | wdiface = new DefaultWindowDecoration; | ||
498 | |||
499 | helpFile = QString(qApp->argv()[0]) + ".html"; | ||
500 | QStringList helpPath = Global::helpPath(); | ||
501 | helpExists = FALSE; | ||
502 | for (QStringList::ConstIterator it=helpPath.begin(); it!=helpPath.end() && !helpExists; ++it) { | ||
503 | helpExists = QFile::exists( *it + "/" + helpFile ); | ||
504 | qDebug ( "Checking %s/%s for help: %d", (*it).latin1(), helpFile.latin1(),helpExists); | ||
505 | } | ||
506 | qpeManager = new QPEManager( this ); | ||
507 | |||
508 | // for backward compatibility: | ||
509 | imageOk = *okImage ( 15 ); | ||
510 | imageClose = *closeImage ( 15 ); | ||
511 | imageHelp = *helpImage ( 15 ); | ||
512 | } | 491 | } |
513 | 492 | ||
514 | QPEDecoration::QPEDecoration( const QString &plugin ) | 493 | QPEDecoration::QPEDecoration( const QString &plugin ) |
515 | : QWSDefaultDecoration() | 494 | : QWSDefaultDecoration() |
516 | { | 495 | { |
496 | init ( plugin ); | ||
497 | } | ||
498 | |||
499 | void QPEDecoration::init ( const QString &plugin ) | ||
500 | { | ||
501 | libname = plugin; | ||
502 | |||
517 | if ( wdlib ) { | 503 | if ( wdlib ) { |
518 | wdiface->release(); | 504 | wdiface->release(); |
519 | wdlib->unload(); | 505 | wdlib->unload(); |
520 | delete wdlib; | 506 | delete wdlib; |
521 | wdlib = 0; | 507 | wdlib = 0; |
522 | } else { | 508 | } else { |
523 | delete wdiface; | 509 | delete wdiface; |
524 | } | 510 | } |
511 | |||
525 | WindowDecorationInterface *iface = 0; | 512 | WindowDecorationInterface *iface = 0; |
526 | QString path = QPEApplication::qpeDir() + "/plugins/decorations"; | 513 | QString path = QPEApplication::qpeDir() + "/plugins/decorations"; |
527 | QLibrary *lib = new QLibrary( path + "/" + plugin ); | 514 | QLibrary *lib = new QLibrary( path + "/" + plugin ); |
528 | if ( lib->queryInterface( IID_WindowDecoration, (QUnknownInterface**)&iface ) == QS_OK && iface ) { | 515 | if ( lib->queryInterface( IID_WindowDecoration, (QUnknownInterface**)&iface ) == QS_OK && iface ) { |
@@ -537,10 +524,16 @@ QPEDecoration::QPEDecoration( const QString &plugin ) | |||
537 | QStringList helpPath = Global::helpPath(); | 524 | QStringList helpPath = Global::helpPath(); |
538 | helpExists = FALSE; | 525 | helpExists = FALSE; |
539 | for (QStringList::ConstIterator it=helpPath.begin(); it!=helpPath.end() && !helpExists; ++it) { | 526 | for (QStringList::ConstIterator it=helpPath.begin(); it!=helpPath.end() && !helpExists; ++it) { |
540 | helpExists = QFile::exists( *it + "/" + helpFile ); | 527 | helpExists = QFile::exists( *it + "/" + helpFile ); |
541 | qDebug ( "Checking %s/%s for help: %d", (*it).latin1(), helpFile.latin1(),helpExists); } | 528 | //qDebug ( "Checking %s/%s for help: %d", (*it).latin1(), helpFile.latin1(),helpExists); |
529 | } | ||
542 | qpeManager = new QPEManager( this ); | 530 | qpeManager = new QPEManager( this ); |
531 | |||
532 | // Qtopia 1.5 compatibility | ||
533 | imageOk = *okImage ( 15 ); | ||
534 | imageClose = *closeImage ( 15 ); | ||
535 | imageHelp = *helpImage ( 15 ); | ||
543 | } | 536 | } |
544 | 537 | ||
545 | QPEDecoration::~QPEDecoration() | 538 | QPEDecoration::~QPEDecoration() |
546 | { | 539 | { |
diff --git a/library/qpedecoration_qws.h b/library/qpedecoration_qws.h index 691c6f6..6628ba2 100644 --- a/library/qpedecoration_qws.h +++ b/library/qpedecoration_qws.h | |||
@@ -62,8 +62,10 @@ protected: | |||
62 | 62 | ||
63 | private: | 63 | private: |
64 | void windowData( const QWidget *w, WindowDecorationInterface::WindowData &wd ) const; | 64 | void windowData( const QWidget *w, WindowDecorationInterface::WindowData &wd ) const; |
65 | 65 | ||
66 | void init ( const QString & ); | ||
67 | |||
66 | protected: | 68 | protected: |
67 | QImage imageOk; | 69 | QImage imageOk; |
68 | QImage imageClose; | 70 | QImage imageClose; |
69 | QImage imageHelp; | 71 | QImage imageHelp; |