summaryrefslogtreecommitdiffstats
path: root/src/vsession.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/vsession.cpp')
-rw-r--r--src/vsession.cpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/vsession.cpp b/src/vsession.cpp
index b61c759..a3334c8 100644
--- a/src/vsession.cpp
+++ b/src/vsession.cpp
@@ -104,27 +104,33 @@ QIcon VSession::icon() const {
return res_icon;
}
// Everything failed, try to guess the OS
- QString os(this->os().toLower());
- os = os.replace(cleanNameRegex, QString());
- if (!os.isEmpty()) {
+ QString os1(this->os().toLower());
+ QString os2(this->osDisplayName().toLower());
+ os1 = os1.replace(cleanNameRegex, QString());
+ os2 = os2.replace(cleanNameRegex, QString());
+ if (!os1.isEmpty() || !os2.isEmpty()) {
// Now try known good OS names via .startsWith()
for (const QString& str : directOsNames) {
- if (os.startsWith(str))
+ if (os1.startsWith(str) || os2.startsWith(str))
return iconHolder->getIcon(str);
}
// Fuzzy matching via regex
for (const IconMap& map : iconMapping) {
- if (map.expr.match(os).hasMatch())
+ if (map.expr.match(os1).hasMatch() || map.expr.match(os2).hasMatch())
return iconHolder->getIcon(map.icon);
}
// Running out of ideas...
- if (os.startsWith(QStringLiteral("win")))
+ if (os2.startsWith(QStringLiteral("win")))
return iconHolder->getIcon(QStringLiteral("windows"));
- if (os.contains(QStringLiteral("linux")))
+ if (os2.contains(QStringLiteral("linux")))
return iconHolder->getIcon(QStringLiteral("linux"));
}
// Fallback to generic virtualizer icon (if found)
- return iconHolder->getIcon(virtualizer());
+ QIcon ret = iconHolder->getIcon(virtualizer());
+ if (ret.isNull()) {
+ ret = QIcon(QPixmap(64, 64));
+ }
+ return ret;
}
QString VSession::toXml() const {
@@ -219,10 +225,10 @@ bool VSession::isLocked() const {
QString VSession::checkCanRunInternal() const {
if (getAttribute(QStringLiteral("image_name")).isEmpty())
- return QObject::trUtf8("XML error: image_name is empty");
+ return QObject::tr("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);
+ return QObject::tr("Virtualizer '%1' is not enabled.").arg(virt->id);
// Seems OK
return QString();
}
@@ -247,8 +253,8 @@ bool VSession::prepareRun() const {
tmpfile.write(this->toXml().toUtf8()) == -1) {
qDebug() << "Error writing xml to file" << tmpfile.fileName();
QMessageBox::critical(
- nullptr, QObject::trUtf8("vmchooser"),
- QObject::trUtf8("Error writing temporary XML file for run-virt"));
+ nullptr, QObject::tr("vmchooser"),
+ QObject::tr("Error writing temporary XML file for run-virt"));
return false;
}
if (!tmpFileName.isEmpty()) {