diff options
author | Jonathan Bauer | 2016-02-25 14:40:26 +0100 |
---|---|---|
committer | Jonathan Bauer | 2016-02-25 14:40:26 +0100 |
commit | 627310ad6a6fa14e80c3fa82ee28ed813a159070 (patch) | |
tree | c5780474133c63a2a2531e93d932492352db033c /src | |
parent | Revert "load icon from the filesystem (if path is set in the xsession file)" (diff) | |
download | vmchooser2-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
Diffstat (limited to 'src')
-rw-r--r-- | src/sessionsiconholder.cpp | 9 | ||||
-rw-r--r-- | src/vsession.cpp | 6 | ||||
-rw-r--r-- | src/xsession.cpp | 14 |
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 { |