-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 | |||
@@ -885,76 +885,128 @@ void QPEApplication::setDefaultRotation( int r ) | |||
885 | deforient = r; | 885 | deforient = r; |
886 | setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); | 886 | setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); |
887 | Config config("qpe"); | 887 | Config config("qpe"); |
888 | config.setGroup( "Rotation" ); | 888 | config.setGroup( "Rotation" ); |
889 | config.writeEntry( "Screen", getenv("QWS_DISPLAY") ); | 889 | config.writeEntry( "Screen", getenv("QWS_DISPLAY") ); |
890 | } | 890 | } |
891 | else { | 891 | else { |
892 | #ifndef QT_NO_COP | 892 | #ifndef QT_NO_COP |
893 | { QCopEnvelope e( "QPE/System", "setDefaultRotation(int)" ); | 893 | { QCopEnvelope e( "QPE/System", "setDefaultRotation(int)" ); |
894 | e << r; | 894 | e << r; |
895 | } | 895 | } |
896 | #endif | 896 | #endif |
897 | 897 | ||
898 | } | 898 | } |
899 | } | 899 | } |
900 | 900 | ||
901 | // exported to libpreload.so | ||
902 | bool opie_block_style = false; | ||
903 | |||
901 | /*! | 904 | /*! |
902 | \internal | 905 | \internal |
903 | */ | 906 | */ |
904 | void QPEApplication::applyStyle() | 907 | void QPEApplication::applyStyle() |
905 | { | 908 | { |
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 | ||
914 | // Colors | 951 | // Colors |
915 | QColor bgcolor( config.readEntry( "Background", "#E5E1D5" ) ); | 952 | QColor bgcolor( config.readEntry( "Background", "#E5E1D5" ) ); |
916 | QColor btncolor( config.readEntry( "Button", "#D6CDBB" ) ); | 953 | QColor btncolor( config.readEntry( "Button", "#D6CDBB" ) ); |
917 | QPalette pal( btncolor, bgcolor ); | 954 | QPalette pal( btncolor, bgcolor ); |
918 | QString color = config.readEntry( "Highlight", "#800000" ); | 955 | QString color = config.readEntry( "Highlight", "#800000" ); |
919 | pal.setColor( QColorGroup::Highlight, QColor( color ) ); | 956 | pal.setColor( QColorGroup::Highlight, QColor( color ) ); |
920 | color = config.readEntry( "HighlightedText", "#FFFFFF" ); | 957 | color = config.readEntry( "HighlightedText", "#FFFFFF" ); |
921 | pal.setColor( QColorGroup::HighlightedText, QColor( color ) ); | 958 | pal.setColor( QColorGroup::HighlightedText, QColor( color ) ); |
922 | color = config.readEntry( "Text", "#000000" ); | 959 | color = config.readEntry( "Text", "#000000" ); |
923 | pal.setColor( QColorGroup::Text, QColor( color ) ); | 960 | pal.setColor( QColorGroup::Text, QColor( color ) ); |
924 | color = config.readEntry( "ButtonText", "#000000" ); | 961 | color = config.readEntry( "ButtonText", "#000000" ); |
925 | pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor( color ) ); | 962 | pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor( color ) ); |
926 | color = config.readEntry( "Base", "#FFFFFF" ); | 963 | color = config.readEntry( "Base", "#FFFFFF" ); |
927 | pal.setColor( QColorGroup::Base, QColor( color ) ); | 964 | pal.setColor( QColorGroup::Base, QColor( color ) ); |
928 | 965 | ||
929 | pal.setColor( QPalette::Disabled, QColorGroup::Text, | 966 | pal.setColor( QPalette::Disabled, QColorGroup::Text, |
930 | pal.color( QPalette::Active, QColorGroup::Background ).dark() ); | 967 | pal.color( QPalette::Active, QColorGroup::Background ).dark() ); |
931 | 968 | ||
932 | setPalette( pal, TRUE ); | 969 | setPalette( pal, TRUE ); |
933 | 970 | ||
934 | // Window Decoration | 971 | // Window Decoration |
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 ) { |
937 | qwsSetDecoration( new QPEDecoration( dec ) ); | 979 | qwsSetDecoration( new QPEDecoration( dec ) ); |
938 | d->decorationName = dec; | 980 | d->decorationName = dec; |
939 | } | 981 | } |
940 | 982 | ||
941 | // Font | 983 | // Font |
942 | QString ff = config.readEntry( "FontFamily", font().family() ); | 984 | QString ff = config.readEntry( "FontFamily", font().family() ); |
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 | } |
946 | 998 | ||
947 | void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data ) | 999 | void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data ) |
948 | { | 1000 | { |
949 | #ifdef Q_WS_QWS | 1001 | #ifdef Q_WS_QWS |
950 | QDataStream stream( data, IO_ReadOnly ); | 1002 | QDataStream stream( data, IO_ReadOnly ); |
951 | if ( msg == "applyStyle()" ) { | 1003 | if ( msg == "applyStyle()" ) { |
952 | applyStyle(); | 1004 | applyStyle(); |
953 | } | 1005 | } |
954 | else if ( msg == "setDefaultRotation(int)" ) { | 1006 | else if ( msg == "setDefaultRotation(int)" ) { |
955 | if ( type() == GuiServer ) { | 1007 | if ( type() == GuiServer ) { |
956 | int r; | 1008 | int r; |
957 | stream >> r; | 1009 | stream >> r; |
958 | setDefaultRotation( r ); | 1010 | setDefaultRotation( r ); |
959 | } | 1011 | } |
960 | } | 1012 | } |
@@ -1310,33 +1362,33 @@ void QPEApplication::internalSetStyle( const QString &style ) | |||
1310 | 1362 | ||
1311 | if ( lastiface ) | 1363 | if ( lastiface ) |
1312 | lastiface-> release ( ); | 1364 | lastiface-> release ( ); |
1313 | lastiface = iface; | 1365 | lastiface = iface; |
1314 | 1366 | ||
1315 | if ( lastlib ) { | 1367 | if ( lastlib ) { |
1316 | lastlib-> unload ( ); | 1368 | lastlib-> unload ( ); |
1317 | delete lastlib; | 1369 | delete lastlib; |
1318 | } | 1370 | } |
1319 | lastlib = lib; | 1371 | lastlib = lib; |
1320 | } | 1372 | } |
1321 | else { | 1373 | else { |
1322 | if ( iface ) | 1374 | if ( iface ) |
1323 | iface-> release ( ); | 1375 | iface-> release ( ); |
1324 | delete lib; | 1376 | delete lib; |
1325 | 1377 | ||
1326 | setStyle ( new QPEStyle ( )); | 1378 | setStyle ( new LightStyle ( )); |
1327 | } | 1379 | } |
1328 | } | 1380 | } |
1329 | #endif | 1381 | #endif |
1330 | } | 1382 | } |
1331 | 1383 | ||
1332 | /*! | 1384 | /*! |
1333 | \internal | 1385 | \internal |
1334 | */ | 1386 | */ |
1335 | void QPEApplication::prepareForTermination( bool willrestart ) | 1387 | void QPEApplication::prepareForTermination( bool willrestart ) |
1336 | { | 1388 | { |
1337 | if ( willrestart ) { | 1389 | if ( willrestart ) { |
1338 | // Draw a big wait icon, the image can be altered in later revisions | 1390 | // Draw a big wait icon, the image can be altered in later revisions |
1339 | // QWidget *d = QApplication::desktop(); | 1391 | // QWidget *d = QApplication::desktop(); |
1340 | QImage img = Resource::loadImage( "launcher/new_wait" ); | 1392 | QImage img = Resource::loadImage( "launcher/new_wait" ); |
1341 | QPixmap pix; | 1393 | QPixmap pix; |
1342 | pix.convertFromImage( img.smoothScale( 1 * img.width(), 1 * img.height() ) ); | 1394 | pix.convertFromImage( img.smoothScale( 1 * img.width(), 1 * img.height() ) ); |