summaryrefslogtreecommitdiff
path: root/library/qpeapplication.cpp
Unidiff
Diffstat (limited to 'library/qpeapplication.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpeapplication.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index 95c4a1b..7463074 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -976,831 +976,831 @@ void QPEApplication::applyStyle()
976 nostyle = ( *it ). left ( 1 ). toInt ( 0, 32 ); 976 nostyle = ( *it ). left ( 1 ). toInt ( 0, 32 );
977 break; 977 break;
978 } 978 }
979 } 979 }
980 980
981 // Widget style 981 // Widget style
982 QString style = config.readEntry( "Style", "Light" ); 982 QString style = config.readEntry( "Style", "Light" );
983 983
984 // don't set a custom style 984 // don't set a custom style
985 if ( nostyle & Opie::Force_Style ) 985 if ( nostyle & Opie::Force_Style )
986 style = "Light"; 986 style = "Light";
987 987
988 internalSetStyle ( style ); 988 internalSetStyle ( style );
989 989
990 // Colors 990 // Colors
991 QColor bgcolor( config.readEntry( "Background", "#E5E1D5" ) ); 991 QColor bgcolor( config.readEntry( "Background", "#E5E1D5" ) );
992 QColor btncolor( config.readEntry( "Button", "#D6CDBB" ) ); 992 QColor btncolor( config.readEntry( "Button", "#D6CDBB" ) );
993 QPalette pal( btncolor, bgcolor ); 993 QPalette pal( btncolor, bgcolor );
994 QString color = config.readEntry( "Highlight", "#800000" ); 994 QString color = config.readEntry( "Highlight", "#800000" );
995 pal.setColor( QColorGroup::Highlight, QColor( color ) ); 995 pal.setColor( QColorGroup::Highlight, QColor( color ) );
996 color = config.readEntry( "HighlightedText", "#FFFFFF" ); 996 color = config.readEntry( "HighlightedText", "#FFFFFF" );
997 pal.setColor( QColorGroup::HighlightedText, QColor( color ) ); 997 pal.setColor( QColorGroup::HighlightedText, QColor( color ) );
998 color = config.readEntry( "Text", "#000000" ); 998 color = config.readEntry( "Text", "#000000" );
999 pal.setColor( QColorGroup::Text, QColor( color ) ); 999 pal.setColor( QColorGroup::Text, QColor( color ) );
1000 color = config.readEntry( "ButtonText", "#000000" ); 1000 color = config.readEntry( "ButtonText", "#000000" );
1001 pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor( color ) ); 1001 pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor( color ) );
1002 color = config.readEntry( "Base", "#FFFFFF" ); 1002 color = config.readEntry( "Base", "#FFFFFF" );
1003 pal.setColor( QColorGroup::Base, QColor( color ) ); 1003 pal.setColor( QColorGroup::Base, QColor( color ) );
1004 1004
1005 pal.setColor( QPalette::Disabled, QColorGroup::Text, 1005 pal.setColor( QPalette::Disabled, QColorGroup::Text,
1006 pal.color( QPalette::Active, QColorGroup::Background ).dark() ); 1006 pal.color( QPalette::Active, QColorGroup::Background ).dark() );
1007 1007
1008 setPalette( pal, TRUE ); 1008 setPalette( pal, TRUE );
1009 1009
1010 // Window Decoration 1010 // Window Decoration
1011 QString dec = config.readEntry( "Decoration", "Qtopia" ); 1011 QString dec = config.readEntry( "Decoration", "Qtopia" );
1012 1012
1013 // don't set a custom deco 1013 // don't set a custom deco
1014 if ( nostyle & Opie::Force_Decoration ) 1014 if ( nostyle & Opie::Force_Decoration )
1015 dec = ""; 1015 dec = "";
1016 1016
1017 //qDebug ( "Setting Deco: %s -- old %s (%d)", dec.latin1(), d-> decorationName.latin1(), nostyle); 1017 //qDebug ( "Setting Deco: %s -- old %s (%d)", dec.latin1(), d-> decorationName.latin1(), nostyle);
1018 1018
1019 if ( dec != d->decorationName ) { 1019 if ( dec != d->decorationName ) {
1020 qwsSetDecoration( new QPEDecoration( dec ) ); 1020 qwsSetDecoration( new QPEDecoration( dec ) );
1021 d->decorationName = dec; 1021 d->decorationName = dec;
1022 } 1022 }
1023 1023
1024 // Font 1024 // Font
1025 QString ff = config.readEntry( "FontFamily", font().family() ); 1025 QString ff = config.readEntry( "FontFamily", font().family() );
1026 int fs = config.readNumEntry( "FontSize", font().pointSize() ); 1026 int fs = config.readNumEntry( "FontSize", font().pointSize() );
1027 1027
1028 // don't set a custom font 1028 // don't set a custom font
1029 if ( nostyle & Opie::Force_Font ) { 1029 if ( nostyle & Opie::Force_Font ) {
1030 ff = "Helvetica"; 1030 ff = "Helvetica";
1031 fs = 10; 1031 fs = 10;
1032 } 1032 }
1033 1033
1034 setFont ( QFont ( ff, fs ), true ); 1034 setFont ( QFont ( ff, fs ), true );
1035 1035
1036 // revert to global blocking policy ... 1036 // revert to global blocking policy ...
1037 Opie::force_appearance = config. readBoolEntry ( "ForceStyle", false ) ? Opie::Force_All : Opie::Force_None; 1037 Opie::force_appearance = config. readBoolEntry ( "ForceStyle", false ) ? Opie::Force_All : Opie::Force_None;
1038 Opie::force_appearance &= ~nostyle; 1038 Opie::force_appearance &= ~nostyle;
1039} 1039}
1040 1040
1041void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data ) 1041void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data )
1042{ 1042{
1043#ifdef Q_WS_QWS 1043#ifdef Q_WS_QWS
1044 QDataStream stream( data, IO_ReadOnly ); 1044 QDataStream stream( data, IO_ReadOnly );
1045 if ( msg == "applyStyle()" ) { 1045 if ( msg == "applyStyle()" ) {
1046 applyStyle(); 1046 applyStyle();
1047 } 1047 }
1048 else if ( msg == "toggleApplicationMenu()" ) { 1048 else if ( msg == "toggleApplicationMenu()" ) {
1049 QWidget *active = activeWindow ( ); 1049 QWidget *active = activeWindow ( );
1050 1050
1051 if ( active ) { 1051 if ( active ) {
1052 QPEMenuToolFocusManager *man = QPEMenuToolFocusManager::manager ( ); 1052 QPEMenuToolFocusManager *man = QPEMenuToolFocusManager::manager ( );
1053 bool oldactive = man-> isActive ( ); 1053 bool oldactive = man-> isActive ( );
1054 1054
1055 man-> setActive( !man-> isActive() ); 1055 man-> setActive( !man-> isActive() );
1056 1056
1057 if ( !oldactive && !man-> isActive ( )) { // no menubar to toggle -> try O-Menu 1057 if ( !oldactive && !man-> isActive ( )) { // no menubar to toggle -> try O-Menu
1058 QCopEnvelope e ( "QPE/TaskBar", "toggleStartMenu()" ); 1058 QCopEnvelope e ( "QPE/TaskBar", "toggleStartMenu()" );
1059 } 1059 }
1060 } 1060 }
1061 } 1061 }
1062 else if ( msg == "setDefaultRotation(int)" ) { 1062 else if ( msg == "setDefaultRotation(int)" ) {
1063 if ( type() == GuiServer ) { 1063 if ( type() == GuiServer ) {
1064 int r; 1064 int r;
1065 stream >> r; 1065 stream >> r;
1066 setDefaultRotation( r ); 1066 setDefaultRotation( r );
1067 } 1067 }
1068 } 1068 }
1069 else if ( msg == "setCurrentRotation(int)" ) { 1069 else if ( msg == "setCurrentRotation(int)" ) {
1070 int r; 1070 int r;
1071 stream >> r; 1071 stream >> r;
1072 setCurrentRotation( r ); 1072 setCurrentRotation( r );
1073 } 1073 }
1074 else if ( msg == "shutdown()" ) { 1074 else if ( msg == "shutdown()" ) {
1075 if ( type() == GuiServer ) 1075 if ( type() == GuiServer )
1076 shutdown(); 1076 shutdown();
1077 } 1077 }
1078 else if ( msg == "quit()" ) { 1078 else if ( msg == "quit()" ) {
1079 if ( type() != GuiServer ) 1079 if ( type() != GuiServer )
1080 tryQuit(); 1080 tryQuit();
1081 } 1081 }
1082 else if ( msg == "forceQuit()" ) { 1082 else if ( msg == "forceQuit()" ) {
1083 if ( type() != GuiServer ) 1083 if ( type() != GuiServer )
1084 quit(); 1084 quit();
1085 } 1085 }
1086 else if ( msg == "restart()" ) { 1086 else if ( msg == "restart()" ) {
1087 if ( type() == GuiServer ) 1087 if ( type() == GuiServer )
1088 restart(); 1088 restart();
1089 } 1089 }
1090 else if ( msg == "language(QString)" ) { 1090 else if ( msg == "language(QString)" ) {
1091 if ( type() == GuiServer ) { 1091 if ( type() == GuiServer ) {
1092 QString l; 1092 QString l;
1093 stream >> l; 1093 stream >> l;
1094 QString cl = getenv( "LANG" ); 1094 QString cl = getenv( "LANG" );
1095 if ( cl != l ) { 1095 if ( cl != l ) {
1096 if ( l.isNull() ) 1096 if ( l.isNull() )
1097 unsetenv( "LANG" ); 1097 unsetenv( "LANG" );
1098 else 1098 else
1099 setenv( "LANG", l.latin1(), 1 ); 1099 setenv( "LANG", l.latin1(), 1 );
1100 restart(); 1100 restart();
1101 } 1101 }
1102 } 1102 }
1103 } 1103 }
1104 else if ( msg == "timeChange(QString)" ) { 1104 else if ( msg == "timeChange(QString)" ) {
1105 QString t; 1105 QString t;
1106 stream >> t; 1106 stream >> t;
1107 if ( t.isNull() ) 1107 if ( t.isNull() )
1108 unsetenv( "TZ" ); 1108 unsetenv( "TZ" );
1109 else 1109 else
1110 setenv( "TZ", t.latin1(), 1 ); 1110 setenv( "TZ", t.latin1(), 1 );
1111 // emit the signal so everyone else knows... 1111 // emit the signal so everyone else knows...
1112 emit timeChanged(); 1112 emit timeChanged();
1113 } 1113 }
1114 else if ( msg == "execute(QString)" ) { 1114 else if ( msg == "execute(QString)" ) {
1115 if ( type() == GuiServer ) { 1115 if ( type() == GuiServer ) {
1116 QString t; 1116 QString t;
1117 stream >> t; 1117 stream >> t;
1118 Global::execute( t ); 1118 Global::execute( t );
1119 } 1119 }
1120 } 1120 }
1121 else if ( msg == "execute(QString,QString)" ) { 1121 else if ( msg == "execute(QString,QString)" ) {
1122 if ( type() == GuiServer ) { 1122 if ( type() == GuiServer ) {
1123 QString t, d; 1123 QString t, d;
1124 stream >> t >> d; 1124 stream >> t >> d;
1125 Global::execute( t, d ); 1125 Global::execute( t, d );
1126 } 1126 }
1127 } 1127 }
1128 else if ( msg == "addAlarm(QDateTime,QCString,QCString,int)" ) { 1128 else if ( msg == "addAlarm(QDateTime,QCString,QCString,int)" ) {
1129 if ( type() == GuiServer ) { 1129 if ( type() == GuiServer ) {
1130 QDateTime when; 1130 QDateTime when;
1131 QCString channel, message; 1131 QCString channel, message;
1132 int data; 1132 int data;
1133 stream >> when >> channel >> message >> data; 1133 stream >> when >> channel >> message >> data;
1134 AlarmServer::addAlarm( when, channel, message, data ); 1134 AlarmServer::addAlarm( when, channel, message, data );
1135 } 1135 }
1136 } 1136 }
1137 else if ( msg == "deleteAlarm(QDateTime,QCString,QCString,int)" ) { 1137 else if ( msg == "deleteAlarm(QDateTime,QCString,QCString,int)" ) {
1138 if ( type() == GuiServer ) { 1138 if ( type() == GuiServer ) {
1139 QDateTime when; 1139 QDateTime when;
1140 QCString channel, message; 1140 QCString channel, message;
1141 int data; 1141 int data;
1142 stream >> when >> channel >> message >> data; 1142 stream >> when >> channel >> message >> data;
1143 AlarmServer::deleteAlarm( when, channel, message, data ); 1143 AlarmServer::deleteAlarm( when, channel, message, data );
1144 } 1144 }
1145 } 1145 }
1146 else if ( msg == "clockChange(bool)" ) { 1146 else if ( msg == "clockChange(bool)" ) {
1147 int tmp; 1147 int tmp;
1148 stream >> tmp; 1148 stream >> tmp;
1149 emit clockChanged( tmp ); 1149 emit clockChanged( tmp );
1150 } 1150 }
1151 else if ( msg == "weekChange(bool)" ) { 1151 else if ( msg == "weekChange(bool)" ) {
1152 int tmp; 1152 int tmp;
1153 stream >> tmp; 1153 stream >> tmp;
1154 emit weekChanged( tmp ); 1154 emit weekChanged( tmp );
1155 } 1155 }
1156 else if ( msg == "setDateFormat(DateFormat)" ) { 1156 else if ( msg == "setDateFormat(DateFormat)" ) {
1157 DateFormat tmp; 1157 DateFormat tmp;
1158 stream >> tmp; 1158 stream >> tmp;
1159 emit dateFormatChanged( tmp ); 1159 emit dateFormatChanged( tmp );
1160 } 1160 }
1161 else if ( msg == "setVolume(int,int)" ) { 1161 else if ( msg == "setVolume(int,int)" ) {
1162 int t, v; 1162 int t, v;
1163 stream >> t >> v; 1163 stream >> t >> v;
1164 setVolume( t, v ); 1164 setVolume( t, v );
1165 emit volumeChanged( muted ); 1165 emit volumeChanged( muted );
1166 } 1166 }
1167 else if ( msg == "volumeChange(bool)" ) { 1167 else if ( msg == "volumeChange(bool)" ) {
1168 stream >> muted; 1168 stream >> muted;
1169 setVolume(); 1169 setVolume();
1170 emit volumeChanged( muted ); 1170 emit volumeChanged( muted );
1171 } 1171 }
1172 else if ( msg == "setMic(int,int)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com> 1172 else if ( msg == "setMic(int,int)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com>
1173 int t, v; 1173 int t, v;
1174 stream >> t >> v; 1174 stream >> t >> v;
1175 setMic( t, v ); 1175 setMic( t, v );
1176 emit micChanged( micMuted ); 1176 emit micChanged( micMuted );
1177 } 1177 }
1178 else if ( msg == "micChange(bool)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com> 1178 else if ( msg == "micChange(bool)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com>
1179 stream >> micMuted; 1179 stream >> micMuted;
1180 setMic(); 1180 setMic();
1181 emit micChanged( micMuted ); 1181 emit micChanged( micMuted );
1182 } 1182 }
1183 else if ( msg == "setBass(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> 1183 else if ( msg == "setBass(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org>
1184 int t, v; 1184 int t, v;
1185 stream >> t >> v; 1185 stream >> t >> v;
1186 setBass( t, v ); 1186 setBass( t, v );
1187 } 1187 }
1188 else if ( msg == "bassChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> 1188 else if ( msg == "bassChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org>
1189 setBass(); 1189 setBass();
1190 } 1190 }
1191 else if ( msg == "setTreble(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> 1191 else if ( msg == "setTreble(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org>
1192 int t, v; 1192 int t, v;
1193 stream >> t >> v; 1193 stream >> t >> v;
1194 setTreble( t, v ); 1194 setTreble( t, v );
1195 } 1195 }
1196 else if ( msg == "trebleChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> 1196 else if ( msg == "trebleChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org>
1197 setTreble(); 1197 setTreble();
1198 } 1198 }
1199 1199
1200 1200
1201 1201
1202#endif 1202#endif
1203} 1203}
1204 1204
1205/*! 1205/*!
1206 \internal 1206 \internal
1207*/ 1207*/
1208bool QPEApplication::raiseAppropriateWindow() 1208bool QPEApplication::raiseAppropriateWindow()
1209{ 1209{
1210 bool r = FALSE; 1210 bool r = FALSE;
1211 // ########## raise()ing main window should raise and set active 1211 // ########## raise()ing main window should raise and set active
1212 // ########## it and then all childen. This belongs in Qt/Embedded 1212 // ########## it and then all childen. This belongs in Qt/Embedded
1213 QWidget *top = d->qpe_main_widget; 1213 QWidget *top = d->qpe_main_widget;
1214 if ( !top ) 1214 if ( !top )
1215 top = mainWidget(); 1215 top = mainWidget();
1216 if ( top && d->keep_running ) { 1216 if ( top && d->keep_running ) {
1217 if ( top->isVisible() ) 1217 if ( top->isVisible() )
1218 r = TRUE; 1218 r = TRUE;
1219 else if (d->preloaded) { 1219 else if (d->preloaded) {
1220 // We are preloaded and not visible.. pretend we just started.. 1220 // We are preloaded and not visible.. pretend we just started..
1221 QCopEnvelope e("QPE/System", "fastAppShowing(QString)"); 1221 QCopEnvelope e("QPE/System", "fastAppShowing(QString)");
1222 e << d->appName; 1222 e << d->appName;
1223 } 1223 }
1224 1224
1225 d->show_mx(top, d->nomaximize); 1225 d->show_mx(top, d->nomaximize);
1226 top->raise(); 1226 top->raise();
1227 top->setActiveWindow(); 1227 top->setActiveWindow();
1228 } 1228 }
1229 QWidget *topm = activeModalWidget(); 1229 QWidget *topm = activeModalWidget();
1230 if ( topm && topm != top ) { 1230 if ( topm && topm != top ) {
1231 topm->show(); 1231 topm->show();
1232 topm->raise(); 1232 topm->raise();
1233 topm->setActiveWindow(); 1233 topm->setActiveWindow();
1234 // If we haven't already handled the fastAppShowing message 1234 // If we haven't already handled the fastAppShowing message
1235 if (!top && d->preloaded) { 1235 if (!top && d->preloaded) {
1236 QCopEnvelope e("QPE/System", "fastAppShowing(QString)"); 1236 QCopEnvelope e("QPE/System", "fastAppShowing(QString)");
1237 e << d->appName; 1237 e << d->appName;
1238 } 1238 }
1239 r = FALSE; 1239 r = FALSE;
1240 } 1240 }
1241 return r; 1241 return r;
1242} 1242}
1243 1243
1244void QPEApplication::pidMessage( const QCString& msg, const QByteArray& data) 1244void QPEApplication::pidMessage( const QCString& msg, const QByteArray& data)
1245{ 1245{
1246#ifdef Q_WS_QWS 1246#ifdef Q_WS_QWS
1247 1247
1248 if ( msg == "quit()" ) { 1248 if ( msg == "quit()" ) {
1249 tryQuit(); 1249 tryQuit();
1250 } 1250 }
1251 else if ( msg == "quitIfInvisible()" ) { 1251 else if ( msg == "quitIfInvisible()" ) {
1252 if ( d->qpe_main_widget && !d->qpe_main_widget->isVisible() ) 1252 if ( d->qpe_main_widget && !d->qpe_main_widget->isVisible() )
1253 quit(); 1253 quit();
1254 } 1254 }
1255 else if ( msg == "close()" ) { 1255 else if ( msg == "close()" ) {
1256 hideOrQuit(); 1256 hideOrQuit();
1257 } 1257 }
1258 else if ( msg == "disablePreload()" ) { 1258 else if ( msg == "disablePreload()" ) {
1259 d->preloaded = FALSE; 1259 d->preloaded = FALSE;
1260 d->keep_running = TRUE; 1260 d->keep_running = TRUE;
1261 /* so that quit will quit */ 1261 /* so that quit will quit */
1262 } 1262 }
1263 else if ( msg == "enablePreload()" ) { 1263 else if ( msg == "enablePreload()" ) {
1264 if (d->qpe_main_widget) 1264 if (d->qpe_main_widget)
1265 d->preloaded = TRUE; 1265 d->preloaded = TRUE;
1266 d->keep_running = TRUE; 1266 d->keep_running = TRUE;
1267 /* so next quit won't quit */ 1267 /* so next quit won't quit */
1268 } 1268 }
1269 else if ( msg == "raise()" ) { 1269 else if ( msg == "raise()" ) {
1270 d->keep_running = TRUE; 1270 d->keep_running = TRUE;
1271 d->notbusysent = FALSE; 1271 d->notbusysent = FALSE;
1272 raiseAppropriateWindow(); 1272 raiseAppropriateWindow();
1273 // Tell the system we're still chugging along... 1273 // Tell the system we're still chugging along...
1274 QCopEnvelope e("QPE/System", "appRaised(QString)"); 1274 QCopEnvelope e("QPE/System", "appRaised(QString)");
1275 e << d->appName; 1275 e << d->appName;
1276 } 1276 }
1277 else if ( msg == "flush()" ) { 1277 else if ( msg == "flush()" ) {
1278 emit flush(); 1278 emit flush();
1279 // we need to tell the desktop 1279 // we need to tell the desktop
1280 QCopEnvelope e( "QPE/Desktop", "flushDone(QString)" ); 1280 QCopEnvelope e( "QPE/Desktop", "flushDone(QString)" );
1281 e << d->appName; 1281 e << d->appName;
1282 } 1282 }
1283 else if ( msg == "reload()" ) { 1283 else if ( msg == "reload()" ) {
1284 emit reload(); 1284 emit reload();
1285 } 1285 }
1286 else if ( msg == "setDocument(QString)" ) { 1286 else if ( msg == "setDocument(QString)" ) {
1287 d->keep_running = TRUE; 1287 d->keep_running = TRUE;
1288 QDataStream stream( data, IO_ReadOnly ); 1288 QDataStream stream( data, IO_ReadOnly );
1289 QString doc; 1289 QString doc;
1290 stream >> doc; 1290 stream >> doc;
1291 QWidget *mw = mainWidget(); 1291 QWidget *mw = mainWidget();
1292 if ( !mw ) 1292 if ( !mw )
1293 mw = d->qpe_main_widget; 1293 mw = d->qpe_main_widget;
1294 if ( mw ) 1294 if ( mw )
1295 Global::setDocument( mw, doc ); 1295 Global::setDocument( mw, doc );
1296 } 1296 }
1297 else if ( msg == "nextView()" ) { 1297 else if ( msg == "nextView()" ) {
1298 qDebug("got nextView()"); 1298 qDebug("got nextView()");
1299 /* 1299 /*
1300 if ( raiseAppropriateWindow() ) 1300 if ( raiseAppropriateWindow() )
1301 */ 1301 */
1302 emit appMessage( msg, data); 1302 emit appMessage( msg, data);
1303 } 1303 }
1304 else { 1304 else {
1305 emit appMessage( msg, data); 1305 emit appMessage( msg, data);
1306 } 1306 }
1307 1307
1308#endif 1308#endif
1309} 1309}
1310 1310
1311 1311
1312/*! 1312/*!
1313 Sets widget \a mw as the mainWidget() and shows it. For small windows, 1313 Sets widget \a mw as the mainWidget() and shows it. For small windows,
1314 consider passing TRUE for \a nomaximize rather than the default FALSE. 1314 consider passing TRUE for \a nomaximize rather than the default FALSE.
1315 1315
1316 \sa showMainDocumentWidget() 1316 \sa showMainDocumentWidget()
1317*/ 1317*/
1318void QPEApplication::showMainWidget( QWidget* mw, bool nomaximize ) 1318void QPEApplication::showMainWidget( QWidget* mw, bool nomaximize )
1319{ 1319{
1320 d->show(mw, nomaximize ); 1320 d->show(mw, nomaximize );
1321} 1321}
1322 1322
1323/*! 1323/*!
1324 Sets widget \a mw as the mainWidget() and shows it. For small windows, 1324 Sets widget \a mw as the mainWidget() and shows it. For small windows,
1325 consider passing TRUE for \a nomaximize rather than the default FALSE. 1325 consider passing TRUE for \a nomaximize rather than the default FALSE.
1326 1326
1327 This calls designates the application as 1327 This calls designates the application as
1328 a \link docwidget.html document-oriented\endlink application. 1328 a \link docwidget.html document-oriented\endlink application.
1329 1329
1330 The \a mw widget \e must have this slot: setDocument(const QString&). 1330 The \a mw widget \e must have this slot: setDocument(const QString&).
1331 1331
1332 \sa showMainWidget() 1332 \sa showMainWidget()
1333*/ 1333*/
1334void QPEApplication::showMainDocumentWidget( QWidget* mw, bool nomaximize ) 1334void QPEApplication::showMainDocumentWidget( QWidget* mw, bool nomaximize )
1335{ 1335{
1336 if ( mw && argc() == 2 ) 1336 if ( mw && argc() == 2 )
1337 Global::setDocument( mw, QString::fromUtf8(argv()[1]) ); 1337 Global::setDocument( mw, QString::fromUtf8(argv()[1]) );
1338 1338
1339 d->show(mw, nomaximize ); 1339 d->show(mw, nomaximize );
1340} 1340}
1341 1341
1342 1342
1343/*! 1343/*!
1344 If an application is started via a \link qcop.html QCop\endlink 1344 If an application is started via a \link qcop.html QCop\endlink
1345 message, the application will process the \link qcop.html 1345 message, the application will process the \link qcop.html
1346 QCop\endlink message and then quit. If the application calls this 1346 QCop\endlink message and then quit. If the application calls this
1347 function while processing a \link qcop.html QCop\endlink message, 1347 function while processing a \link qcop.html QCop\endlink message,
1348 after processing its outstanding \link qcop.html QCop\endlink 1348 after processing its outstanding \link qcop.html QCop\endlink
1349 messages the application will start 'properly' and show itself. 1349 messages the application will start 'properly' and show itself.
1350 1350
1351 \sa keepRunning() 1351 \sa keepRunning()
1352*/ 1352*/
1353void QPEApplication::setKeepRunning() 1353void QPEApplication::setKeepRunning()
1354{ 1354{
1355 if ( qApp && qApp->inherits( "QPEApplication" ) ) { 1355 if ( qApp && qApp->inherits( "QPEApplication" ) ) {
1356 QPEApplication * qpeApp = ( QPEApplication* ) qApp; 1356 QPEApplication * qpeApp = ( QPEApplication* ) qApp;
1357 qpeApp->d->keep_running = TRUE; 1357 qpeApp->d->keep_running = TRUE;
1358 } 1358 }
1359} 1359}
1360 1360
1361/*! 1361/*!
1362 Returns TRUE if the application will quit after processing the 1362 Returns TRUE if the application will quit after processing the
1363 current list of qcop messages; otherwise returns FALSE. 1363 current list of qcop messages; otherwise returns FALSE.
1364 1364
1365 \sa setKeepRunning() 1365 \sa setKeepRunning()
1366*/ 1366*/
1367bool QPEApplication::keepRunning() const 1367bool QPEApplication::keepRunning() const
1368{ 1368{
1369 return d->keep_running; 1369 return d->keep_running;
1370} 1370}
1371 1371
1372/*! 1372/*!
1373 \internal 1373 \internal
1374*/ 1374*/
1375void QPEApplication::internalSetStyle( const QString &style ) 1375void QPEApplication::internalSetStyle( const QString &style )
1376{ 1376{
1377#if QT_VERSION >= 300 1377#if QT_VERSION >= 300
1378 if ( style == "QPE" ) { 1378 if ( style == "QPE" ) {
1379 setStyle( new QPEStyle ); 1379 setStyle( new QPEStyle );
1380 } 1380 }
1381 else { 1381 else {
1382 QStyle *s = QStyleFactory::create( style ); 1382 QStyle *s = QStyleFactory::create( style );
1383 if ( s ) 1383 if ( s )
1384 setStyle( s ); 1384 setStyle( s );
1385 } 1385 }
1386#else 1386#else
1387 if ( style == "Windows" ) { 1387 if ( style == "Windows" ) {
1388 setStyle( new QWindowsStyle ); 1388 setStyle( new QWindowsStyle );
1389 } 1389 }
1390 else if ( style == "QPE" ) { 1390 else if ( style == "QPE" ) {
1391 setStyle( new QPEStyle ); 1391 setStyle( new QPEStyle );
1392 } 1392 }
1393 else if ( style == "Light" ) { 1393 else if ( style == "Light" ) {
1394 setStyle( new LightStyle ); 1394 setStyle( new LightStyle );
1395 } 1395 }
1396#ifndef QT_NO_STYLE_PLATINUM 1396#ifndef QT_NO_STYLE_PLATINUM
1397 else if ( style == "Platinum" ) { 1397 else if ( style == "Platinum" ) {
1398 setStyle( new QPlatinumStyle ); 1398 setStyle( new QPlatinumStyle );
1399 } 1399 }
1400#endif 1400#endif
1401#ifndef QT_NO_STYLE_MOTIF 1401#ifndef QT_NO_STYLE_MOTIF
1402 else if ( style == "Motif" ) { 1402 else if ( style == "Motif" ) {
1403 setStyle( new QMotifStyle ); 1403 setStyle( new QMotifStyle );
1404 } 1404 }
1405#endif 1405#endif
1406#ifndef QT_NO_STYLE_MOTIFPLUS 1406#ifndef QT_NO_STYLE_MOTIFPLUS
1407 else if ( style == "MotifPlus" ) { 1407 else if ( style == "MotifPlus" ) {
1408 setStyle( new QMotifPlusStyle ); 1408 setStyle( new QMotifPlusStyle );
1409 } 1409 }
1410#endif 1410#endif
1411 1411
1412 else { 1412 else {
1413 QStyle *sty = 0; 1413 QStyle *sty = 0;
1414 QString path = QPEApplication::qpeDir ( ) + "/plugins/styles/"; 1414 QString path = QPEApplication::qpeDir ( ) + "/plugins/styles/";
1415 1415
1416 if ( style. find ( ".so" ) > 0 ) 1416 if ( style. find ( ".so" ) > 0 )
1417 path += style; 1417 path += style;
1418 else 1418 else
1419 path = path + "lib" + style. lower ( ) + ".so"; // compatibility 1419 path = path + "lib" + style. lower ( ) + ".so"; // compatibility
1420 1420
1421 static QLibrary *lastlib = 0; 1421 static QLibrary *lastlib = 0;
1422 static StyleInterface *lastiface = 0; 1422 static StyleInterface *lastiface = 0;
1423 1423
1424 QLibrary *lib = new QLibrary ( path ); 1424 QLibrary *lib = new QLibrary ( path );
1425 StyleInterface *iface = 0; 1425 StyleInterface *iface = 0;
1426 1426
1427 if (( lib-> queryInterface ( IID_Style, ( QUnknownInterface ** ) &iface ) == QS_OK ) && iface ) 1427 if (( lib-> queryInterface ( IID_Style, ( QUnknownInterface ** ) &iface ) == QS_OK ) && iface )
1428 sty = iface-> style ( ); 1428 sty = iface-> style ( );
1429 1429
1430 if ( sty ) { 1430 if ( sty ) {
1431 setStyle ( sty ); 1431 setStyle ( sty );
1432 1432
1433 if ( lastiface ) 1433 if ( lastiface )
1434 lastiface-> release ( ); 1434 lastiface-> release ( );
1435 lastiface = iface; 1435 lastiface = iface;
1436 1436
1437 if ( lastlib ) { 1437 if ( lastlib ) {
1438 lastlib-> unload ( ); 1438 lastlib-> unload ( );
1439 delete lastlib; 1439 delete lastlib;
1440 } 1440 }
1441 lastlib = lib; 1441 lastlib = lib;
1442 } 1442 }
1443 else { 1443 else {
1444 if ( iface ) 1444 if ( iface )
1445 iface-> release ( ); 1445 iface-> release ( );
1446 delete lib; 1446 delete lib;
1447 1447
1448 setStyle ( new LightStyle ( )); 1448 setStyle ( new LightStyle ( ));
1449 } 1449 }
1450 } 1450 }
1451#endif 1451#endif
1452} 1452}
1453 1453
1454/*! 1454/*!
1455 \internal 1455 \internal
1456*/ 1456*/
1457void QPEApplication::prepareForTermination( bool willrestart ) 1457void QPEApplication::prepareForTermination( bool willrestart )
1458{ 1458{
1459 if ( willrestart ) { 1459 if ( willrestart ) {
1460 // Draw a big wait icon, the image can be altered in later revisions 1460 // Draw a big wait icon, the image can be altered in later revisions
1461 // QWidget *d = QApplication::desktop(); 1461 // QWidget *d = QApplication::desktop();
1462 QImage img = Resource::loadImage( "launcher/new_wait" ); 1462 QImage img = Resource::loadImage( "launcher/new_wait" );
1463 QPixmap pix; 1463 QPixmap pix;
1464 pix.convertFromImage( img.smoothScale( 1 * img.width(), 1 * img.height() ) ); 1464 pix.convertFromImage( img.smoothScale( 1 * img.width(), 1 * img.height() ) );
1465 QLabel *lblWait = new QLabel( 0, "wait hack!", QWidget::WStyle_Customize | 1465 QLabel *lblWait = new QLabel( 0, "wait hack!", QWidget::WStyle_Customize |
1466 QWidget::WStyle_NoBorder | QWidget::WStyle_Tool ); 1466 QWidget::WStyle_NoBorder | QWidget::WStyle_Tool );
1467 lblWait->setPixmap( pix ); 1467 lblWait->setPixmap( pix );
1468 lblWait->setAlignment( QWidget::AlignCenter ); 1468 lblWait->setAlignment( QWidget::AlignCenter );
1469 lblWait->show(); 1469 lblWait->show();
1470 lblWait->showMaximized(); 1470 lblWait->showMaximized();
1471 } 1471 }
1472#ifndef SINGLE_APP 1472#ifndef SINGLE_APP
1473 { QCopEnvelope envelope( "QPE/System", "forceQuit()" ); 1473 { QCopEnvelope envelope( "QPE/System", "forceQuit()" );
1474 } 1474 }
1475 processEvents(); // ensure the message goes out. 1475 processEvents(); // ensure the message goes out.
1476 sleep( 1 ); // You have 1 second to comply. 1476 sleep( 1 ); // You have 1 second to comply.
1477#endif 1477#endif
1478} 1478}
1479 1479
1480/*! 1480/*!
1481 \internal 1481 \internal
1482*/ 1482*/
1483void QPEApplication::shutdown() 1483void QPEApplication::shutdown()
1484{ 1484{
1485 // Implement in server's QPEApplication subclass 1485 // Implement in server's QPEApplication subclass
1486} 1486}
1487 1487
1488/*! 1488/*!
1489 \internal 1489 \internal
1490*/ 1490*/
1491void QPEApplication::restart() 1491void QPEApplication::restart()
1492{ 1492{
1493 // Implement in server's QPEApplication subclass 1493 // Implement in server's QPEApplication subclass
1494} 1494}
1495 1495
1496static QPtrDict<void>* stylusDict = 0; 1496static QPtrDict<void>* stylusDict = 0;
1497static void createDict() 1497static void createDict()
1498{ 1498{
1499 if ( !stylusDict ) 1499 if ( !stylusDict )
1500 stylusDict = new QPtrDict<void>; 1500 stylusDict = new QPtrDict<void>;
1501} 1501}
1502 1502
1503/*! 1503/*!
1504 Returns the current StylusMode for widget \a w. 1504 Returns the current StylusMode for widget \a w.
1505 1505
1506 \sa setStylusOperation() StylusMode 1506 \sa setStylusOperation() StylusMode
1507*/ 1507*/
1508QPEApplication::StylusMode QPEApplication::stylusOperation( QWidget* w ) 1508QPEApplication::StylusMode QPEApplication::stylusOperation( QWidget* w )
1509{ 1509{
1510 if ( stylusDict ) 1510 if ( stylusDict )
1511 return ( StylusMode ) ( int ) stylusDict->find( w ); 1511 return ( StylusMode ) ( int ) stylusDict->find( w );
1512 return LeftOnly; 1512 return LeftOnly;
1513} 1513}
1514 1514
1515/*! 1515/*!
1516 \enum QPEApplication::StylusMode 1516 \enum QPEApplication::StylusMode
1517 1517
1518 \value LeftOnly the stylus only generates LeftButton 1518 \value LeftOnly the stylus only generates LeftButton
1519 events (the default). 1519 events (the default).
1520 \value RightOnHold the stylus generates RightButton events 1520 \value RightOnHold the stylus generates RightButton events
1521 if the user uses the press-and-hold gesture. 1521 if the user uses the press-and-hold gesture.
1522 1522
1523 \sa setStylusOperation() stylusOperation() 1523 \sa setStylusOperation() stylusOperation()
1524*/ 1524*/
1525 1525
1526/*! 1526/*!
1527 Causes widget \a w to receive mouse events according to the stylus 1527 Causes widget \a w to receive mouse events according to the stylus
1528 \a mode. 1528 \a mode.
1529 1529
1530 \sa stylusOperation() StylusMode 1530 \sa stylusOperation() StylusMode
1531*/ 1531*/
1532void QPEApplication::setStylusOperation( QWidget * w, StylusMode mode ) 1532void QPEApplication::setStylusOperation( QWidget * w, StylusMode mode )
1533{ 1533{
1534 createDict(); 1534 createDict();
1535 if ( mode == LeftOnly ) { 1535 if ( mode == LeftOnly ) {
1536 stylusDict->remove 1536 stylusDict->remove
1537 ( w ); 1537 ( w );
1538 w->removeEventFilter( qApp ); 1538 w->removeEventFilter( qApp );
1539 } 1539 }
1540 else { 1540 else {
1541 stylusDict->insert( w, ( void* ) mode ); 1541 stylusDict->insert( w, ( void* ) mode );
1542 connect( w, SIGNAL( destroyed() ), qApp, SLOT( removeSenderFromStylusDict() ) ); 1542 connect( w, SIGNAL( destroyed() ), qApp, SLOT( removeSenderFromStylusDict() ) );
1543 w->installEventFilter( qApp ); 1543 w->installEventFilter( qApp );
1544 } 1544 }
1545} 1545}
1546 1546
1547 1547
1548/*! 1548/*!
1549 \reimp 1549 \reimp
1550*/ 1550*/
1551bool QPEApplication::eventFilter( QObject *o, QEvent *e ) 1551bool QPEApplication::eventFilter( QObject *o, QEvent *e )
1552{ 1552{
1553 if ( stylusDict && e->type() >= QEvent::MouseButtonPress && e->type() <= QEvent::MouseMove ) { 1553 if ( stylusDict && e->type() >= QEvent::MouseButtonPress && e->type() <= QEvent::MouseMove ) {
1554 QMouseEvent * me = ( QMouseEvent* ) e; 1554 QMouseEvent * me = ( QMouseEvent* ) e;
1555 StylusMode mode = (StylusMode)(int)stylusDict->find(o); 1555 StylusMode mode = (StylusMode)(int)stylusDict->find(o);
1556 switch (mode) { 1556 switch (mode) {
1557 case RightOnHold: 1557 case RightOnHold:
1558 switch ( me->type() ) { 1558 switch ( me->type() ) {
1559 case QEvent::MouseButtonPress: 1559 case QEvent::MouseButtonPress:
1560 if ( me->button() == LeftButton ) { 1560 if ( me->button() == LeftButton ) {
1561 d->presstimer = startTimer(500); // #### pref. 1561 d->presstimer = startTimer(500); // #### pref.
1562 d->presswidget = (QWidget*)o; 1562 d->presswidget = (QWidget*)o;
1563 d->presspos = me->pos(); 1563 d->presspos = me->pos();
1564 d->rightpressed = FALSE; 1564 d->rightpressed = FALSE;
1565 } 1565 }
1566 break; 1566 break;
1567 case QEvent::MouseMove: 1567 case QEvent::MouseMove:
1568 if (d->presstimer && (me->pos() - d->presspos).manhattanLength() > 8) { 1568 if (d->presstimer && (me->pos() - d->presspos).manhattanLength() > 8) {
1569 killTimer(d->presstimer); 1569 killTimer(d->presstimer);
1570 d->presstimer = 0; 1570 d->presstimer = 0;
1571 } 1571 }
1572 break; 1572 break;
1573 case QEvent::MouseButtonRelease: 1573 case QEvent::MouseButtonRelease:
1574 if ( me->button() == LeftButton ) { 1574 if ( me->button() == LeftButton ) {
1575 if ( d->presstimer ) { 1575 if ( d->presstimer ) {
1576 killTimer(d->presstimer); 1576 killTimer(d->presstimer);
1577 d->presstimer = 0; 1577 d->presstimer = 0;
1578 } 1578 }
1579 if ( d->rightpressed && d->presswidget ) { 1579 if ( d->rightpressed && d->presswidget ) {
1580 // Right released 1580 // Right released
1581 postEvent( d->presswidget, 1581 postEvent( d->presswidget,
1582 new QMouseEvent( QEvent::MouseButtonRelease, me->pos(), 1582 new QMouseEvent( QEvent::MouseButtonRelease, me->pos(),
1583 RightButton, LeftButton + RightButton ) ); 1583 RightButton, LeftButton + RightButton ) );
1584 // Left released, off-widget 1584 // Left released, off-widget
1585 postEvent( d->presswidget, 1585 postEvent( d->presswidget,
1586 new QMouseEvent( QEvent::MouseMove, QPoint( -1, -1), 1586 new QMouseEvent( QEvent::MouseMove, QPoint( -1, -1),
1587 LeftButton, LeftButton ) ); 1587 LeftButton, LeftButton ) );
1588 postEvent( d->presswidget, 1588 postEvent( d->presswidget,
1589 new QMouseEvent( QEvent::MouseButtonRelease, QPoint( -1, -1), 1589 new QMouseEvent( QEvent::MouseButtonRelease, QPoint( -1, -1),
1590 LeftButton, LeftButton ) ); 1590 LeftButton, LeftButton ) );
1591 d->rightpressed = FALSE; 1591 d->rightpressed = FALSE;
1592 return TRUE; // don't send the real Left release 1592 return TRUE; // don't send the real Left release
1593 } 1593 }
1594 } 1594 }
1595 break; 1595 break;
1596 default: 1596 default:
1597 break; 1597 break;
1598 } 1598 }
1599 break; 1599 break;
1600 default: 1600 default:
1601 ; 1601 ;
1602 } 1602 }
1603 } 1603 }
1604 else if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ) { 1604 else if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ) {
1605 QKeyEvent *ke = (QKeyEvent *)e; 1605 QKeyEvent *ke = (QKeyEvent *)e;
1606 if ( ke->key() == Key_Enter ) { 1606 if ( ke->key() == Key_Enter ) {
1607 if ( o->isA( "QRadioButton" ) || o->isA( "QCheckBox" ) ) { 1607 if ( o->isA( "QRadioButton" ) || o->isA( "QCheckBox" ) ) {
1608 postEvent( o, new QKeyEvent( e->type(), Key_Space, ' ', 1608 postEvent( o, new QKeyEvent( e->type(), Key_Space, ' ',
1609 ke->state(), " ", ke->isAutoRepeat(), ke->count() ) ); 1609 ke->state(), " ", ke->isAutoRepeat(), ke->count() ) );
1610 return TRUE; 1610 return TRUE;
1611 } 1611 }
1612 } 1612 }
1613 } 1613 }
1614 return FALSE; 1614 return FALSE;
1615} 1615}
1616 1616
1617/*! 1617/*!
1618 \reimp 1618 \reimp
1619*/ 1619*/
1620void QPEApplication::timerEvent( QTimerEvent *e ) 1620void QPEApplication::timerEvent( QTimerEvent *e )
1621{ 1621{
1622 if ( e->timerId() == d->presstimer && d->presswidget ) { 1622 if ( e->timerId() == d->presstimer && d->presswidget ) {
1623 // Right pressed 1623 // Right pressed
1624 postEvent( d->presswidget, 1624 postEvent( d->presswidget,
1625 new QMouseEvent( QEvent::MouseButtonPress, d->presspos, 1625 new QMouseEvent( QEvent::MouseButtonPress, d->presspos,
1626 RightButton, LeftButton ) ); 1626 RightButton, LeftButton ) );
1627 killTimer( d->presstimer ); 1627 killTimer( d->presstimer );
1628 d->presstimer = 0; 1628 d->presstimer = 0;
1629 d->rightpressed = TRUE; 1629 d->rightpressed = TRUE;
1630 } 1630 }
1631} 1631}
1632 1632
1633void QPEApplication::removeSenderFromStylusDict() 1633void QPEApplication::removeSenderFromStylusDict()
1634{ 1634{
1635 stylusDict->remove 1635 stylusDict->remove
1636 ( ( void* ) sender() ); 1636 ( ( void* ) sender() );
1637 if ( d->presswidget == sender() ) 1637 if ( d->presswidget == sender() )
1638 d->presswidget = 0; 1638 d->presswidget = 0;
1639} 1639}
1640 1640
1641/*! 1641/*!
1642 \internal 1642 \internal
1643*/ 1643*/
1644bool QPEApplication::keyboardGrabbed() const 1644bool QPEApplication::keyboardGrabbed() const
1645{ 1645{
1646 return d->kbgrabbed; 1646 return d->kbgrabbed;
1647} 1647}
1648 1648
1649 1649
1650/*! 1650/*!
1651 Reverses the effect of grabKeyboard(). This is called automatically 1651 Reverses the effect of grabKeyboard(). This is called automatically
1652 on program exit. 1652 on program exit.
1653*/ 1653*/
1654void QPEApplication::ungrabKeyboard() 1654void QPEApplication::ungrabKeyboard()
1655{ 1655{
1656 ((QPEApplication *) qApp )-> d-> kbgrabbed = false; 1656 ((QPEApplication *) qApp )-> d-> kbgrabbed = false;
1657} 1657}
1658 1658
1659/*! 1659/*!
1660 Grabs the physical keyboard keys, e.g. the application's launching 1660 Grabs the physical keyboard keys, e.g. the application's launching
1661 keys. Instead of launching applications when these keys are pressed 1661 keys. Instead of launching applications when these keys are pressed
1662 the signals emitted are sent to this application instead. Some games 1662 the signals emitted are sent to this application instead. Some games
1663 programs take over the launch keys in this way to make interaction 1663 programs take over the launch keys in this way to make interaction
1664 easier. 1664 easier.
1665 1665
1666 \sa ungrabKeyboard() 1666 \sa ungrabKeyboard()
1667*/ 1667*/
1668void QPEApplication::grabKeyboard() 1668void QPEApplication::grabKeyboard()
1669{ 1669{
1670 ((QPEApplication *) qApp )-> d-> kbgrabbed = true; 1670 ((QPEApplication *) qApp )-> d-> kbgrabbed = true;
1671} 1671}
1672 1672
1673/*! 1673/*!
1674 \reimp 1674 \reimp
1675*/ 1675*/
1676int QPEApplication::exec() 1676int QPEApplication::exec()
1677{ 1677{
1678#ifndef QT_NO_COP 1678#ifndef QT_NO_COP
1679 d->sendQCopQ(); 1679 d->sendQCopQ();
1680#endif 1680#endif
1681 1681
1682 if ( d->keep_running ) 1682 if ( d->keep_running )
1683 //|| d->qpe_main_widget && d->qpe_main_widget->isVisible() ) 1683 //|| d->qpe_main_widget && d->qpe_main_widget->isVisible() )
1684 return QApplication::exec(); 1684 return QApplication::exec();
1685 1685
1686#ifndef QT_NO_COP 1686#ifndef QT_NO_COP
1687 1687
1688 { 1688 {
1689 QCopEnvelope e( "QPE/System", "closing(QString)" ); 1689 QCopEnvelope e( "QPE/System", "closing(QString)" );
1690 e << d->appName; 1690 e << d->appName;
1691 } 1691 }
1692#endif 1692#endif
1693 processEvents(); 1693 processEvents();
1694 return 0; 1694 return 0;
1695} 1695}
1696 1696
1697/*! 1697/*!
1698 \internal 1698 \internal
1699 External request for application to quit. Quits if possible without 1699 External request for application to quit. Quits if possible without
1700 loosing state. 1700 loosing state.
1701*/ 1701*/
1702void QPEApplication::tryQuit() 1702void QPEApplication::tryQuit()
1703{ 1703{
1704 if ( activeModalWidget() || strcmp( argv() [ 0 ], "embeddedkonsole" ) == 0 ) 1704 if ( activeModalWidget() || strcmp( argv() [ 0 ], "embeddedkonsole" ) == 0 )
1705 return ; // Inside modal loop or konsole. Too hard to save state. 1705 return ; // Inside modal loop or konsole. Too hard to save state.
1706#ifndef QT_NO_COP 1706#ifndef QT_NO_COP
1707 1707
1708 { 1708 {
1709 QCopEnvelope e( "QPE/System", "closing(QString)" ); 1709 QCopEnvelope e( "QPE/System", "closing(QString)" );
1710 e << d->appName; 1710 e << d->appName;
1711 } 1711 }
1712#endif 1712#endif
1713 processEvents(); 1713 processEvents();
1714 1714
1715 quit(); 1715 quit();
1716} 1716}
1717 1717
1718/*! 1718/*!
1719 \internal 1719 \internal
1720 User initiated quit. Makes the window 'Go Away'. If preloaded this means 1720 User initiated quit. Makes the window 'Go Away'. If preloaded this means
1721 hiding the window. If not it means quitting the application. 1721 hiding the window. If not it means quitting the application.
1722 As this is user initiated we don't need to check state. 1722 As this is user initiated we don't need to check state.
1723*/ 1723*/
1724void QPEApplication::hideOrQuit() 1724void QPEApplication::hideOrQuit()
1725{ 1725{
1726 processEvents(); 1726 processEvents();
1727 1727
1728 // If we are a preloaded application we don't actually quit, so emit 1728 // If we are a preloaded application we don't actually quit, so emit
1729 // a System message indicating we're quasi-closing. 1729 // a System message indicating we're quasi-closing.
1730 if ( d->preloaded && d->qpe_main_widget ) 1730 if ( d->preloaded && d->qpe_main_widget )
1731#ifndef QT_NO_COP 1731#ifndef QT_NO_COP
1732 1732
1733 { 1733 {
1734 QCopEnvelope e("QPE/System", "fastAppHiding(QString)" ); 1734 QCopEnvelope e("QPE/System", "fastAppHiding(QString)" );
1735 e << d->appName; 1735 e << d->appName;
1736 d->qpe_main_widget->hide(); 1736 d->qpe_main_widget->hide();
1737 } 1737 }
1738#endif 1738#endif
1739 else 1739 else
1740 quit(); 1740 quit();
1741} 1741}
1742 1742
1743 1743
1744#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SHARP) 1744#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
1745 1745
1746// The libraries with the skiff package (and possibly others) have 1746// The libraries with the skiff package (and possibly others) have
1747// completely useless implementations of builtin new and delete that 1747// completely useless implementations of builtin new and delete that
1748// use about 50% of your CPU. Here we revert to the simple libc 1748// use about 50% of your CPU. Here we revert to the simple libc
1749// functions. 1749// functions.
1750 1750
1751void* operator new[]( size_t size ) 1751void* operator new[]( size_t size )
1752{ 1752{
1753 return malloc( size ); 1753 return malloc( size );
1754} 1754}
1755 1755
1756void* operator new( size_t size ) 1756void* operator new( size_t size )
1757{ 1757{
1758 return malloc( size ); 1758 return malloc( size );
1759} 1759}
1760 1760
1761void operator delete[]( void* p ) 1761void operator delete[]( void* p )
1762{ 1762{
1763 free( p ); 1763 free( p );
1764} 1764}
1765 1765
1766void operator delete[]( void* p, size_t /*size*/ ) 1766void operator delete[]( void* p, size_t /*size*/ )
1767{ 1767{
1768 free( p ); 1768 free( p );
1769} 1769}
1770 1770
1771void operator delete( void* p ) 1771void operator delete( void* p )
1772{ 1772{
1773 free( p ); 1773 free( p );
1774} 1774}
1775 1775
1776void operator delete( void* p, size_t /*size*/ ) 1776void operator delete( void* p, size_t /*size*/ )
1777{ 1777{
1778 free( p ); 1778 free( p );
1779} 1779}
1780 1780
1781#endif 1781#endif
1782 1782
1783#if ( QT_VERSION <= 230 ) && !defined(SINGLE_APP) 1783#if ( QT_VERSION <= 230 ) && !defined(SINGLE_APP)
1784#include <qwidgetlist.h> 1784#include <qwidgetlist.h>
1785#ifdef QWS 1785#ifdef QWS
1786#include <qgfx_qws.h> 1786#include <qgfx_qws.h>
1787extern QRect qt_maxWindowRect; 1787extern QRect qt_maxWindowRect;
1788void qt_setMaxWindowRect(const QRect& r ) 1788void qt_setMaxWindowRect(const QRect& r )
1789{ 1789{
1790 qt_maxWindowRect = qt_screen->mapFromDevice( r, 1790 qt_maxWindowRect = qt_screen->mapFromDevice( r,
1791 qt_screen->mapToDevice( QSize( qt_screen->width(), qt_screen->height() ) ) ); 1791 qt_screen->mapToDevice( QSize( qt_screen->width(), qt_screen->height() ) ) );
1792 // Re-resize any maximized windows 1792 // Re-resize any maximized windows
1793 QWidgetList* l = QApplication::topLevelWidgets(); 1793 QWidgetList* l = QApplication::topLevelWidgets();
1794 if ( l ) { 1794 if ( l ) {
1795 QWidget * w = l->first(); 1795 QWidget * w = l->first();
1796 while ( w ) { 1796 while ( w ) {
1797 if ( w->isVisible() && w->isMaximized() ) { 1797 if ( w->isVisible() && w->isMaximized() ) {
1798 w->showMaximized(); 1798 w->showMaximized();
1799 } 1799 }
1800 w = l->next(); 1800 w = l->next();
1801 } 1801 }
1802 delete l; 1802 delete l;
1803 } 1803 }
1804} 1804}
1805#endif 1805#endif
1806#endif 1806#endif