summaryrefslogtreecommitdiff
path: root/core/launcher/applauncher.cpp
Unidiff
Diffstat (limited to 'core/launcher/applauncher.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/applauncher.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/core/launcher/applauncher.cpp b/core/launcher/applauncher.cpp
index 7d3c032..08a3cb4 100644
--- a/core/launcher/applauncher.cpp
+++ b/core/launcher/applauncher.cpp
@@ -41,102 +41,102 @@
41#include <process.h> 41#include <process.h>
42#include <windows.h> 42#include <windows.h>
43#include <winbase.h> 43#include <winbase.h>
44#endif 44#endif
45 45
46#include <signal.h> 46#include <signal.h>
47#include <sys/types.h> 47#include <sys/types.h>
48#include <stdlib.h> 48#include <stdlib.h>
49 49
50#include <qtimer.h> 50#include <qtimer.h>
51#include <qwindowsystem_qws.h> 51#include <qwindowsystem_qws.h>
52#include <qmessagebox.h> 52#include <qmessagebox.h>
53#include <qfileinfo.h> 53#include <qfileinfo.h>
54 54
55#include <qtopia/qcopenvelope_qws.h> 55#include <qtopia/qcopenvelope_qws.h>
56#include <qtopia/qpeapplication.h> 56#include <qtopia/qpeapplication.h>
57 57
58#include "applauncher.h" 58#include "applauncher.h"
59#include "documentlist.h" 59#include "documentlist.h"
60 60
61const int AppLauncher::RAISE_TIMEOUT_MS = 5000; 61const int AppLauncher::RAISE_TIMEOUT_MS = 5000;
62 62
63//--------------------------------------------------------------------------- 63//---------------------------------------------------------------------------
64 64
65static AppLauncher* appLauncherPtr; 65static AppLauncher* appLauncherPtr;
66 66
67const int appStopEventID = 1290; 67const int appStopEventID = 1290;
68 68
69class AppStoppedEvent : public QCustomEvent 69class AppStoppedEvent : public QCustomEvent
70{ 70{
71public: 71public:
72 AppStoppedEvent(int pid, int status) 72 AppStoppedEvent(int pid, int status)
73 : QCustomEvent( appStopEventID ), mPid(pid), mStatus(status) { } 73 : QCustomEvent( appStopEventID ), mPid(pid), mStatus(status) { }
74 74
75 int pid() { return mPid; } 75 int pid() { return mPid; }
76 int status() { return mStatus; } 76 int status() { return mStatus; }
77 77
78private: 78private:
79 int mPid, mStatus; 79 int mPid, mStatus;
80}; 80};
81 81
82AppLauncher::AppLauncher(QObject *parent, const char *name) 82AppLauncher::AppLauncher(QObject *parent, const char *name)
83 : QObject(parent, name), qlPid(0), qlReady(FALSE), 83 : QObject(parent, name), qlPid(0), qlReady(FALSE),
84 appKillerBox(0) 84 appKillerBox(0)
85{ 85{
86 connect(qwsServer, SIGNAL(newChannel(const QString&)), this, SLOT(newQcopChannel(const QString&))); 86 connect(qwsServer, SIGNAL(newChannel(const QString&)), this, SLOT(newQcopChannel(const QString&)));
87 connect(qwsServer, SIGNAL(removedChannel(const QString&)), this, SLOT(removedQcopChannel(const QString&))); 87 connect(qwsServer, SIGNAL(removedChannel(const QString&)), this, SLOT(removedQcopChannel(const QString&)));
88 QCopChannel* channel = new QCopChannel( "QPE/System", this ); 88 QCopChannel* channel = new QCopChannel( "QPE/System", this );
89 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), 89 connect( channel, SIGNAL(received(const QCString&,const QByteArray&)),
90 this, SLOT(received(const QCString&, const QByteArray&)) ); 90 this, SLOT(received(const QCString&,const QByteArray&)) );
91 91
92 channel = new QCopChannel( "QPE/Server", this ); 92 channel = new QCopChannel( "QPE/Server", this );
93 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), 93 connect( channel, SIGNAL(received(const QCString&,const QByteArray&)),
94 this, SLOT(received(const QCString&, const QByteArray&)) ); 94 this, SLOT(received(const QCString&,const QByteArray&)) );
95 95
96#ifndef Q_OS_WIN32 96#ifndef Q_OS_WIN32
97 signal(SIGCHLD, signalHandler); 97 signal(SIGCHLD, signalHandler);
98#else 98#else
99 runningAppsProc.setAutoDelete( TRUE ); 99 runningAppsProc.setAutoDelete( TRUE );
100#endif 100#endif
101 QString tmp = qApp->argv()[0]; 101 QString tmp = qApp->argv()[0];
102 int pos = tmp.findRev('/'); 102 int pos = tmp.findRev('/');
103 if ( pos > -1 ) 103 if ( pos > -1 )
104 tmp = tmp.mid(++pos); 104 tmp = tmp.mid(++pos);
105 runningApps[::getpid()] = tmp; 105 runningApps[::getpid()] = tmp;
106 106
107 appLauncherPtr = this; 107 appLauncherPtr = this;
108 108
109 QTimer::singleShot( 1000, this, SLOT(createQuickLauncher()) ); 109 QTimer::singleShot( 1000, this, SLOT(createQuickLauncher()) );
110} 110}
111 111
112AppLauncher::~AppLauncher() 112AppLauncher::~AppLauncher()
113{ 113{
114 appLauncherPtr = 0; 114 appLauncherPtr = 0;
115#ifndef Q_OS_WIN32 115#ifndef Q_OS_WIN32
116 signal(SIGCHLD, SIG_DFL); 116 signal(SIGCHLD, SIG_DFL);
117#endif 117#endif
118 if ( qlPid ) { 118 if ( qlPid ) {
119 int status; 119 int status;
120 ::kill( qlPid, SIGTERM ); 120 ::kill( qlPid, SIGTERM );
121 waitpid( qlPid, &status, 0 ); 121 waitpid( qlPid, &status, 0 );
122 } 122 }
123} 123}
124 124
125/* We use the QCopChannel of the app as an indicator of when it has been launched 125/* We use the QCopChannel of the app as an indicator of when it has been launched
126 so that we can disable the busy indicators */ 126 so that we can disable the busy indicators */
127void AppLauncher::newQcopChannel(const QString& channelName) 127void AppLauncher::newQcopChannel(const QString& channelName)
128{ 128{
129// qDebug("channel %s added", channelName.data() ); 129// qDebug("channel %s added", channelName.data() );
130 QString prefix("QPE/Application/"); 130 QString prefix("QPE/Application/");
131 if (channelName.startsWith(prefix)) { 131 if (channelName.startsWith(prefix)) {
132 { 132 {
133 QCopEnvelope e("QPE/System", "newChannel(QString)"); 133 QCopEnvelope e("QPE/System", "newChannel(QString)");
134 e << channelName; 134 e << channelName;
135 } 135 }
136 QString appName = channelName.mid(prefix.length()); 136 QString appName = channelName.mid(prefix.length());
137 if ( appName != "quicklauncher" ) { 137 if ( appName != "quicklauncher" ) {
138 emit connected( appName ); 138 emit connected( appName );
139 QCopEnvelope e("QPE/System", "notBusy(QString)"); 139 QCopEnvelope e("QPE/System", "notBusy(QString)");
140 e << appName; 140 e << appName;
141 } 141 }
142 } else if (channelName.startsWith("QPE/QuickLauncher-")) { 142 } else if (channelName.startsWith("QPE/QuickLauncher-")) {