summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/main.cpp27
1 files changed, 23 insertions, 4 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
@@ -50,7 +50,9 @@ using namespace Opie;
void initEnvironment()
{
+ int rot;
Config config("locale");
+
config.setGroup( "Location" );
QString tz = config.readEntry( "Timezone", getenv("TZ") );
@@ -65,6 +67,26 @@ void initEnvironment()
QString lang = config.readEntry( "Language", getenv("LANG") );
if ( !lang.isNull() )
setenv( "LANG", lang, 1 );
+
+#if !defined(QT_QWS_CASSIOPEIA) && !defined(QT_QWS_IPAQ) && !defined(QT_QWS_SL5XXX)
+ setenv( "QWS_SIZE", "240x320", 0 );
+#endif
+
+ /*
+ * Rotation:
+ * 1. use env var if set
+ * 2. use saved default if set
+ * 3. use physical orientation (currently fails due to ODevice
+ * using a QPixmap and therefore requiring a QApplication)
+ */
+ if ( ( rot = QPEApplication::defaultRotation ( ) ) == 0 ) {
+ Config config("qpe");
+ config.setGroup( "Rotation" );
+ if ( ( rot = config.readNumEntry( "Rot", -1 ) ) == -1 )
+ rot = ODevice::inst ( )-> rotation ( ) * 90;
+ }
+
+ setenv("QWS_DISPLAY", QString("Transformed:Rot%1:0").arg(rot), 1);
}
@@ -72,12 +94,9 @@ int initApplication( int argc, char ** argv )
{
initEnvironment();
-#if !defined(QT_QWS_CASSIOPEIA) && !defined(QT_QWS_IPAQ) && !defined(QT_QWS_SL5XXX)
- setenv( "QWS_SIZE", "240x320", 0 );
-#endif
-
//Don't flicker at startup:
QWSServer::setDesktopBackground( QImage() );
+
DesktopApplication a( argc, argv, QApplication::GuiServer );
ODevice::inst ( )-> setSoftSuspend ( true );