summaryrefslogtreecommitdiff
authorsandman <sandman>2002-11-25 22:12:18 (UTC)
committer sandman <sandman>2002-11-25 22:12:18 (UTC)
commit4e6b2585987290f874697cbec7c289b4df29f82b (patch) (unidiff)
treee19415ef5374ffa3730380813298111e24711590
parent7bd8ef9197506897d3a5287a013934f89658d60a (diff)
downloadopie-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)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpeapplication.cpp9
-rw-r--r--library/qpedecoration_qws.cpp41
-rw-r--r--library/qpedecoration_qws.h2
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
902bool opie_block_style = false; 902int 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
999void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data ) 1002void 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
481static WindowDecorationInterface *wdiface = 0; 481static WindowDecorationInterface *wdiface = 0;
482static QLibrary *wdlib = 0; 482static QLibrary *wdlib = 0;
483static QString libname;
483 484
484//=========================================================================== 485//===========================================================================
485 486
486QPEDecoration::QPEDecoration() 487QPEDecoration::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
514QPEDecoration::QPEDecoration( const QString &plugin ) 493QPEDecoration::QPEDecoration( const QString &plugin )
515 : QWSDefaultDecoration() 494 : QWSDefaultDecoration()
516{ 495{
496 init ( plugin );
497}
498
499void 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
545QPEDecoration::~QPEDecoration() 538QPEDecoration::~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
63private: 63private:
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
66protected: 68protected:
67 QImage imageOk; 69 QImage imageOk;
68 QImage imageClose; 70 QImage imageClose;
69 QImage imageHelp; 71 QImage imageHelp;