author | sandman <sandman> | 2002-06-21 01:23:55 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-06-21 01:23:55 (UTC) |
commit | 3f1129f79e945135828191679559da70cf4ac6fa (patch) (side-by-side diff) | |
tree | ac5a2e4698a93a201c6bdb5bcf377e1e429c32ed /library | |
parent | 2a7407325b1607c9ee40ed3558c8549672a36ad4 (diff) | |
download | opie-3f1129f79e945135828191679559da70cf4ac6fa.zip opie-3f1129f79e945135828191679559da70cf4ac6fa.tar.gz opie-3f1129f79e945135828191679559da70cf4ac6fa.tar.bz2 |
Added a hack to support on-demand loading of liquid style with Qt2
Will be removed, once we switch to Qt3
-rw-r--r-- | library/qpeapplication.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index f84bc0e..1534b0b 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -87,12 +87,13 @@ #include <linux/fb.h> #include <sys/types.h> #include <sys/stat.h> #endif #include <stdlib.h> +#include <dlfcn.h> // for Liquid HACK class QPEApplicationData { public: QPEApplicationData() : presstimer(0), presswidget(0), rightpressed(FALSE), kbgrabber(0), kbregrab(FALSE), notbusysent(FALSE), preloaded(FALSE), forceshow(FALSE), nomaximize(FALSE), qpe_main_widget(0), @@ -1311,12 +1312,33 @@ void QPEApplication::internalSetStyle( const QString &style ) #endif #ifndef QT_NO_STYLE_MOTIFPLUS else if ( style == "MotifPlus" ) { setStyle( new QMotifPlusStyle ); } #endif + + // HACK for Qt2 only + else if ( style == "Liquid" ) { + static void *lib = 0; + QStyle *sty = 0; + + + if ( !lib ) { + QString path = QPEApplication::qpeDir() + "/plugins/styles/" + "libliquid.so"; + lib = ::dlopen ( path. local8Bit ( ), RTLD_NOW | RTLD_GLOBAL ); + } + if ( lib ) { + void *sym = ::dlsym ( lib, "allocate" ); + + if ( sym ) + sty = ((QStyle * (*) ( )) sym ) ( ); + } + if ( sty ) + setStyle ( sty ); + } + // HACK for Qt2 only #endif } /*! \internal */ |