summaryrefslogtreecommitdiffstats
path: root/src/xsession.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/xsession.cpp')
-rw-r--r--src/xsession.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/xsession.cpp b/src/xsession.cpp
index 8e26b86..d2e8cfe 100644
--- a/src/xsession.cpp
+++ b/src/xsession.cpp
@@ -3,6 +3,7 @@
#include <QLocale>
#include <QApplication>
#include <QProcess>
+#include <QStandardPaths>
#include "xsession.h"
#include "globals.h"
@@ -111,9 +112,17 @@ bool XSession::isActive() const {
return true;
}
-bool XSession::isValid() const {
- QFileInfo fi(this->exec_);
- return !fi.isAbsolute() || (fi.isFile() && fi.isExecutable());
+QString XSession::checkCanRunInternal() const {
+ QString exe = this->exec_.left(this->exec_.indexOf(' ')); // -1 means entire string
+ QFileInfo fi(exe);
+ if (!fi.isAbsolute()) {
+ if (!QStandardPaths::findExecutable(exe).isEmpty())
+ return QString();
+ }
+ if (fi.isFile() && fi.isExecutable())
+ return QString();
+ // Not found
+ return QObject::trUtf8("Binary %1 not found.").arg(exe);
}
bool XSession::isLocked() const {