summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 {