From c5fcf18be03f1983c5dc9f34bb52bce6502d584e Mon Sep 17 00:00:00 2001 From: Vinicius Moreira Date: Fri, 21 Aug 2020 17:05:05 -0300 Subject: [PATCH] [ui] fix -> some application icons without a full path are not being rendered on the 'Upgrade summary' --- CHANGELOG.md | 1 + bauh/view/qt/components.py | 10 ++++++++-- bauh/view/qt/thread.py | 5 ++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cc68dcc..c3d10c95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -87,6 +87,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - crashing when nothing can be upgraded - random C++ wrapper errors with some forms due to missing references - application icons that cannot be rendered are being displayed as an empty space (now the type icon is displayed instead) + - some application icons without a full path are not being rendered on the 'Upgrade summary' ## [0.9.6] 2020-06-26 diff --git a/bauh/view/qt/components.py b/bauh/view/qt/components.py index 40b01f9a..ab219268 100644 --- a/bauh/view/qt/components.py +++ b/bauh/view/qt/components.py @@ -268,7 +268,10 @@ class RadioButtonQt(QRadioButton): self.toggled.connect(self._set_checked) if model.icon_path: - self.setIcon(QIcon(model.icon_path)) + if model.icon_path.startswith('/'): + self.setIcon(QIcon(model.icon_path)) + else: + self.setIcon(QIcon.fromTheme(model.icon_path)) if self.model.read_only: self.setAttribute(Qt.WA_TransparentForMouseEvents) @@ -291,7 +294,10 @@ class CheckboxQt(QCheckBox): self.setToolTip(model.tooltip) if model.icon_path: - self.setIcon(QIcon(model.icon_path)) + if model.icon_path.startswith('/'): + self.setIcon(QIcon(model.icon_path)) + else: + self.setIcon(QIcon.fromTheme(model.icon_path)) if model.read_only: self.setAttribute(Qt.WA_TransparentForMouseEvents) diff --git a/bauh/view/qt/thread.py b/bauh/view/qt/thread.py index 10a66c95..818d74b8 100644 --- a/bauh/view/qt/thread.py +++ b/bauh/view/qt/thread.py @@ -9,6 +9,7 @@ from typing import List, Type, Set, Tuple import requests from PyQt5.QtCore import QThread, pyqtSignal +from PyQt5.QtGui import QIcon from bauh import LOGS_PATH from bauh.api.abstract.cache import MemoryCache @@ -196,7 +197,9 @@ class UpgradeSelected(AsyncAction): if req.pkg.installed: icon_path = req.pkg.get_disk_icon_path() - if not icon_path or not os.path.isfile(icon_path): + if not icon_path: + icon_path = req.pkg.get_type_icon_path() + elif not os.path.isfile(icon_path) and QIcon.fromTheme(icon_path).isNull(): icon_path = req.pkg.get_type_icon_path() else: