diff options
Diffstat (limited to 'src/sessiontreemodel.cpp')
-rw-r--r-- | src/sessiontreemodel.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/sessiontreemodel.cpp b/src/sessiontreemodel.cpp index 6208606..177049d 100644 --- a/src/sessiontreemodel.cpp +++ b/src/sessiontreemodel.cpp @@ -65,20 +65,22 @@ QVariant SessionTreeModel::data(const QModelIndex &index, int role) const { if (!url_icon.isNull()) { return url_icon; } - - // fallback to os icon - if (s->type() == Session::VSESSION) { - const VSession* vs = (VSession*) s; - if (vs->getAttribute("os", "param").toLower().startsWith("win")) { - return iconHolder->getIcon("windows"); - } else { - return iconHolder->getIcon("linux"); - } - } } else { // try to load icon from QResource - return iconHolder->getIcon(icon); + QIcon res_icon = iconHolder->getIcon(icon); + if (!res_icon.isNull()) { + return res_icon; + } } + // fallback to os icon + if (s->type() == Session::VSESSION) { + const VSession* vs = (VSession*) s; + if (vs->getAttribute("os", "param").toLower().startsWith("win")) { + return iconHolder->getIcon("windows"); + } else { + return iconHolder->getIcon("linux"); + } + } } } } else if (role == Qt::DisplayRole) { |