-rw-r--r-- | library/qpeapplication.cpp | 46 | ||||
-rw-r--r-- | library/qpeapplication.h | 2 |
2 files changed, 48 insertions, 0 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 149e6bb..71ec5b3 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -1038,64 +1038,97 @@ int QPEApplication::defaultRotation() | |||
1038 | else if ( d.contains( "Rot270" ) ) { | 1038 | else if ( d.contains( "Rot270" ) ) { |
1039 | deforient = 270; | 1039 | deforient = 270; |
1040 | } | 1040 | } |
1041 | else { | 1041 | else { |
1042 | deforient = 0; | 1042 | deforient = 0; |
1043 | } | 1043 | } |
1044 | } | 1044 | } |
1045 | return deforient; | 1045 | return deforient; |
1046 | } | 1046 | } |
1047 | 1047 | ||
1048 | /*! | 1048 | /*! |
1049 | \internal | 1049 | \internal |
1050 | */ | 1050 | */ |
1051 | void QPEApplication::setDefaultRotation( int r ) | 1051 | void QPEApplication::setDefaultRotation( int r ) |
1052 | { | 1052 | { |
1053 | if ( qApp->type() == GuiServer ) { | 1053 | if ( qApp->type() == GuiServer ) { |
1054 | deforient = r; | 1054 | deforient = r; |
1055 | setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); | 1055 | setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); |
1056 | Config config("qpe"); | 1056 | Config config("qpe"); |
1057 | config.setGroup( "Rotation" ); | 1057 | config.setGroup( "Rotation" ); |
1058 | config.writeEntry( "Rot", r ); | 1058 | config.writeEntry( "Rot", r ); |
1059 | } | 1059 | } |
1060 | else { | 1060 | else { |
1061 | #ifndef QT_NO_COP | 1061 | #ifndef QT_NO_COP |
1062 | { QCopEnvelope e( "QPE/System", "setDefaultRotation(int)" ); | 1062 | { QCopEnvelope e( "QPE/System", "setDefaultRotation(int)" ); |
1063 | e << r; | 1063 | e << r; |
1064 | } | 1064 | } |
1065 | #endif | 1065 | #endif |
1066 | 1066 | ||
1067 | } | 1067 | } |
1068 | } | 1068 | } |
1069 | 1069 | ||
1070 | #include <qgfx_qws.h> | ||
1071 | #include <qwindowsystem_qws.h> | ||
1072 | #include <qpixmapcache.h> | ||
1073 | |||
1074 | extern void qws_clearLoadedFonts(); | ||
1075 | |||
1076 | inline void QPEApplication::setCurrentMode( int x, int y, int depth ) | ||
1077 | { | ||
1078 | // Reset the caches | ||
1079 | qws_clearLoadedFonts(); | ||
1080 | QPixmapCache::clear(); | ||
1081 | |||
1082 | // Change the screen mode | ||
1083 | qt_screen->setMode(x, y, depth); | ||
1084 | |||
1085 | if ( qApp->type() == GuiServer ) { | ||
1086 | // Reconfigure the GuiServer | ||
1087 | qwsServer->beginDisplayReconfigure(); | ||
1088 | qwsServer->endDisplayReconfigure(); | ||
1089 | |||
1090 | // Get all the running apps to reset | ||
1091 | QCopEnvelope env( "QPE/System", "reset()" ); | ||
1092 | } | ||
1093 | } | ||
1094 | |||
1095 | inline void QPEApplication::reset() { | ||
1096 | // Reconnect to the screen | ||
1097 | qt_screen->disconnect(); | ||
1098 | qt_screen->connect( QString::null ); | ||
1099 | |||
1100 | // Redraw everything | ||
1101 | applyStyle(); | ||
1102 | } | ||
1070 | 1103 | ||
1071 | /*! | 1104 | /*! |
1072 | \internal | 1105 | \internal |
1073 | */ | 1106 | */ |
1074 | void QPEApplication::applyStyle() | 1107 | void QPEApplication::applyStyle() |
1075 | { | 1108 | { |
1076 | Config config( "qpe" ); | 1109 | Config config( "qpe" ); |
1077 | config.setGroup( "Appearance" ); | 1110 | config.setGroup( "Appearance" ); |
1078 | 1111 | ||
1079 | #if QT_VERSION > 233 | 1112 | #if QT_VERSION > 233 |
1080 | // don't block ourselves ... | 1113 | // don't block ourselves ... |
1081 | Opie::force_appearance = 0; | 1114 | Opie::force_appearance = 0; |
1082 | 1115 | ||
1083 | static QString appname = Opie::binaryName ( ); | 1116 | static QString appname = Opie::binaryName ( ); |
1084 | 1117 | ||
1085 | QStringList ex = config. readListEntry ( "NoStyle", ';' ); | 1118 | QStringList ex = config. readListEntry ( "NoStyle", ';' ); |
1086 | int nostyle = 0; | 1119 | int nostyle = 0; |
1087 | for ( QStringList::Iterator it = ex. begin ( ); it != ex. end ( ); ++it ) { | 1120 | for ( QStringList::Iterator it = ex. begin ( ); it != ex. end ( ); ++it ) { |
1088 | if ( QRegExp (( *it ). mid ( 1 ), false, true ). find ( appname, 0 ) >= 0 ) { | 1121 | if ( QRegExp (( *it ). mid ( 1 ), false, true ). find ( appname, 0 ) >= 0 ) { |
1089 | nostyle = ( *it ). left ( 1 ). toInt ( 0, 32 ); | 1122 | nostyle = ( *it ). left ( 1 ). toInt ( 0, 32 ); |
1090 | break; | 1123 | break; |
1091 | } | 1124 | } |
1092 | } | 1125 | } |
1093 | 1126 | ||
1094 | // Widget style | 1127 | // Widget style |
1095 | QString style = config.readEntry( "Style", "FlatStyle" ); | 1128 | QString style = config.readEntry( "Style", "FlatStyle" ); |
1096 | 1129 | ||
1097 | // don't set a custom style | 1130 | // don't set a custom style |
1098 | if ( nostyle & Opie::Force_Style ) | 1131 | if ( nostyle & Opie::Force_Style ) |
1099 | style = "FlatStyle"; | 1132 | style = "FlatStyle"; |
1100 | 1133 | ||
1101 | internalSetStyle ( style ); | 1134 | internalSetStyle ( style ); |
@@ -1151,64 +1184,77 @@ void QPEApplication::applyStyle() | |||
1151 | Opie::force_appearance &= ~nostyle; | 1184 | Opie::force_appearance &= ~nostyle; |
1152 | #endif | 1185 | #endif |
1153 | } | 1186 | } |
1154 | 1187 | ||
1155 | void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data ) | 1188 | void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data ) |
1156 | { | 1189 | { |
1157 | #ifdef Q_WS_QWS | 1190 | #ifdef Q_WS_QWS |
1158 | QDataStream stream( data, IO_ReadOnly ); | 1191 | QDataStream stream( data, IO_ReadOnly ); |
1159 | if ( msg == "applyStyle()" ) { | 1192 | if ( msg == "applyStyle()" ) { |
1160 | applyStyle(); | 1193 | applyStyle(); |
1161 | } | 1194 | } |
1162 | else if ( msg == "toggleApplicationMenu()" ) { | 1195 | else if ( msg == "toggleApplicationMenu()" ) { |
1163 | QWidget *active = activeWindow ( ); | 1196 | QWidget *active = activeWindow ( ); |
1164 | 1197 | ||
1165 | if ( active ) { | 1198 | if ( active ) { |
1166 | QPEMenuToolFocusManager *man = QPEMenuToolFocusManager::manager ( ); | 1199 | QPEMenuToolFocusManager *man = QPEMenuToolFocusManager::manager ( ); |
1167 | bool oldactive = man-> isActive ( ); | 1200 | bool oldactive = man-> isActive ( ); |
1168 | 1201 | ||
1169 | man-> setActive( !man-> isActive() ); | 1202 | man-> setActive( !man-> isActive() ); |
1170 | 1203 | ||
1171 | if ( !oldactive && !man-> isActive ( )) { // no menubar to toggle -> try O-Menu | 1204 | if ( !oldactive && !man-> isActive ( )) { // no menubar to toggle -> try O-Menu |
1172 | QCopEnvelope e ( "QPE/TaskBar", "toggleStartMenu()" ); | 1205 | QCopEnvelope e ( "QPE/TaskBar", "toggleStartMenu()" ); |
1173 | } | 1206 | } |
1174 | } | 1207 | } |
1175 | } | 1208 | } |
1176 | else if ( msg == "setDefaultRotation(int)" ) { | 1209 | else if ( msg == "setDefaultRotation(int)" ) { |
1177 | if ( type() == GuiServer ) { | 1210 | if ( type() == GuiServer ) { |
1178 | int r; | 1211 | int r; |
1179 | stream >> r; | 1212 | stream >> r; |
1180 | setDefaultRotation( r ); | 1213 | setDefaultRotation( r ); |
1181 | } | 1214 | } |
1182 | } | 1215 | } |
1216 | else if ( msg == "setCurrentMode(int,int,int)" ) { // Added: 2003-06-11 by Tim Ansell <mithro@mithis.net> | ||
1217 | if ( type() == GuiServer ) { | ||
1218 | int x, y, depth; | ||
1219 | stream >> x; | ||
1220 | stream >> y; | ||
1221 | stream >> depth; | ||
1222 | setCurrentMode( x, y, depth ); | ||
1223 | } | ||
1224 | } | ||
1225 | else if ( msg == "reset()" ) { | ||
1226 | if ( type() != GuiServer ) | ||
1227 | reset(); | ||
1228 | } | ||
1183 | else if ( msg == "setCurrentRotation(int)" ) { | 1229 | else if ( msg == "setCurrentRotation(int)" ) { |
1184 | int r; | 1230 | int r; |
1185 | stream >> r; | 1231 | stream >> r; |
1186 | setCurrentRotation( r ); | 1232 | setCurrentRotation( r ); |
1187 | } | 1233 | } |
1188 | else if ( msg == "shutdown()" ) { | 1234 | else if ( msg == "shutdown()" ) { |
1189 | if ( type() == GuiServer ) | 1235 | if ( type() == GuiServer ) |
1190 | shutdown(); | 1236 | shutdown(); |
1191 | } | 1237 | } |
1192 | else if ( msg == "quit()" ) { | 1238 | else if ( msg == "quit()" ) { |
1193 | if ( type() != GuiServer ) | 1239 | if ( type() != GuiServer ) |
1194 | tryQuit(); | 1240 | tryQuit(); |
1195 | } | 1241 | } |
1196 | else if ( msg == "forceQuit()" ) { | 1242 | else if ( msg == "forceQuit()" ) { |
1197 | if ( type() != GuiServer ) | 1243 | if ( type() != GuiServer ) |
1198 | quit(); | 1244 | quit(); |
1199 | } | 1245 | } |
1200 | else if ( msg == "restart()" ) { | 1246 | else if ( msg == "restart()" ) { |
1201 | if ( type() == GuiServer ) | 1247 | if ( type() == GuiServer ) |
1202 | restart(); | 1248 | restart(); |
1203 | } | 1249 | } |
1204 | else if ( msg == "language(QString)" ) { | 1250 | else if ( msg == "language(QString)" ) { |
1205 | if ( type() == GuiServer ) { | 1251 | if ( type() == GuiServer ) { |
1206 | QString l; | 1252 | QString l; |
1207 | stream >> l; | 1253 | stream >> l; |
1208 | QString cl = getenv( "LANG" ); | 1254 | QString cl = getenv( "LANG" ); |
1209 | if ( cl != l ) { | 1255 | if ( cl != l ) { |
1210 | if ( l.isNull() ) | 1256 | if ( l.isNull() ) |
1211 | unsetenv( "LANG" ); | 1257 | unsetenv( "LANG" ); |
1212 | else | 1258 | else |
1213 | setenv( "LANG", l.latin1(), 1 ); | 1259 | setenv( "LANG", l.latin1(), 1 ); |
1214 | restart(); | 1260 | restart(); |
diff --git a/library/qpeapplication.h b/library/qpeapplication.h index 343e0b9..42810e8 100644 --- a/library/qpeapplication.h +++ b/library/qpeapplication.h | |||
@@ -19,67 +19,69 @@ | |||
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | #ifndef __QPE_APPLICATION_H__ | 20 | #ifndef __QPE_APPLICATION_H__ |
21 | #define __QPE_APPLICATION_H__ | 21 | #define __QPE_APPLICATION_H__ |
22 | 22 | ||
23 | #include <stdlib.h> // for setenv() | 23 | #include <stdlib.h> // for setenv() |
24 | 24 | ||
25 | #include <qglobal.h> | 25 | #include <qglobal.h> |
26 | #include <qapplication.h> | 26 | #include <qapplication.h> |
27 | #include <qdialog.h> | 27 | #include <qdialog.h> |
28 | #include <qwsdisplay_qws.h> | 28 | #include <qwsdisplay_qws.h> |
29 | #if defined(_WS_QWS_) && !defined(Q_WS_QWS) | 29 | #if defined(_WS_QWS_) && !defined(Q_WS_QWS) |
30 | #define Q_WS_QWS | 30 | #define Q_WS_QWS |
31 | #endif | 31 | #endif |
32 | #include "qpedecoration_qws.h" | 32 | #include "qpedecoration_qws.h" |
33 | #include "timestring.h" | 33 | #include "timestring.h" |
34 | 34 | ||
35 | class QCopChannel; | 35 | class QCopChannel; |
36 | class QPEApplicationData; | 36 | class QPEApplicationData; |
37 | class QWSEvent; | 37 | class QWSEvent; |
38 | class QWSKeyEvent; | 38 | class QWSKeyEvent; |
39 | 39 | ||
40 | 40 | ||
41 | class QPEApplication : public QApplication | 41 | class QPEApplication : public QApplication |
42 | { | 42 | { |
43 | Q_OBJECT | 43 | Q_OBJECT |
44 | public: | 44 | public: |
45 | QPEApplication( int& argc, char **argv, Type=GuiClient ); | 45 | QPEApplication( int& argc, char **argv, Type=GuiClient ); |
46 | ~QPEApplication(); | 46 | ~QPEApplication(); |
47 | 47 | ||
48 | static QString qpeDir(); | 48 | static QString qpeDir(); |
49 | static QString documentDir(); | 49 | static QString documentDir(); |
50 | void applyStyle(); | 50 | void applyStyle(); |
51 | void reset(); | ||
51 | static int defaultRotation(); | 52 | static int defaultRotation(); |
52 | static void setDefaultRotation(int r); | 53 | static void setDefaultRotation(int r); |
53 | static void setCurrentRotation(int r); | 54 | static void setCurrentRotation(int r); |
55 | static void setCurrentMode(int x, int y, int depth ); | ||
54 | static void grabKeyboard(); | 56 | static void grabKeyboard(); |
55 | static void ungrabKeyboard(); | 57 | static void ungrabKeyboard(); |
56 | 58 | ||
57 | enum StylusMode { | 59 | enum StylusMode { |
58 | LeftOnly, | 60 | LeftOnly, |
59 | RightOnHold | 61 | RightOnHold |
60 | // RightOnHoldLeftDelayed, etc. | 62 | // RightOnHoldLeftDelayed, etc. |
61 | }; | 63 | }; |
62 | static void setStylusOperation( QWidget*, StylusMode ); | 64 | static void setStylusOperation( QWidget*, StylusMode ); |
63 | static StylusMode stylusOperation( QWidget* ); | 65 | static StylusMode stylusOperation( QWidget* ); |
64 | 66 | ||
65 | enum InputMethodHint { | 67 | enum InputMethodHint { |
66 | Normal, | 68 | Normal, |
67 | AlwaysOff, | 69 | AlwaysOff, |
68 | AlwaysOn | 70 | AlwaysOn |
69 | }; | 71 | }; |
70 | 72 | ||
71 | enum screenSaverHint { | 73 | enum screenSaverHint { |
72 | Disable = 0, | 74 | Disable = 0, |
73 | DisableLightOff = 1, | 75 | DisableLightOff = 1, |
74 | DisableSuspend = 2, | 76 | DisableSuspend = 2, |
75 | Enable = 100 | 77 | Enable = 100 |
76 | }; | 78 | }; |
77 | 79 | ||
78 | static void setInputMethodHint( QWidget *, InputMethodHint ); | 80 | static void setInputMethodHint( QWidget *, InputMethodHint ); |
79 | static InputMethodHint inputMethodHint( QWidget * ); | 81 | static InputMethodHint inputMethodHint( QWidget * ); |
80 | 82 | ||
81 | void showMainWidget( QWidget*, bool nomax=FALSE ); | 83 | void showMainWidget( QWidget*, bool nomax=FALSE ); |
82 | void showMainDocumentWidget( QWidget*, bool nomax=FALSE ); | 84 | void showMainDocumentWidget( QWidget*, bool nomax=FALSE ); |
83 | static void showDialog( QDialog*, bool nomax=FALSE ); | 85 | static void showDialog( QDialog*, bool nomax=FALSE ); |
84 | static int execDialog( QDialog*, bool nomax=FALSE ); | 86 | static int execDialog( QDialog*, bool nomax=FALSE ); |
85 | /* Merge setTempScreenSaverMode */ | 87 | /* Merge setTempScreenSaverMode */ |