diff options
Diffstat (limited to 'src/vsession.cpp')
-rw-r--r-- | src/vsession.cpp | 30 |
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()) { |