diff options
Diffstat (limited to 'src/vsession.cpp')
-rw-r--r-- | src/vsession.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/vsession.cpp b/src/vsession.cpp index 41098b7..78185e4 100644 --- a/src/vsession.cpp +++ b/src/vsession.cpp @@ -19,6 +19,7 @@ #include "vsession.h" #include "sessionsiconholder.h" #include "userldapdata.h" +#include "virtualizer.h" static QProcess _process; @@ -216,8 +217,14 @@ bool VSession::isLocked() const { return getAttribute(QStringLiteral("locked")).compare(QStringLiteral("true")) == 0; } -bool VSession::isValid() const { - return !getAttribute(QStringLiteral("image_name")).isEmpty(); +QString VSession::checkCanRunInternal() const { + if (getAttribute(QStringLiteral("image_name")).isEmpty()) + return QObject::trUtf8("XML error: image_name is empty"); + const Virtualizer* virt = Virtualizer::get(virtualizer()); + if (!virt->isAvailable) + return QObject::trUtf8("Virtualizer '%1' is not enabled.").arg(virt->id); + // Seems OK + return QString(); } int VSession::priority() const { @@ -359,7 +366,7 @@ bool VSession::needsVtx() const { } QVariant VSession::foregroundRole() const { - if (!g_noVtx || !needsVtx()) + if ((!g_noVtx || !needsVtx()) && canRun()) return Session::foregroundRole(); return QColor(180, 180, 180); } |