summaryrefslogtreecommitdiff
path: root/core
Unidiff
Diffstat (limited to 'core') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/server.cpp145
-rw-r--r--core/launcher/server.h13
2 files changed, 117 insertions, 41 deletions
diff --git a/core/launcher/server.cpp b/core/launcher/server.cpp
index 08baa8e..450d8e5 100644
--- a/core/launcher/server.cpp
+++ b/core/launcher/server.cpp
@@ -32,34 +32,29 @@
32#include "launcher.h" 32#include "launcher.h"
33#include "shutdownimpl.h" 33#include "shutdownimpl.h"
34#include "applauncher.h" 34#include "applauncher.h"
35#if 0
35#include "suspendmonitor.h" 36#include "suspendmonitor.h"
37#endif
36#include "documentlist.h" 38#include "documentlist.h"
37 39
38#include <qtopia/applnk.h> 40#include <qtopia/applnk.h>
39#include <qtopia/categories.h> 41#include <qtopia/private/categories.h>
40#include <qtopia/mimetype.h> 42#include <qtopia/mimetype.h>
41#include <qtopia/config.h> 43#include <qtopia/config.h>
42#include <qtopia/services.h>
43#include <qtopia/devicebuttonmanager.h>
44#include <qtopia/pluginloader.h>
45#include <qtopia/resource.h> 44#include <qtopia/resource.h>
46#include <qtopia/version.h> 45#include <qtopia/version.h>
47#include <qtopia/storage.h> 46#include <qtopia/storage.h>
48 47
49#ifdef Q_WS_QWS
50#include <qtopia/qcopenvelope_qws.h> 48#include <qtopia/qcopenvelope_qws.h>
51#include <qwindowsystem_qws.h> 49#include <qwindowsystem_qws.h>
52#include <qgfx_qws.h> 50#include <qgfx_qws.h>
53#endif
54#include <qtopia/global.h> 51#include <qtopia/global.h>
55#include <qtopia/custom.h> 52#include <qtopia/custom.h>
56 53
57#ifdef Q_OS_WIN32 54#include <opie/odevicebutton.h>
58#include <io.h> 55#include <opie/odevice.h>
59#include <process.h> 56
60#else
61#include <unistd.h> 57#include <unistd.h>
62#endif
63#include <qmainwindow.h> 58#include <qmainwindow.h>
64#include <qmessagebox.h> 59#include <qmessagebox.h>
65#include <qtimer.h> 60#include <qtimer.h>
@@ -69,6 +64,8 @@
69 64
70extern QRect qt_maxWindowRect; 65extern QRect qt_maxWindowRect;
71 66
67using namespace Opie;
68
72static QWidget *calibrate(bool) 69static QWidget *calibrate(bool)
73{ 70{
74#ifdef Q_WS_QWS 71#ifdef Q_WS_QWS
@@ -109,11 +106,12 @@ static Global::Command builtins[] = {
109#undef APP 106#undef APP
110#endif 107#endif
111 108
109 /* FIXME defines need to be defined*/
112#if defined(QPE_NEED_CALIBRATION) 110#if defined(QPE_NEED_CALIBRATION)
113 { "calibrate", calibrate,1, 0 }, // No tr 111 { "calibrate", calibrate, 1, 0 }, // No tr
114#endif 112#endif
115#if !defined(QT_QWS_CASSIOPEIA) 113#if !defined(QT_QWS_CASSIOPEIA)
116 { "shutdown", Global::shutdown, 1, 0 }, // No tr 114 { "shutdown", Global::shutdown, 1, 0 }, // No tr
117 // { "run", run, 1, 0 }, // No tr 115 // { "run", run, 1, 0 }, // No tr
118#endif 116#endif
119 117
@@ -136,11 +134,14 @@ Server::Server() :
136 Global::setBuiltinCommands(builtins); 134 Global::setBuiltinCommands(builtins);
137 135
138 tid_xfer = 0; 136 tid_xfer = 0;
139 tid_today = startTimer(3600*2*1000); 137 /* ### FIXME ### */
138/* tid_today = startTimer(3600*2*1000);*/
140 last_today_show = QDate::currentDate(); 139 last_today_show = QDate::currentDate();
141 140
142 tsmMonitor = new TempScreenSaverMonitor(); 141#if 0
142 tsmMonitor = new TempScreenSaverMode();
143 connect( tsmMonitor, SIGNAL(forceSuspend()), qApp, SIGNAL(power()) ); 143 connect( tsmMonitor, SIGNAL(forceSuspend()), qApp, SIGNAL(power()) );
144#endif
144 145
145 serverGui = new Launcher; 146 serverGui = new Launcher;
146 serverGui->createGUI(); 147 serverGui->createGUI();
@@ -159,7 +160,8 @@ Server::Server() :
159 (void) new IrServer( this ); 160 (void) new IrServer( this );
160 161
161 packageHandler = new PackageHandler( this ); 162 packageHandler = new PackageHandler( this );
162 connect(qApp, SIGNAL(activate(const DeviceButton*,bool)),this,SLOT(activate(const DeviceButton*,bool))); 163 connect(qApp, SIGNAL(activate(const Opie::ODeviceButton*,bool)),
164 this,SLOT(activate(const Opie::ODeviceButton*,bool)));
163 165
164 setGeometry( -10, -10, 9, 9 ); 166 setGeometry( -10, -10, 9, 9 );
165 167
@@ -190,7 +192,9 @@ Server::~Server()
190 delete qcopBridge; 192 delete qcopBridge;
191 delete transferServer; 193 delete transferServer;
192 delete serverGui; 194 delete serverGui;
195#if 0
193 delete tsmMonitor; 196 delete tsmMonitor;
197#endif
194} 198}
195 199
196static bool hasVisibleWindow(const QString& clientname, bool partial) 200static bool hasVisibleWindow(const QString& clientname, bool partial)
@@ -218,17 +222,23 @@ static bool hasVisibleWindow(const QString& clientname, bool partial)
218 return FALSE; 222 return FALSE;
219} 223}
220 224
221void Server::activate(const DeviceButton* button, bool held) 225void Server::activate(const Opie::ODeviceButton* button, bool held)
222{ 226{
223 Global::terminateBuiltin("calibrate"); // No tr 227 Global::terminateBuiltin("calibrate"); // No tr
224 ServiceRequest sr; 228 Opie::OQCopMessage om;
225 if ( held ) { 229 if ( held ) {
226 sr = button->heldAction(); 230 om = button->heldAction();
227 } else { 231 } else {
228 sr = button->pressedAction(); 232 om = button->pressedAction();
229 } 233 }
234
235 if ( om.channel() != "ignore" )
236 om.send();
237
230 // A button with no action defined, will return a null ServiceRequest. Don't attempt 238 // A button with no action defined, will return a null ServiceRequest. Don't attempt
231 // to send/do anything with this as it will crash 239 // to send/do anything with this as it will crash
240 /* ### FIXME */
241#if 0
232 if ( !sr.isNull() ) { 242 if ( !sr.isNull() ) {
233 QString app = sr.app(); 243 QString app = sr.app();
234 bool vis = hasVisibleWindow(app, app != "qpe"); 244 bool vis = hasVisibleWindow(app, app != "qpe");
@@ -241,6 +251,7 @@ void Server::activate(const DeviceButton* button, bool held)
241 251
242 sr.send(); 252 sr.send();
243 } 253 }
254#endif
244} 255}
245 256
246 257
@@ -307,11 +318,16 @@ void Server::systemMsg(const QCString &msg, const QByteArray &data)
307 transferServer->authorizeConnections(); 318 transferServer->authorizeConnections();
308 if ( qcopBridge ) 319 if ( qcopBridge )
309 qcopBridge->authorizeConnections(); 320 qcopBridge->authorizeConnections();
310 } else if ( msg == "setTempScreenSaverMode(int,int)" ) { 321 }
322 /* ### FIXME support TempScreenSaverMode */
323#if 0
324 else if ( msg == "setTempScreenSaverMode(int,int)" ) {
311 int mode, pid; 325 int mode, pid;
312 stream >> mode >> pid; 326 stream >> mode >> pid;
313 tsmMonitor->setTempMode(mode, pid); 327 tsmMonitor->setTempMode(mode, pid);
314 } else if ( msg == "linkChanged(QString)" ) { 328 }
329#endif
330 else if ( msg == "linkChanged(QString)" ) {
315 QString link; 331 QString link;
316 stream >> link; 332 stream >> link;
317 qDebug( "desktop.cpp systemMsg -> linkchanged( %s )", link.latin1() ); 333 qDebug( "desktop.cpp systemMsg -> linkchanged( %s )", link.latin1() );
@@ -360,10 +376,17 @@ void Server::systemMsg(const QCString &msg, const QByteArray &data)
360 e << locked; 376 e << locked;
361#endif 377#endif
362 378
363 } else if ( msg == "sendVersionInfo()" ) { 379 }
380 /*
381 * QtopiaDesktop relies on the major number
382 * to start with 1. We're at 0.9
383 * so wee need to fake at least 1.4 to be able
384 * to sync with QtopiaDesktop1.6
385 */
386 else if ( msg == "sendVersionInfo()" ) {
364 QCopEnvelope e( "QPE/Desktop", "versionInfo(QString,QString)" ); 387 QCopEnvelope e( "QPE/Desktop", "versionInfo(QString,QString)" );
365 QString v = QPE_VERSION; 388 /* ### FIXME Architecture ### */
366 e << Global::version() << Global::architecture(); 389 e << QString::fromLatin1("1.7") << "Uncustomized Device";
367 } else if ( msg == "sendCardInfo()" ) { 390 } else if ( msg == "sendCardInfo()" ) {
368#ifndef QT_NO_COP 391#ifndef QT_NO_COP
369 QCopEnvelope e( "QPE/Desktop", "cardInfo(QString)" ); 392 QCopEnvelope e( "QPE/Desktop", "cardInfo(QString)" );
@@ -455,6 +478,49 @@ void Server::systemMsg(const QCString &msg, const QByteArray &data)
455 Config cfg( "qpe" ); 478 Config cfg( "qpe" );
456 cfg.setGroup("Keyboard"); 479 cfg.setGroup("Keyboard");
457 cfg.writeEntry( "Layout", kb ); 480 cfg.writeEntry( "Layout", kb );
481 } else if ( msg == "autoStart(QString)" ) {
482 QString appName;
483 stream >> appName;
484 Config cfg( "autostart" );
485 cfg.setGroup( "AutoStart" );
486 if ( appName.compare("clear") == 0){
487 cfg.writeEntry("Apps", "");
488 }
489 } else if ( msg == "autoStart(QString,QString)" ) {
490 QString modifier, appName;
491 stream >> modifier >> appName;
492 Config cfg( "autostart" );
493 cfg.setGroup( "AutoStart" );
494 if ( modifier.compare("add") == 0 ){
495 // only add if appname is entered
496 if (!appName.isEmpty()) {
497 cfg.writeEntry("Apps", appName);
498 }
499 } else if (modifier.compare("remove") == 0 ) {
500 // need to change for multiple entries
501 // actually remove is right now simular to clear, but in future there
502 // should be multiple apps in autostart possible.
503 QString checkName;
504 checkName = cfg.readEntry("Apps", "");
505 if (checkName == appName) {
506 cfg.writeEntry("Apps", "");
507 }
508 }
509 // case the autostart feature should be delayed
510 } else if ( msg == "autoStart(QString,QString,QString)") {
511 QString modifier, appName, delay;
512 stream >> modifier >> appName >> delay;
513 Config cfg( "autostart" );
514
515 cfg.setGroup( "AutoStart" );
516 if ( modifier.compare("add") == 0 ){
517 // only add it appname is entered
518 if (!appName.isEmpty()) {
519 cfg.writeEntry("Apps", appName);
520 cfg.writeEntry("Delay", delay);
521 }
522 } else {
523 }
458 } 524 }
459#endif 525#endif
460} 526}
@@ -466,15 +532,20 @@ void Server::receiveTaskBar(const QCString &msg, const QByteArray &data)
466 if ( msg == "reloadApps()" ) { 532 if ( msg == "reloadApps()" ) {
467 docList->reloadAppLnks(); 533 docList->reloadAppLnks();
468 } else if ( msg == "soundAlarm()" ) { 534 } else if ( msg == "soundAlarm()" ) {
469 soundAlarm(); 535 ServerApplication::soundAlarm();
470 } 536 }
471#ifdef CUSTOM_LEDS
472 else if ( msg == "setLed(int,bool)" ) { 537 else if ( msg == "setLed(int,bool)" ) {
473 int led, status; 538 int led, status;
474 stream >> led >> status; 539 stream >> led >> status;
475 CUSTOM_LEDS( led, status ); 540
541 QValueList <OLed> ll = ODevice::inst ( )-> ledList ( );
542 if ( ll. count ( )){
543 OLed l = ll. contains ( Led_Mail ) ? Led_Mail : ll [0];
544 bool canblink = ODevice::inst ( )-> ledStateList ( l ). contains ( Led_BlinkSlow );
545
546 ODevice::inst ( )-> setLedState ( l, status ? ( canblink ? Led_BlinkSlow : Led_On ) : Led_Off );
547 }
476 } 548 }
477#endif
478} 549}
479 550
480void Server::cancelSync() 551void Server::cancelSync()
@@ -570,7 +641,10 @@ void Server::timerEvent( QTimerEvent *e )
570 killTimer( tid_xfer ); 641 killTimer( tid_xfer );
571 tid_xfer = 0; 642 tid_xfer = 0;
572 startTransferServer(); 643 startTransferServer();
573 } else if ( e->timerId() == tid_today ) { 644 }
645 /* ### FIXME today startin */
646#if 0
647 else if ( e->timerId() == tid_today ) {
574 QDate today = QDate::currentDate(); 648 QDate today = QDate::currentDate();
575 if ( today != last_today_show ) { 649 if ( today != last_today_show ) {
576 last_today_show = today; 650 last_today_show = today;
@@ -584,6 +658,7 @@ void Server::timerEvent( QTimerEvent *e )
584 } 658 }
585 } 659 }
586 } 660 }
661#endif
587} 662}
588 663
589void Server::terminateServers() 664void Server::terminateServers()
@@ -603,6 +678,7 @@ void Server::syncConnectionClosed( const QHostAddress & )
603 678
604void Server::pokeTimeMonitors() 679void Server::pokeTimeMonitors()
605{ 680{
681#if 0
606 // inform all TimeMonitors 682 // inform all TimeMonitors
607 QStrList tms = Service::channels("TimeMonitor"); 683 QStrList tms = Service::channels("TimeMonitor");
608 for (const char* ch = tms.first(); ch; ch=tms.next()) { 684 for (const char* ch = tms.first(); ch; ch=tms.next()) {
@@ -610,6 +686,7 @@ void Server::pokeTimeMonitors()
610 QCopEnvelope e(ch, "timeChange(QString)"); 686 QCopEnvelope e(ch, "timeChange(QString)");
611 e << t; 687 e << t;
612 } 688 }
689#endif
613} 690}
614 691
615void Server::applicationLaunched(int, const QString &app) 692void Server::applicationLaunched(int, const QString &app)
@@ -620,7 +697,9 @@ void Server::applicationLaunched(int, const QString &app)
620void Server::applicationTerminated(int pid, const QString &app) 697void Server::applicationTerminated(int pid, const QString &app)
621{ 698{
622 serverGui->applicationStateChanged( app, ServerInterface::Terminated ); 699 serverGui->applicationStateChanged( app, ServerInterface::Terminated );
700#if 0
623 tsmMonitor->applicationTerminated( pid ); 701 tsmMonitor->applicationTerminated( pid );
702#endif
624} 703}
625 704
626void Server::applicationConnected(const QString &app) 705void Server::applicationConnected(const QString &app)
@@ -636,12 +715,6 @@ void Server::storageChanged()
636} 715}
637 716
638 717
639void Server::soundAlarm()
640{
641#ifdef CUSTOM_SOUND_ALARM
642 CUSTOM_SOUND_ALARM;
643#endif
644}
645 718
646void Server::preloadApps() 719void Server::preloadApps()
647{ 720{
diff --git a/core/launcher/server.h b/core/launcher/server.h
index 21b03af..91bf883 100644
--- a/core/launcher/server.h
+++ b/core/launcher/server.h
@@ -29,7 +29,6 @@ class QCopBridge;
29class QHostAddress; 29class QHostAddress;
30class TransferServer; 30class TransferServer;
31class PackageHandler; 31class PackageHandler;
32class DeviceButton;
33class ServiceRequest; 32class ServiceRequest;
34class TempScreenSaverMonitor; 33class TempScreenSaverMonitor;
35class AppLauncher; 34class AppLauncher;
@@ -38,6 +37,9 @@ class StorageInfo;
38class SyncDialog; 37class SyncDialog;
39class DocumentList; 38class DocumentList;
40class ServerInterface; 39class ServerInterface;
40namespace Opie {
41 class ODeviceButton;
42}
41 43
42class Server : public QWidget { 44class Server : public QWidget {
43 Q_OBJECT 45 Q_OBJECT
@@ -49,7 +51,6 @@ public:
49 51
50 void show(); 52 void show();
51 53
52 static void soundAlarm();
53 static bool setKeyboardLayout( const QString &kb ); 54 static bool setKeyboardLayout( const QString &kb );
54 55
55public slots: 56public slots:
@@ -59,7 +60,7 @@ public slots:
59 void pokeTimeMonitors(); 60 void pokeTimeMonitors();
60 61
61private slots: 62private slots:
62 void activate(const DeviceButton*,bool); 63 void activate(const Opie::ODeviceButton*,bool);
63 void syncConnectionClosed( const QHostAddress & ); 64 void syncConnectionClosed( const QHostAddress & );
64 void applicationLaunched(int pid, const QString &app); 65 void applicationLaunched(int pid, const QString &app);
65 void applicationTerminated(int pid, const QString &app); 66 void applicationTerminated(int pid, const QString &app);
@@ -72,6 +73,7 @@ protected:
72 void timerEvent( QTimerEvent *e ); 73 void timerEvent( QTimerEvent *e );
73 74
74private: 75private:
76 void layout();
75 void startTransferServer(); 77 void startTransferServer();
76 void preloadApps(); 78 void preloadApps();
77 79
@@ -80,8 +82,9 @@ private:
80 PackageHandler *packageHandler; 82 PackageHandler *packageHandler;
81 QDate last_today_show; 83 QDate last_today_show;
82 int tid_xfer; 84 int tid_xfer;
83 int tid_today; 85 /* ### FIXME two below### */
84 TempScreenSaverMonitor *tsmMonitor; 86// int tid_today;
87// TempScreenSaverMonitor *tsmMonitor;
85 StorageInfo *storage; 88 StorageInfo *storage;
86 SyncDialog *syncDialog; 89 SyncDialog *syncDialog;
87 AppLauncher *appLauncher; 90 AppLauncher *appLauncher;