summaryrefslogtreecommitdiff
path: root/library/qpedecoration_qws.cpp
authorsandman <sandman>2002-11-25 22:12:18 (UTC)
committer sandman <sandman>2002-11-25 22:12:18 (UTC)
commit4e6b2585987290f874697cbec7c289b4df29f82b (patch) (side-by-side diff)
treee19415ef5374ffa3730380813298111e24711590 /library/qpedecoration_qws.cpp
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 (limited to 'library/qpedecoration_qws.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpedecoration_qws.cpp41
1 files changed, 17 insertions, 24 deletions
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
@@ -480,40 +480,26 @@ private:
static WindowDecorationInterface *wdiface = 0;
static QLibrary *wdlib = 0;
+static QString libname;
//===========================================================================
QPEDecoration::QPEDecoration()
: QWSDefaultDecoration()
{
- if ( wdlib ) {
- wdiface->release();
- wdlib->unload();
- delete wdlib;
- wdlib = 0;
- } else {
- delete wdiface;
- }
- wdiface = new DefaultWindowDecoration;
-
- helpFile = QString(qApp->argv()[0]) + ".html";
- QStringList helpPath = Global::helpPath();
- helpExists = FALSE;
- for (QStringList::ConstIterator it=helpPath.begin(); it!=helpPath.end() && !helpExists; ++it) {
- helpExists = QFile::exists( *it + "/" + helpFile );
- qDebug ( "Checking %s/%s for help: %d", (*it).latin1(), helpFile.latin1(),helpExists);
- }
- qpeManager = new QPEManager( this );
-
- // for backward compatibility:
- imageOk = *okImage ( 15 );
- imageClose = *closeImage ( 15 );
- imageHelp = *helpImage ( 15 );
+ init ( libname );
}
QPEDecoration::QPEDecoration( const QString &plugin )
: QWSDefaultDecoration()
{
+ init ( plugin );
+}
+
+void QPEDecoration::init ( const QString &plugin )
+{
+ libname = plugin;
+
if ( wdlib ) {
wdiface->release();
wdlib->unload();
@@ -522,6 +508,7 @@ QPEDecoration::QPEDecoration( const QString &plugin )
} else {
delete wdiface;
}
+
WindowDecorationInterface *iface = 0;
QString path = QPEApplication::qpeDir() + "/plugins/decorations";
QLibrary *lib = new QLibrary( path + "/" + plugin );
@@ -538,8 +525,14 @@ QPEDecoration::QPEDecoration( const QString &plugin )
helpExists = FALSE;
for (QStringList::ConstIterator it=helpPath.begin(); it!=helpPath.end() && !helpExists; ++it) {
helpExists = QFile::exists( *it + "/" + helpFile );
- qDebug ( "Checking %s/%s for help: %d", (*it).latin1(), helpFile.latin1(),helpExists); }
+ //qDebug ( "Checking %s/%s for help: %d", (*it).latin1(), helpFile.latin1(),helpExists);
+ }
qpeManager = new QPEManager( this );
+
+ // Qtopia 1.5 compatibility
+ imageOk = *okImage ( 15 );
+ imageClose = *closeImage ( 15 );
+ imageHelp = *helpImage ( 15 );
}
QPEDecoration::~QPEDecoration()