author | sandman <sandman> | 2002-11-24 18:21:41 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-11-24 18:21:41 (UTC) |
commit | 89bf0723eefc1e66a104fe8135f1a5389f021442 (patch) (unidiff) | |
tree | a7db1ba8fa34d8226fe9baa9e7c488c86ad95445 | |
parent | ee62e73ddc29a5015c4a3e569be90dbfce4652c6 (diff) | |
download | opie-89bf0723eefc1e66a104fe8135f1a5389f021442.zip opie-89bf0723eefc1e66a104fe8135f1a5389f021442.tar.gz opie-89bf0723eefc1e66a104fe8135f1a5389f021442.tar.bz2 |
- LD_PRELOADing of libpreload.so in case the user selected [x] Force style
settings in appearance
- Some code to NOT style some applications, based on the binary name (also
selectable in appearance)
-rw-r--r-- | library/global.cpp | 16 | ||||
-rw-r--r-- | library/qpeapplication.cpp | 60 |
2 files changed, 72 insertions, 4 deletions
diff --git a/library/global.cpp b/library/global.cpp index 9b3c51e..42c2729 100644 --- a/library/global.cpp +++ b/library/global.cpp | |||
@@ -606,2 +606,14 @@ void Global::invoke(const QString &c) | |||
606 | { | 606 | { |
607 | char *oldpre = ::getenv ( "LD_PRELOAD" ); | ||
608 | |||
609 | extern bool opie_block_style; | ||
610 | |||
611 | QString newpre = QPEApplication::qpeDir ( ) + "/lib/libpreload.so"; | ||
612 | if ( opie_block_style && QFile::exists ( newpre )) { | ||
613 | if ( oldpre && oldpre [0] ) | ||
614 | newpre = newpre + ":" + oldpre; | ||
615 | ::setenv ( "LD_PRELOAD", newpre. latin1( ), 1 ); | ||
616 | qDebug ( "\nPRELOADING\n" ); | ||
617 | } | ||
618 | |||
607 | if ( !::vfork() ) { | 619 | if ( !::vfork() ) { |
@@ -615,2 +627,6 @@ void Global::invoke(const QString &c) | |||
615 | } | 627 | } |
628 | if ( oldpre ) | ||
629 | ::setenv ( "LD_PRELOAD", oldpre, 1 ); | ||
630 | else | ||
631 | ::unsetenv ( "LD_PRELOAD" ); | ||
616 | } | 632 | } |
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 ) | |||
900 | 900 | ||
901 | // exported to libpreload.so | ||
902 | bool opie_block_style = false; | ||
903 | |||
901 | /*! | 904 | /*! |
@@ -906,8 +909,42 @@ void QPEApplication::applyStyle() | |||
906 | Config config( "qpe" ); | 909 | Config config( "qpe" ); |
907 | |||
908 | config.setGroup( "Appearance" ); | 910 | config.setGroup( "Appearance" ); |
909 | 911 | ||
912 | // don't block ourselves ... | ||
913 | opie_block_style = false; | ||
914 | |||
915 | |||
916 | static QString appname; | ||
917 | |||
918 | if ( appname. isNull ( )) { | ||
919 | char src [32]; | ||
920 | char dst [PATH_MAX + 1]; | ||
921 | ::sprintf ( src, "/proc/%d/exe", ::getpid ( )); | ||
922 | int l = ::readlink ( src, dst, PATH_MAX ); | ||
923 | if ( l > 0 ) { | ||
924 | dst [l] = 0; | ||
925 | const char *b = ::strrchr ( dst, '/' ); | ||
926 | appname = ( b ? b + 1 : dst ); | ||
927 | } | ||
928 | else | ||
929 | appname = ""; | ||
930 | } | ||
931 | |||
932 | |||
933 | QStringList ex = config. readListEntry ( "NoStyle", ';' ); | ||
934 | int nostyle = 0; | ||
935 | for ( QStringList::Iterator it = ex. begin ( ); it != ex. end ( ); ++it ) { | ||
936 | if ( QRegExp (( *it ). mid ( 1 ), false, true ). find ( appname, 0 ) >= 0 ) { | ||
937 | nostyle = ( *it ). left ( 1 ). toInt ( 0, 32 ); | ||
938 | break; | ||
939 | } | ||
940 | } | ||
941 | |||
910 | // Widget style | 942 | // Widget style |
911 | QString style = config.readEntry( "Style", "Light" ); | 943 | QString style = config.readEntry( "Style", "Light" ); |
912 | internalSetStyle( style ); | 944 | |
945 | // don't set a custom style | ||
946 | if ( nostyle & 0x01 ) | ||
947 | style = "Light"; | ||
948 | |||
949 | internalSetStyle ( style ); | ||
913 | 950 | ||
@@ -935,2 +972,7 @@ void QPEApplication::applyStyle() | |||
935 | QString dec = config.readEntry( "Decoration", "Qtopia" ); | 972 | QString dec = config.readEntry( "Decoration", "Qtopia" ); |
973 | |||
974 | // don't set a custom deco | ||
975 | if ( nostyle & 0x04 ) | ||
976 | dec = ""; | ||
977 | |||
936 | if ( dec != d->decorationName ) { | 978 | if ( dec != d->decorationName ) { |
@@ -943,3 +985,13 @@ void QPEApplication::applyStyle() | |||
943 | int fs = config.readNumEntry( "FontSize", font().pointSize() ); | 985 | int fs = config.readNumEntry( "FontSize", font().pointSize() ); |
986 | |||
987 | // don't set a custom font | ||
988 | if ( nostyle & 0x02 ) { | ||
989 | ff = "Helvetica"; | ||
990 | fs = 10; | ||
991 | } | ||
992 | |||
944 | setFont( QFont(ff, fs) ); | 993 | setFont( QFont(ff, fs) ); |
994 | |||
995 | // revert to global blocking policy ... | ||
996 | opie_block_style = config. readBoolEntry ( "ForceStyle", false ); | ||
945 | } | 997 | } |
@@ -1325,3 +1377,3 @@ void QPEApplication::internalSetStyle( const QString &style ) | |||
1325 | 1377 | ||
1326 | setStyle ( new QPEStyle ( )); | 1378 | setStyle ( new LightStyle ( )); |
1327 | } | 1379 | } |