summaryrefslogtreecommitdiff
path: root/library/qpeapplication.cpp
authorsandman <sandman>2002-11-25 22:12:18 (UTC)
committer sandman <sandman>2002-11-25 22:12:18 (UTC)
commit4e6b2585987290f874697cbec7c289b4df29f82b (patch) (unidiff)
treee19415ef5374ffa3730380813298111e24711590 /library/qpeapplication.cpp
parent7bd8ef9197506897d3a5287a013934f89658d60a (diff)
downloadopie-4e6b2585987290f874697cbec7c289b4df29f82b.zip
opie-4e6b2585987290f874697cbec7c289b4df29f82b.tar.gz
opie-4e6b2585987290f874697cbec7c289b4df29f82b.tar.bz2
Some changes to the QPEDecoration c'tor internals:
Since the current deco plugin is unloaded, when a new Deco is created via new (even if this new deco is never used or deleted immediatly afer- wards), we have to remember the plugin name, in case someone calls the default c'tor (without supplying a plugin name)
Diffstat (limited to 'library/qpeapplication.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpeapplication.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index a54fb20..c8e6e74 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -838,223 +838,226 @@ QString QPEApplication::qpeDir()
838 return QString( "../" ); 838 return QString( "../" );
839} 839}
840 840
841/*! 841/*!
842 Returns the user's current Document directory. There is a trailing "/". 842 Returns the user's current Document directory. There is a trailing "/".
843 .. well, it does now,, and there's no trailing '/' 843 .. well, it does now,, and there's no trailing '/'
844*/ 844*/
845QString QPEApplication::documentDir() 845QString QPEApplication::documentDir()
846{ 846{
847 const char* base = getenv( "HOME"); 847 const char* base = getenv( "HOME");
848 if ( base ) 848 if ( base )
849 return QString( base ) + "/Documents"; 849 return QString( base ) + "/Documents";
850 850
851 return QString( "../Documents" ); 851 return QString( "../Documents" );
852} 852}
853 853
854static int deforient = -1; 854static int deforient = -1;
855 855
856/*! 856/*!
857 \internal 857 \internal
858*/ 858*/
859int QPEApplication::defaultRotation() 859int QPEApplication::defaultRotation()
860{ 860{
861 if ( deforient < 0 ) { 861 if ( deforient < 0 ) {
862 QString d = getenv( "QWS_DISPLAY" ); 862 QString d = getenv( "QWS_DISPLAY" );
863 if ( d.contains( "Rot90" ) ) { 863 if ( d.contains( "Rot90" ) ) {
864 deforient = 90; 864 deforient = 90;
865 } 865 }
866 else if ( d.contains( "Rot180" ) ) { 866 else if ( d.contains( "Rot180" ) ) {
867 deforient = 180; 867 deforient = 180;
868 } 868 }
869 else if ( d.contains( "Rot270" ) ) { 869 else if ( d.contains( "Rot270" ) ) {
870 deforient = 270; 870 deforient = 270;
871 } 871 }
872 else { 872 else {
873 deforient = 0; 873 deforient = 0;
874 } 874 }
875 } 875 }
876 return deforient; 876 return deforient;
877} 877}
878 878
879/*! 879/*!
880 \internal 880 \internal
881*/ 881*/
882void QPEApplication::setDefaultRotation( int r ) 882void QPEApplication::setDefaultRotation( int r )
883{ 883{
884 if ( qApp->type() == GuiServer ) { 884 if ( qApp->type() == GuiServer ) {
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 901// exported to libpreload.so
902bool opie_block_style = false; 902int opie_block_style = 0;
903 903
904/*! 904/*!
905 \internal 905 \internal
906*/ 906*/
907void QPEApplication::applyStyle() 907void QPEApplication::applyStyle()
908{ 908{
909 Config config( "qpe" ); 909 Config config( "qpe" );
910 config.setGroup( "Appearance" ); 910 config.setGroup( "Appearance" );
911 911
912 // don't block ourselves ... 912 // don't block ourselves ...
913 opie_block_style = false; 913 opie_block_style = 0;
914 914
915 915
916 static QString appname; 916 static QString appname;
917 917
918 if ( appname. isNull ( )) { 918 if ( appname. isNull ( )) {
919 char src [32]; 919 char src [32];
920 char dst [PATH_MAX + 1]; 920 char dst [PATH_MAX + 1];
921 ::sprintf ( src, "/proc/%d/exe", ::getpid ( )); 921 ::sprintf ( src, "/proc/%d/exe", ::getpid ( ));
922 int l = ::readlink ( src, dst, PATH_MAX ); 922 int l = ::readlink ( src, dst, PATH_MAX );
923 if ( l > 0 ) { 923 if ( l > 0 ) {
924 dst [l] = 0; 924 dst [l] = 0;
925 const char *b = ::strrchr ( dst, '/' ); 925 const char *b = ::strrchr ( dst, '/' );
926 appname = ( b ? b + 1 : dst ); 926 appname = ( b ? b + 1 : dst );
927 } 927 }
928 else 928 else
929 appname = ""; 929 appname = "";
930 } 930 }
931 931
932 932
933 QStringList ex = config. readListEntry ( "NoStyle", ';' ); 933 QStringList ex = config. readListEntry ( "NoStyle", ';' );
934 int nostyle = 0; 934 int nostyle = 0;
935 for ( QStringList::Iterator it = ex. begin ( ); it != ex. end ( ); ++it ) { 935 for ( QStringList::Iterator it = ex. begin ( ); it != ex. end ( ); ++it ) {
936 if ( QRegExp (( *it ). mid ( 1 ), false, true ). find ( appname, 0 ) >= 0 ) { 936 if ( QRegExp (( *it ). mid ( 1 ), false, true ). find ( appname, 0 ) >= 0 ) {
937 nostyle = ( *it ). left ( 1 ). toInt ( 0, 32 ); 937 nostyle = ( *it ). left ( 1 ). toInt ( 0, 32 );
938 break; 938 break;
939 } 939 }
940 } 940 }
941 941
942 // Widget style 942 // Widget style
943 QString style = config.readEntry( "Style", "Light" ); 943 QString style = config.readEntry( "Style", "Light" );
944 944
945 // don't set a custom style 945 // don't set a custom style
946 if ( nostyle & 0x01 ) 946 if ( nostyle & 0x01 )
947 style = "Light"; 947 style = "Light";
948 948
949 internalSetStyle ( style ); 949 internalSetStyle ( style );
950 950
951 // Colors 951 // Colors
952 QColor bgcolor( config.readEntry( "Background", "#E5E1D5" ) ); 952 QColor bgcolor( config.readEntry( "Background", "#E5E1D5" ) );
953 QColor btncolor( config.readEntry( "Button", "#D6CDBB" ) ); 953 QColor btncolor( config.readEntry( "Button", "#D6CDBB" ) );
954 QPalette pal( btncolor, bgcolor ); 954 QPalette pal( btncolor, bgcolor );
955 QString color = config.readEntry( "Highlight", "#800000" ); 955 QString color = config.readEntry( "Highlight", "#800000" );
956 pal.setColor( QColorGroup::Highlight, QColor( color ) ); 956 pal.setColor( QColorGroup::Highlight, QColor( color ) );
957 color = config.readEntry( "HighlightedText", "#FFFFFF" ); 957 color = config.readEntry( "HighlightedText", "#FFFFFF" );
958 pal.setColor( QColorGroup::HighlightedText, QColor( color ) ); 958 pal.setColor( QColorGroup::HighlightedText, QColor( color ) );
959 color = config.readEntry( "Text", "#000000" ); 959 color = config.readEntry( "Text", "#000000" );
960 pal.setColor( QColorGroup::Text, QColor( color ) ); 960 pal.setColor( QColorGroup::Text, QColor( color ) );
961 color = config.readEntry( "ButtonText", "#000000" ); 961 color = config.readEntry( "ButtonText", "#000000" );
962 pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor( color ) ); 962 pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor( color ) );
963 color = config.readEntry( "Base", "#FFFFFF" ); 963 color = config.readEntry( "Base", "#FFFFFF" );
964 pal.setColor( QColorGroup::Base, QColor( color ) ); 964 pal.setColor( QColorGroup::Base, QColor( color ) );
965 965
966 pal.setColor( QPalette::Disabled, QColorGroup::Text, 966 pal.setColor( QPalette::Disabled, QColorGroup::Text,
967 pal.color( QPalette::Active, QColorGroup::Background ).dark() ); 967 pal.color( QPalette::Active, QColorGroup::Background ).dark() );
968 968
969 setPalette( pal, TRUE ); 969 setPalette( pal, TRUE );
970 970
971 // Window Decoration 971 // Window Decoration
972 QString dec = config.readEntry( "Decoration", "Qtopia" ); 972 QString dec = config.readEntry( "Decoration", "Qtopia" );
973 973
974 // don't set a custom deco 974 // don't set a custom deco
975 if ( nostyle & 0x04 ) 975 if ( nostyle & 0x04 )
976 dec = ""; 976 dec = "";
977 977
978 //qDebug ( "Setting Deco: %s -- old %s (%d)", dec.latin1(), d-> decorationName.latin1(), nostyle);
979
978 if ( dec != d->decorationName ) { 980 if ( dec != d->decorationName ) {
979 qwsSetDecoration( new QPEDecoration( dec ) ); 981 qwsSetDecoration( new QPEDecoration( dec ) );
980 d->decorationName = dec; 982 d->decorationName = dec;
981 } 983 }
982 984
983 // Font 985 // Font
984 QString ff = config.readEntry( "FontFamily", font().family() ); 986 QString ff = config.readEntry( "FontFamily", font().family() );
985 int fs = config.readNumEntry( "FontSize", font().pointSize() ); 987 int fs = config.readNumEntry( "FontSize", font().pointSize() );
986 988
987 // don't set a custom font 989 // don't set a custom font
988 if ( nostyle & 0x02 ) { 990 if ( nostyle & 0x02 ) {
989 ff = "Helvetica"; 991 ff = "Helvetica";
990 fs = 10; 992 fs = 10;
991 } 993 }
992 994
993 setFont( QFont(ff, fs) ); 995 setFont( QFont(ff, fs) );
994 996
995 // revert to global blocking policy ... 997 // revert to global blocking policy ...
996 opie_block_style = config. readBoolEntry ( "ForceStyle", false ); 998 opie_block_style = config. readBoolEntry ( "ForceStyle", false ) ? 0xff : 0x00;
999 opie_block_style -= nostyle;
997} 1000}
998 1001
999void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data ) 1002void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data )
1000{ 1003{
1001#ifdef Q_WS_QWS 1004#ifdef Q_WS_QWS
1002 QDataStream stream( data, IO_ReadOnly ); 1005 QDataStream stream( data, IO_ReadOnly );
1003 if ( msg == "applyStyle()" ) { 1006 if ( msg == "applyStyle()" ) {
1004 applyStyle(); 1007 applyStyle();
1005 } 1008 }
1006 else if ( msg == "setDefaultRotation(int)" ) { 1009 else if ( msg == "setDefaultRotation(int)" ) {
1007 if ( type() == GuiServer ) { 1010 if ( type() == GuiServer ) {
1008 int r; 1011 int r;
1009 stream >> r; 1012 stream >> r;
1010 setDefaultRotation( r ); 1013 setDefaultRotation( r );
1011 } 1014 }
1012 } 1015 }
1013 else if ( msg == "shutdown()" ) { 1016 else if ( msg == "shutdown()" ) {
1014 if ( type() == GuiServer ) 1017 if ( type() == GuiServer )
1015 shutdown(); 1018 shutdown();
1016 } 1019 }
1017 else if ( msg == "quit()" ) { 1020 else if ( msg == "quit()" ) {
1018 if ( type() != GuiServer ) 1021 if ( type() != GuiServer )
1019 tryQuit(); 1022 tryQuit();
1020 } 1023 }
1021 else if ( msg == "forceQuit()" ) { 1024 else if ( msg == "forceQuit()" ) {
1022 if ( type() != GuiServer ) 1025 if ( type() != GuiServer )
1023 quit(); 1026 quit();
1024 } 1027 }
1025 else if ( msg == "restart()" ) { 1028 else if ( msg == "restart()" ) {
1026 if ( type() == GuiServer ) 1029 if ( type() == GuiServer )
1027 restart(); 1030 restart();
1028 } 1031 }
1029 else if ( msg == "grabKeyboard(QString)" ) { 1032 else if ( msg == "grabKeyboard(QString)" ) {
1030 QString who; 1033 QString who;
1031 stream >> who; 1034 stream >> who;
1032 if ( who.isEmpty() ) 1035 if ( who.isEmpty() )
1033 d->kbgrabber = 0; 1036 d->kbgrabber = 0;
1034 else if ( who != d->appName ) 1037 else if ( who != d->appName )
1035 d->kbgrabber = 1; 1038 d->kbgrabber = 1;
1036 else 1039 else
1037 d->kbgrabber = 2; 1040 d->kbgrabber = 2;
1038 } 1041 }
1039 else if ( msg == "language(QString)" ) { 1042 else if ( msg == "language(QString)" ) {
1040 if ( type() == GuiServer ) { 1043 if ( type() == GuiServer ) {
1041 QString l; 1044 QString l;
1042 stream >> l; 1045 stream >> l;
1043 QString cl = getenv( "LANG" ); 1046 QString cl = getenv( "LANG" );
1044 if ( cl != l ) { 1047 if ( cl != l ) {
1045 if ( l.isNull() ) 1048 if ( l.isNull() )
1046 unsetenv( "LANG" ); 1049 unsetenv( "LANG" );
1047 else 1050 else
1048 setenv( "LANG", l.latin1(), 1 ); 1051 setenv( "LANG", l.latin1(), 1 );
1049 restart(); 1052 restart();
1050 } 1053 }
1051 } 1054 }
1052 } 1055 }
1053 else if ( msg == "timeChange(QString)" ) { 1056 else if ( msg == "timeChange(QString)" ) {
1054 QString t; 1057 QString t;
1055 stream >> t; 1058 stream >> t;
1056 if ( t.isNull() ) 1059 if ( t.isNull() )
1057 unsetenv( "TZ" ); 1060 unsetenv( "TZ" );
1058 else 1061 else
1059 setenv( "TZ", t.latin1(), 1 ); 1062 setenv( "TZ", t.latin1(), 1 );
1060 // emit the signal so everyone else knows... 1063 // emit the signal so everyone else knows...