summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2016-02-25 14:40:26 +0100
committerJonathan Bauer2016-02-25 14:40:26 +0100
commit627310ad6a6fa14e80c3fa82ee28ed813a159070 (patch)
treec5780474133c63a2a2531e93d932492352db033c
parentRevert "load icon from the filesystem (if path is set in the xsession file)" (diff)
downloadvmchooser2-627310ad6a6fa14e80c3fa82ee28ed813a159070.tar.gz
vmchooser2-627310ad6a6fa14e80c3fa82ee28ed813a159070.tar.xz
vmchooser2-627310ad6a6fa14e80c3fa82ee28ed813a159070.zip
always look in the filesystem for the icon
vsession/xsession handle their fallback icon themselves
-rw-r--r--src/sessionsiconholder.cpp9
-rw-r--r--src/vsession.cpp6
-rw-r--r--src/xsession.cpp14
3 files changed, 13 insertions, 16 deletions
diff --git a/src/sessionsiconholder.cpp b/src/sessionsiconholder.cpp
index 7cce455..67f1701 100644
--- a/src/sessionsiconholder.cpp
+++ b/src/sessionsiconholder.cpp
@@ -66,10 +66,11 @@ QIcon SessionsIconHolder::getIcon(const QString& name) {
// else load icon from resource
QIcon icon;
QString resName(":" + name.toLower());
- if (QResource(resName + ".svg").isValid()) {
- icon = QIcon(resName + ".svg");
- } else if (QResource(resName).isValid()) {
- icon = QIcon(resName);
+ if (QResource(resName).isValid()) {
+ icon = QIcon(resName);
+ } else if (QFileInfo(name).isAbsolute() && QFile::exists(name)) {
+ // absolute icon path and file exists
+ icon = QIcon(name);
} else {
icon = QIcon();
}
diff --git a/src/vsession.cpp b/src/vsession.cpp
index 991a117..f0038aa 100644
--- a/src/vsession.cpp
+++ b/src/vsession.cpp
@@ -48,12 +48,6 @@ QIcon VSession::icon() const {
if (!url_icon.isNull()) {
return url_icon;
}
- } else if (QFileInfo(icon).isAbsolute()) {
- // try to load icon from file
- QIcon file_icon(icon);
- if (!file_icon.isNull()) {
- return file_icon;
- }
}
if (!icon.isEmpty()) {
QIcon res_icon(iconHolder->getIcon(icon));
diff --git a/src/xsession.cpp b/src/xsession.cpp
index ff5de57..f4c8a9d 100644
--- a/src/xsession.cpp
+++ b/src/xsession.cpp
@@ -88,9 +88,11 @@ int XSession::priority() const {
}
QIcon XSession::icon() const {
- QString icon(this->icon_);
-
- if (icon.isEmpty()) {
+ QIcon retIcon;
+ if (!this->icon_.isEmpty()) {
+ retIcon = SessionsIconHolder::get()->getIcon(this->icon_);
+ }
+ if (retIcon.isNull()) {
if (this->exec_.contains("kde", Qt::CaseInsensitive)) {
icon = "kde";
} else if (this->exec_.contains("gnome", Qt::CaseInsensitive)) {
@@ -104,9 +106,9 @@ QIcon XSession::icon() const {
} else {
icon = "linux";
}
- }
-
- return SessionsIconHolder::get()->getIcon(icon);
+ retIcon = SessionsIconHolder::get()->getIcon(icon);
+ }
+ return retIcon;
}
bool XSession::run() const {