summaryrefslogtreecommitdiff
authorkergoth <kergoth>2003-03-26 22:14:35 (UTC)
committer kergoth <kergoth>2003-03-26 22:14:35 (UTC)
commit0e3f3b3edcbfb26239230e00fa5dc9244bdbbf02 (patch) (unidiff)
treedf259e71f3fc2263d8053221c103745eea05064e
parent01e8da96a688b8a84133b7c3e5a89c295a71d9fd (diff)
downloadopie-0e3f3b3edcbfb26239230e00fa5dc9244bdbbf02.zip
opie-0e3f3b3edcbfb26239230e00fa5dc9244bdbbf02.tar.gz
opie-0e3f3b3edcbfb26239230e00fa5dc9244bdbbf02.tar.bz2
Modified launcher to set rotation via:
1) QWS_DISPLAY env var 2) Rot field as saved by setDefaultRotation 3) physical orientation as controlled by ODevice (this is broken currently, due to ODevice requiring a QApplication to be created)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/main.cpp59
1 files changed, 39 insertions, 20 deletions
diff --git a/core/launcher/main.cpp b/core/launcher/main.cpp
index d11b6c5..0b38738 100644
--- a/core/launcher/main.cpp
+++ b/core/launcher/main.cpp
@@ -37,68 +37,87 @@
37#include <qwindowsystem_qws.h> 37#include <qwindowsystem_qws.h>
38#include <qwsmouse_qws.h> 38#include <qwsmouse_qws.h>
39#include <qpe/qcopenvelope_qws.h> 39#include <qpe/qcopenvelope_qws.h>
40#include <qpe/alarmserver.h> 40#include <qpe/alarmserver.h>
41 41
42#include <stdlib.h> 42#include <stdlib.h>
43#include <stdio.h> 43#include <stdio.h>
44#include <signal.h> 44#include <signal.h>
45#include <unistd.h> 45#include <unistd.h>
46 46
47#include "../calibrate/calibrate.h" 47#include "../calibrate/calibrate.h"
48 48
49using namespace Opie; 49using namespace Opie;
50 50
51void initEnvironment() 51void initEnvironment()
52{ 52{
53 Config config("locale"); 53 int rot;
54 config.setGroup( "Location" ); 54 Config config("locale");
55 QString tz = config.readEntry( "Timezone", getenv("TZ") ); 55
56 config.setGroup( "Location" );
57 QString tz = config.readEntry( "Timezone", getenv("TZ") );
56 58
57 // if not timezone set, pick New York 59 // if not timezone set, pick New York
58 if (tz.isNull()) 60 if (tz.isNull())
59 tz = "America/New_York"; 61 tz = "America/New_York";
60 62
61 setenv( "TZ", tz, 1 ); 63 setenv( "TZ", tz, 1 );
62 config.writeEntry( "Timezone", tz); 64 config.writeEntry( "Timezone", tz);
63 65
64 config.setGroup( "Language" ); 66 config.setGroup( "Language" );
65 QString lang = config.readEntry( "Language", getenv("LANG") ); 67 QString lang = config.readEntry( "Language", getenv("LANG") );
66 if ( !lang.isNull() ) 68 if ( !lang.isNull() )
67 setenv( "LANG", lang, 1 ); 69 setenv( "LANG", lang, 1 );
70
71#if !defined(QT_QWS_CASSIOPEIA) && !defined(QT_QWS_IPAQ) && !defined(QT_QWS_SL5XXX)
72 setenv( "QWS_SIZE", "240x320", 0 );
73#endif
74
75 /*
76 * Rotation:
77 * 1. use env var if set
78 * 2. use saved default if set
79 * 3. use physical orientation (currently fails due to ODevice
80 * using a QPixmap and therefore requiring a QApplication)
81 */
82 if ( ( rot = QPEApplication::defaultRotation ( ) ) == 0 ) {
83 Config config("qpe");
84 config.setGroup( "Rotation" );
85 if ( ( rot = config.readNumEntry( "Rot", -1 ) ) == -1 )
86 rot = ODevice::inst ( )-> rotation ( ) * 90;
87 }
88
89 setenv("QWS_DISPLAY", QString("Transformed:Rot%1:0").arg(rot), 1);
68} 90}
69 91
70 92
71int initApplication( int argc, char ** argv ) 93int initApplication( int argc, char ** argv )
72{ 94{
73 initEnvironment(); 95 initEnvironment();
74 96
75#if !defined(QT_QWS_CASSIOPEIA) && !defined(QT_QWS_IPAQ) && !defined(QT_QWS_SL5XXX)
76 setenv( "QWS_SIZE", "240x320", 0 );
77#endif
78
79 //Don't flicker at startup: 97 //Don't flicker at startup:
80 QWSServer::setDesktopBackground( QImage() ); 98 QWSServer::setDesktopBackground( QImage() );
99
81 DesktopApplication a( argc, argv, QApplication::GuiServer ); 100 DesktopApplication a( argc, argv, QApplication::GuiServer );
82 101
83 ODevice::inst ( )-> setSoftSuspend ( true ); 102 ODevice::inst ( )-> setSoftSuspend ( true );
84 103
85 { // init backlight 104 { // init backlight
86 QCopEnvelope e("QPE/System", "setBacklight(int)" ); 105 QCopEnvelope e("QPE/System", "setBacklight(int)" );
87 e << -3; // Forced on 106 e << -3; // Forced on
88 } 107 }
89 108
90 AlarmServer::initialize(); 109 AlarmServer::initialize();
91 110
92 Desktop *d = new Desktop(); 111 Desktop *d = new Desktop();
93 112
94 QObject::connect( &a, SIGNAL(power()), d, SLOT(togglePower()) ); 113 QObject::connect( &a, SIGNAL(power()), d, SLOT(togglePower()) );
95 QObject::connect( &a, SIGNAL(backlight()), d, SLOT(toggleLight()) ); 114 QObject::connect( &a, SIGNAL(backlight()), d, SLOT(toggleLight()) );
96 QObject::connect( &a, SIGNAL(symbol()), d, SLOT(toggleSymbolInput()) ); 115 QObject::connect( &a, SIGNAL(symbol()), d, SLOT(toggleSymbolInput()) );
97 QObject::connect( &a, SIGNAL(numLockStateToggle()), d, SLOT(toggleNumLockState()) ); 116 QObject::connect( &a, SIGNAL(numLockStateToggle()), d, SLOT(toggleNumLockState()) );
98 QObject::connect( &a, SIGNAL(capsLockStateToggle()), d, SLOT(toggleCapsLockState()) ); 117 QObject::connect( &a, SIGNAL(capsLockStateToggle()), d, SLOT(toggleCapsLockState()) );
99 QObject::connect( &a, SIGNAL(prepareForRestart()), d, SLOT(terminateServers()) ); 118 QObject::connect( &a, SIGNAL(prepareForRestart()), d, SLOT(terminateServers()) );
100 119
101 (void)new SysFileMonitor(d); 120 (void)new SysFileMonitor(d);
102 Network::createServer(d); 121 Network::createServer(d);
103 122
104 if ( QWSServer::mouseHandler() ->inherits("QCalibratedMouseHandler") ) { 123 if ( QWSServer::mouseHandler() ->inherits("QCalibratedMouseHandler") ) {