author | sandman <sandman> | 2002-07-01 09:45:51 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-07-01 09:45:51 (UTC) |
commit | 346ea8fa0d904e940659bc35fad0fc0da8cc7f80 (patch) (unidiff) | |
tree | 26e3865ba996ff5154132ed9020cab897cb9ad94 | |
parent | 05d74acac3af056bfd784c6f2b7f72d313ea64bc (diff) | |
download | opie-346ea8fa0d904e940659bc35fad0fc0da8cc7f80.zip opie-346ea8fa0d904e940659bc35fad0fc0da8cc7f80.tar.gz opie-346ea8fa0d904e940659bc35fad0fc0da8cc7f80.tar.bz2 |
Made loading of custom styles much faster, since symbols are now resolved
"on-the-fly" (This only makes it harder for new styles to be debugged)
-rw-r--r-- | library/qpeapplication.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 6e2db7c..dff8235 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -1340,25 +1340,25 @@ void QPEApplication::internalSetStyle( const QString &style ) | |||
1340 | if (( p1 > 0 ) && ( p2 > 0 ) && (( p1 + 1 ) < p2 )) | 1340 | if (( p1 > 0 ) && ( p2 > 0 ) && (( p1 + 1 ) < p2 )) |
1341 | style2 = "lib" + style. mid ( p1 + 1, p2 - p1 - 1 ). lower ( ) + ".so"; | 1341 | style2 = "lib" + style. mid ( p1 + 1, p2 - p1 - 1 ). lower ( ) + ".so"; |
1342 | else | 1342 | else |
1343 | style2 = "lib" + style. lower ( ) + ".so"; | 1343 | style2 = "lib" + style. lower ( ) + ".so"; |
1344 | 1344 | ||
1345 | // static QLibrary *currentlib = 0; | 1345 | // static QLibrary *currentlib = 0; |
1346 | static void *currentlib = 0; | 1346 | static void *currentlib = 0; |
1347 | 1347 | ||
1348 | QString path = QPEApplication::qpeDir ( ) + "/plugins/styles/" + style2; | 1348 | QString path = QPEApplication::qpeDir ( ) + "/plugins/styles/" + style2; |
1349 | 1349 | ||
1350 | do { // try/catch simulation | 1350 | do { // try/catch simulation |
1351 | // QLibrary *lib = new QLibrary ( path, QLibrary::Immediately ); | 1351 | // QLibrary *lib = new QLibrary ( path, QLibrary::Immediately ); |
1352 | void *lib = ::dlopen ( path. local8Bit ( ), RTLD_NOW | RTLD_GLOBAL ); | 1352 | void *lib = ::dlopen ( path. local8Bit ( ), RTLD_LAZY | RTLD_GLOBAL ); |
1353 | 1353 | ||
1354 | if ( lib ) { | 1354 | if ( lib ) { |
1355 | //QStyle * (*fpa) ( ) = (QStyle * (*) ( )) lib-> resolve ( "allocate" ); | 1355 | //QStyle * (*fpa) ( ) = (QStyle * (*) ( )) lib-> resolve ( "allocate" ); |
1356 | QStyle * (*fpa) ( ) = (QStyle * (*) ( )) ::dlsym ( lib, "allocate" ); | 1356 | QStyle * (*fpa) ( ) = (QStyle * (*) ( )) ::dlsym ( lib, "allocate" ); |
1357 | 1357 | ||
1358 | if ( fpa ) { | 1358 | if ( fpa ) { |
1359 | QStyle *sty = ( *fpa ) ( ); | 1359 | QStyle *sty = ( *fpa ) ( ); |
1360 | 1360 | ||
1361 | if ( sty ) { | 1361 | if ( sty ) { |
1362 | setStyle ( sty ); | 1362 | setStyle ( sty ); |
1363 | 1363 | ||
1364 | if ( currentlib ) { | 1364 | if ( currentlib ) { |