-rw-r--r-- | library/qpeapplication.cpp | 60 |
1 files changed, 56 insertions, 4 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index efa65bc..a54fb20 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -900,2 +900,5 @@ void QPEApplication::setDefaultRotation( int r ) +// exported to libpreload.so +bool opie_block_style = false; + /*! @@ -906,8 +909,42 @@ void QPEApplication::applyStyle() Config config( "qpe" ); - config.setGroup( "Appearance" ); - + + // don't block ourselves ... + opie_block_style = false; + + + static QString appname; + + if ( appname. isNull ( )) { + char src [32]; + char dst [PATH_MAX + 1]; + ::sprintf ( src, "/proc/%d/exe", ::getpid ( )); + int l = ::readlink ( src, dst, PATH_MAX ); + if ( l > 0 ) { + dst [l] = 0; + const char *b = ::strrchr ( dst, '/' ); + appname = ( b ? b + 1 : dst ); + } + else + appname = ""; + } + + + QStringList ex = config. readListEntry ( "NoStyle", ';' ); + int nostyle = 0; + for ( QStringList::Iterator it = ex. begin ( ); it != ex. end ( ); ++it ) { + if ( QRegExp (( *it ). mid ( 1 ), false, true ). find ( appname, 0 ) >= 0 ) { + nostyle = ( *it ). left ( 1 ). toInt ( 0, 32 ); + break; + } + } + // Widget style QString style = config.readEntry( "Style", "Light" ); - internalSetStyle( style ); + + // don't set a custom style + if ( nostyle & 0x01 ) + style = "Light"; + + internalSetStyle ( style ); @@ -935,2 +972,7 @@ void QPEApplication::applyStyle() QString dec = config.readEntry( "Decoration", "Qtopia" ); + + // don't set a custom deco + if ( nostyle & 0x04 ) + dec = ""; + if ( dec != d->decorationName ) { @@ -943,3 +985,13 @@ void QPEApplication::applyStyle() int fs = config.readNumEntry( "FontSize", font().pointSize() ); + + // don't set a custom font + if ( nostyle & 0x02 ) { + ff = "Helvetica"; + fs = 10; + } + setFont( QFont(ff, fs) ); + + // revert to global blocking policy ... + opie_block_style = config. readBoolEntry ( "ForceStyle", false ); } @@ -1325,3 +1377,3 @@ void QPEApplication::internalSetStyle( const QString &style ) - setStyle ( new QPEStyle ( )); + setStyle ( new LightStyle ( )); } |