author | zecke <zecke> | 2003-08-28 14:32:22 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-08-28 14:32:22 (UTC) |
commit | f3c6caca7e96488ad9e1873e9c853f11b17a944e (patch) (side-by-side diff) | |
tree | 4a83c306c573d5185f20c0f96f89aeffa24e2e1d | |
parent | a069f32d9339fad02af60ac8aa991c3dee011039 (diff) | |
download | opie-f3c6caca7e96488ad9e1873e9c853f11b17a944e.zip opie-f3c6caca7e96488ad9e1873e9c853f11b17a944e.tar.gz opie-f3c6caca7e96488ad9e1873e9c853f11b17a944e.tar.bz2 |
Make conpile with Opie
If QuickApps exec fails don't try to start it anytime soon
If application fails to start and /tmp/qcop-msg- is present don't try to restart
-rw-r--r-- | core/launcher/applauncher.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/core/launcher/applauncher.cpp b/core/launcher/applauncher.cpp index 50c1b71..d6f93da 100644 --- a/core/launcher/applauncher.cpp +++ b/core/launcher/applauncher.cpp @@ -24,13 +24,13 @@ #ifndef QTOPIA_INTERNAL_FILEOPERATIONS #define QTOPIA_INTERNAL_FILEOPERATIONS #endif #ifndef QTOPIA_PROGRAM_MONITOR #define QTOPIA_PROGRAM_MONITOR #endif -#include <qtopia/qpeglobal.h> +#include <qtopia/global.h> #ifndef Q_OS_WIN32 #include <sys/stat.h> #include <sys/wait.h> #include <sys/file.h> #include <unistd.h> @@ -58,12 +58,13 @@ #include <qtopia/qpeapplication.h> #include <qtopia/config.h> #include <qtopia/global.h> #include "applauncher.h" #include "documentlist.h" +#include "launcherglobal.h" const int AppLauncher::RAISE_TIMEOUT_MS = 5000; //--------------------------------------------------------------------------- static AppLauncher* appLauncherPtr; @@ -400,16 +401,17 @@ void AppLauncher::sigStopped(int sigPid, int sigStatus) QString str = tr("<qt><b>%1</b> was terminated due to signal code %2</qt>").arg( app->name() ).arg( sig ); QMessageBox::information(0, tr("Application terminated"), str ); } else { if ( exitStatus == 255 ) { //could not find app (because global returns -1) QMessageBox::information(0, tr("Application not found"), tr("<qt>Could not locate application <b>%1</b></qt>").arg( app->exec() ) ); } else { - QFileInfo fi(Global::tempDir() + "qcop-msg-" + appName); + QFileInfo fi(Opie::Global::tempDir() + "qcop-msg-" + appName); if ( fi.exists() && fi.size() ) { emit terminated(sigPid, appName); - execute( appName, QString::null ); + qWarning("Re executing obmitted for %s", appName.latin1() ); +// execute( appName, QString::null ); return; } } } #endif @@ -441,14 +443,14 @@ bool AppLauncher::isRunning(const QString &app) return FALSE; } bool AppLauncher::executeBuiltin(const QString &c, const QString &document) { - Global::Command* builtin = Global::builtinCommands(); - QGuardedPtr<QWidget> *running = Global::builtinRunning(); + Global::Command* builtin = Opie::Global::builtinCommands(); + QGuardedPtr<QWidget> *running = Opie::Global::builtinRunning(); // Attempt to execute the app using a builtin class for the app if (builtin) { for (int i = 0; builtin[i].file; i++) { if ( builtin[i].file == c ) { if ( running[i] ) { @@ -480,24 +482,25 @@ bool AppLauncher::executeBuiltin(const QString &c, const QString &document) return FALSE; } bool AppLauncher::execute(const QString &c, const QString &docParam, bool noRaise) { + qWarning("AppLauncher::execute"); // Convert the command line in to a list of arguments QStringList list = QStringList::split(QRegExp(" *"),c); if ( !docParam.isEmpty() ) list.append( docParam ); QString appName = list[0]; if ( isRunning(appName) ) { QCString channel = "QPE/Application/"; channel += appName.latin1(); // Need to lock it to avoid race conditions with QPEApplication::processQCopFile - QFile f(Global::tempDir() + "qcop-msg-" + appName); + QFile f(Opie::Global::tempDir() + "qcop-msg-" + appName); if ( !noRaise && f.open(IO_WriteOnly | IO_Append) ) { #ifndef Q_OS_WIN32 flock(f.handle(), LOCK_EX); #endif QDataStream ds(&f); @@ -525,13 +528,13 @@ bool AppLauncher::execute(const QString &c, const QString &docParam, bool noRais QCopChannel::send(channel,"QPEProcessQCop()"); return TRUE; } #ifdef QT_NO_QWS_MULTIPROCESS - QMessageBox::warning( 0, tr("Error"), tr("Could not find the application %1").arg(c), + QMessageBox::warning( 0, tr("Error"), tr("<qt>Could not find the application %1</qt>").arg(c), tr("OK"), 0, 0, 0, 1 ); #else QStrList slist; unsigned j; for ( j = 0; j < list.count(); j++ ) @@ -632,12 +635,16 @@ int AppLauncher::pidForName( const QString &appName ) return pid; } void AppLauncher::createQuickLauncher() { + static bool disabled = FALSE; + if (disabled) + return; + qlReady = FALSE; qlPid = ::vfork(); if ( !qlPid ) { char **args = new char *[2]; args[0] = "quicklauncher"; args[1] = 0; @@ -645,12 +652,14 @@ void AppLauncher::createQuickLauncher() ::close( fd ); ::setpgid( ::getpid(), ::getppid() ); // Try bindir first, so that foo/bar works too setenv( "LD_BIND_NOW", "1", 1 ); ::execv( QPEApplication::qpeDir()+"bin/quicklauncher", args ); ::execvp( "quicklauncher", args ); + delete []args; + disabled = TRUE; _exit( -1 ); } else if ( qlPid == -1 ) { qlPid = 0; } else { if ( getuid() == 0 ) setpriority( PRIO_PROCESS, qlPid, 19 ); |