summaryrefslogtreecommitdiff
path: root/core/launcher/main.cpp
Unidiff
Diffstat (limited to 'core/launcher/main.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/main.cpp12
1 files changed, 0 insertions, 12 deletions
diff --git a/core/launcher/main.cpp b/core/launcher/main.cpp
index b3c331b..a19da14 100644
--- a/core/launcher/main.cpp
+++ b/core/launcher/main.cpp
@@ -1,99 +1,95 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "desktop.h" 21#include "desktop.h"
22#include "taskbar.h" 22#include "taskbar.h"
23#include "stabmon.h" 23#include "stabmon.h"
24 24
25#include <qpe/qpeapplication.h> 25#include <qpe/qpeapplication.h>
26#include <qpe/network.h> 26#include <qpe/network.h>
27#include <qpe/config.h> 27#include <qpe/config.h>
28#if defined( QT_QWS_CUSTOM ) || defined( QT_QWS_IPAQ ) 28#if defined( QT_QWS_CUSTOM ) || defined( QT_QWS_IPAQ )
29#include <qpe/custom.h> 29#include <qpe/custom.h>
30#endif 30#endif
31 31
32#include <opie/odevice.h> 32#include <opie/odevice.h>
33 33
34#include <qfile.h> 34#include <qfile.h>
35#include <qwindowsystem_qws.h> 35#include <qwindowsystem_qws.h>
36#include <qpe/qcopenvelope_qws.h> 36#include <qpe/qcopenvelope_qws.h>
37#include <qpe/alarmserver.h> 37#include <qpe/alarmserver.h>
38 38
39#include <stdlib.h> 39#include <stdlib.h>
40#include <stdio.h> 40#include <stdio.h>
41#include <signal.h> 41#include <signal.h>
42#include <unistd.h> 42#include <unistd.h>
43 43
44#if defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX) 44#if defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX)
45#include "../calibrate/calibrate.h" 45#include "../calibrate/calibrate.h"
46#endif 46#endif
47 47
48#ifdef QT_QWS_LOGIN
49#include "../login/qdmdialogimpl.h"
50#endif
51
52#ifdef QT_QWS_CASSIOPEIA 48#ifdef QT_QWS_CASSIOPEIA
53static void ignoreMessage( QtMsgType, const char * ) 49static void ignoreMessage( QtMsgType, const char * )
54{ 50{
55} 51}
56#include <sys/mount.h> 52#include <sys/mount.h>
57#include <sys/types.h> 53#include <sys/types.h>
58#include <sys/stat.h> 54#include <sys/stat.h>
59#include <sys/time.h> 55#include <sys/time.h>
60#include <fcntl.h> 56#include <fcntl.h>
61#include <qdatetime.h> 57#include <qdatetime.h>
62 58
63void initCassiopeia() 59void initCassiopeia()
64{ 60{
65 // MIPSEL-specific init - make sure /proc exists for shm 61 // MIPSEL-specific init - make sure /proc exists for shm
66/* 62/*
67 if ( mount("/dev/ram0", "/", "ext2", MS_REMOUNT | MS_MGC_VAL, 0 ) ) { 63 if ( mount("/dev/ram0", "/", "ext2", MS_REMOUNT | MS_MGC_VAL, 0 ) ) {
68 perror("Remounting - / read/write"); 64 perror("Remounting - / read/write");
69 } 65 }
70*/ 66*/
71 if ( mount("none", "/tmp", "ramfs", 0, 0 ) ) { 67 if ( mount("none", "/tmp", "ramfs", 0, 0 ) ) {
72 perror("mounting ramfs /tmp"); 68 perror("mounting ramfs /tmp");
73 } else { 69 } else {
74 fprintf( stderr, "mounted /tmp\n" ); 70 fprintf( stderr, "mounted /tmp\n" );
75 } 71 }
76 if ( mount("none", "/home", "ramfs", 0, 0 ) ) { 72 if ( mount("none", "/home", "ramfs", 0, 0 ) ) {
77 perror("mounting ramfs /home"); 73 perror("mounting ramfs /home");
78 } else { 74 } else {
79 fprintf( stderr, "mounted /home\n" ); 75 fprintf( stderr, "mounted /home\n" );
80 } 76 }
81 if ( mount("none","/proc","proc",0,0) ) { 77 if ( mount("none","/proc","proc",0,0) ) {
82 perror("Mounting - /proc"); 78 perror("Mounting - /proc");
83 } else { 79 } else {
84 fprintf( stderr, "mounted /proc\n" ); 80 fprintf( stderr, "mounted /proc\n" );
85 } 81 }
86 if ( mount("none","/mnt","shm",0,0) ) { 82 if ( mount("none","/mnt","shm",0,0) ) {
87 perror("Mounting - shm"); 83 perror("Mounting - shm");
88 } 84 }
89 setenv( "QTDIR", "/", 1 ); 85 setenv( "QTDIR", "/", 1 );
90 setenv( "OPIEDIR", "/", 1 ); 86 setenv( "OPIEDIR", "/", 1 );
91 setenv( "HOME", "/home", 1 ); 87 setenv( "HOME", "/home", 1 );
92 mkdir( "/home/Documents", 0755 ); 88 mkdir( "/home/Documents", 0755 );
93 89
94 // set a reasonable starting date 90 // set a reasonable starting date
95 QDateTime dt( QDate( 2001, 3, 15 ) ); 91 QDateTime dt( QDate( 2001, 3, 15 ) );
96 QDateTime now = QDateTime::currentDateTime(); 92 QDateTime now = QDateTime::currentDateTime();
97 int change = now.secsTo( dt ); 93 int change = now.secsTo( dt );
98 94
99 time_t t = ::time(0); 95 time_t t = ::time(0);
@@ -258,104 +254,96 @@ public:
258 return kill; 254 return kill;
259 } 255 }
260 256
261 virtual void timerEvent ( QTimerEvent * ) 257 virtual void timerEvent ( QTimerEvent * )
262 { 258 {
263 killTimer ( m_power_timer ); 259 killTimer ( m_power_timer );
264 m_power_timer = 0; 260 m_power_timer = 0;
265 QWSServer::sendKeyEvent ( -1, Key_F35, 0, true, false ); 261 QWSServer::sendKeyEvent ( -1, Key_F35, 0, true, false );
266 QWSServer::sendKeyEvent ( -1, Key_F35, 0, false, false ); 262 QWSServer::sendKeyEvent ( -1, Key_F35, 0, false, false );
267 } 263 }
268 264
269private: 265private:
270 OModel m_model; 266 OModel m_model;
271 int m_power_timer; 267 int m_power_timer;
272}; 268};
273 269
274 270
275 271
276int initApplication( int argc, char ** argv ) 272int initApplication( int argc, char ** argv )
277{ 273{
278#ifdef QT_QWS_CASSIOPEIA 274#ifdef QT_QWS_CASSIOPEIA
279 initCassiopeia(); 275 initCassiopeia();
280#endif 276#endif
281 277
282#ifdef QPE_OWNAPM 278#ifdef QPE_OWNAPM
283 initAPM(); 279 initAPM();
284#endif 280#endif
285 281
286#ifdef QT_DEMO_SINGLE_FLOPPY 282#ifdef QT_DEMO_SINGLE_FLOPPY
287 initFloppy(); 283 initFloppy();
288#endif 284#endif
289 285
290 initEnvironment(); 286 initEnvironment();
291 287
292#if !defined(QT_QWS_CASSIOPEIA) && !defined(QT_QWS_IPAQ) && !defined(QT_QWS_EBX) 288#if !defined(QT_QWS_CASSIOPEIA) && !defined(QT_QWS_IPAQ) && !defined(QT_QWS_EBX)
293 setenv( "QWS_SIZE", "240x320", 0 ); 289 setenv( "QWS_SIZE", "240x320", 0 );
294#endif 290#endif
295 291
296 //Don't flicker at startup: 292 //Don't flicker at startup:
297 QWSServer::setDesktopBackground( QImage() ); 293 QWSServer::setDesktopBackground( QImage() );
298 DesktopApplication a( argc, argv, QApplication::GuiServer ); 294 DesktopApplication a( argc, argv, QApplication::GuiServer );
299 295
300 (void) new ModelKeyFilter ( ); 296 (void) new ModelKeyFilter ( );
301 297
302 initBacklight(); 298 initBacklight();
303 299
304 AlarmServer::initialize(); 300 AlarmServer::initialize();
305 301
306#if defined(QT_QWS_LOGIN)
307 for( int i=0; i<a.argc(); i++ )
308 if( strcmp( a.argv()[i], "-login" ) == 0 ) {
309 QDMDialogImpl::login( );
310 return 0;
311 }
312#endif
313
314 Desktop *d = new Desktop(); 302 Desktop *d = new Desktop();
315 303
316 QObject::connect( &a, SIGNAL(datebook()), d, SLOT(raiseDatebook()) ); 304 QObject::connect( &a, SIGNAL(datebook()), d, SLOT(raiseDatebook()) );
317 QObject::connect( &a, SIGNAL(contacts()), d, SLOT(raiseContacts()) ); 305 QObject::connect( &a, SIGNAL(contacts()), d, SLOT(raiseContacts()) );
318 QObject::connect( &a, SIGNAL(launch()), d, SLOT(raiseLauncher()) ); 306 QObject::connect( &a, SIGNAL(launch()), d, SLOT(raiseLauncher()) );
319 QObject::connect( &a, SIGNAL(email()), d, SLOT(raiseEmail()) ); 307 QObject::connect( &a, SIGNAL(email()), d, SLOT(raiseEmail()) );
320 QObject::connect( &a, SIGNAL(power()), d, SLOT(togglePower()) ); 308 QObject::connect( &a, SIGNAL(power()), d, SLOT(togglePower()) );
321 QObject::connect( &a, SIGNAL(backlight()), d, SLOT(toggleLight()) ); 309 QObject::connect( &a, SIGNAL(backlight()), d, SLOT(toggleLight()) );
322 QObject::connect( &a, SIGNAL(symbol()), d, SLOT(toggleSymbolInput()) ); 310 QObject::connect( &a, SIGNAL(symbol()), d, SLOT(toggleSymbolInput()) );
323 QObject::connect( &a, SIGNAL(numLockStateToggle()), d, SLOT(toggleNumLockState()) ); 311 QObject::connect( &a, SIGNAL(numLockStateToggle()), d, SLOT(toggleNumLockState()) );
324 QObject::connect( &a, SIGNAL(capsLockStateToggle()), d, SLOT(toggleCapsLockState()) ); 312 QObject::connect( &a, SIGNAL(capsLockStateToggle()), d, SLOT(toggleCapsLockState()) );
325 QObject::connect( &a, SIGNAL(prepareForRestart()), d, SLOT(terminateServers()) ); 313 QObject::connect( &a, SIGNAL(prepareForRestart()), d, SLOT(terminateServers()) );
326 314
327 (void)new SysFileMonitor(d); 315 (void)new SysFileMonitor(d);
328 Network::createServer(d); 316 Network::createServer(d);
329 317
330#if defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX) 318#if defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX)
331 if ( !QFile::exists( "/etc/pointercal" ) ) { 319 if ( !QFile::exists( "/etc/pointercal" ) ) {
332 // Make sure calibration widget starts on top. 320 // Make sure calibration widget starts on top.
333 Calibrate *cal = new Calibrate; 321 Calibrate *cal = new Calibrate;
334 cal->exec(); 322 cal->exec();
335 delete cal; 323 delete cal;
336 } 324 }
337#endif 325#endif
338 326
339 d->show(); 327 d->show();
340 328
341 int rv = a.exec(); 329 int rv = a.exec();
342 330
343 delete d; 331 delete d;
344 332
345 return rv; 333 return rv;
346} 334}
347 335
348int main( int argc, char ** argv ) 336int main( int argc, char ** argv )
349{ 337{
350#ifndef SINGLE_APP 338#ifndef SINGLE_APP
351 signal( SIGCHLD, SIG_IGN ); 339 signal( SIGCHLD, SIG_IGN );
352#endif 340#endif
353 341
354 int retVal = initApplication( argc, argv ); 342 int retVal = initApplication( argc, argv );
355 343
356#ifndef SINGLE_APP 344#ifndef SINGLE_APP
357 // Kill them. Kill them all. 345 // Kill them. Kill them all.
358 setpgid( getpid(), getppid() ); 346 setpgid( getpid(), getppid() );
359 killpg( getpid(), SIGTERM ); 347 killpg( getpid(), SIGTERM );
360 sleep( 1 ); 348 sleep( 1 );
361 killpg( getpid(), SIGKILL ); 349 killpg( getpid(), SIGKILL );