From 2c8569eb7ebbcaa9b6f1e9d249ab18a5360b8380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Moreira?= Date: Thu, 26 Dec 2019 17:45:12 -0300 Subject: [PATCH] [fix] default tray icons are not displayed in KDE --- bauh/view/qt/apps_table.py | 4 ++-- bauh/view/qt/root.py | 5 ++--- bauh/view/qt/systray.py | 5 +++-- bauh/view/qt/view_utils.py | 12 +++++++++--- bauh/view/qt/window.py | 4 ++-- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/bauh/view/qt/apps_table.py b/bauh/view/qt/apps_table.py index 1c727602..beb8e8e0 100644 --- a/bauh/view/qt/apps_table.py +++ b/bauh/view/qt/apps_table.py @@ -14,7 +14,7 @@ from bauh.commons.html import strip_html from bauh.view.qt import dialog from bauh.view.qt.components import IconButton from bauh.view.qt.view_model import PackageView, PackageViewStatus -from bauh.view.qt.view_utils import load_icon +from bauh.view.qt.view_utils import load_resource_icon from bauh.view.util import resource from bauh.view.util.translation import I18n @@ -427,7 +427,7 @@ class AppsTable(QTableWidget): def run(): self.window.run_app(pkg) - item.addWidget(IconButton(load_icon(resource.get_path('img/app_play.svg'), 12), action=run, background='#088A08', tooltip=self.i18n['action.run.tooltip'])) + item.addWidget(IconButton(load_resource_icon('img/app_play.svg', 12), action=run, background='#088A08', tooltip=self.i18n['action.run.tooltip'])) if pkg.model.has_info(): diff --git a/bauh/view/qt/root.py b/bauh/view/qt/root.py index 95459bf8..539a1e89 100644 --- a/bauh/view/qt/root.py +++ b/bauh/view/qt/root.py @@ -1,12 +1,11 @@ import os -from PyQt5.QtGui import QIcon from PyQt5.QtWidgets import QInputDialog, QLineEdit from bauh.api.abstract.view import MessageType from bauh.commons.system import new_subprocess from bauh.view.qt.dialog import show_message -from bauh.view.util import resource +from bauh.view.qt.view_utils import load_resource_icon from bauh.view.util.translation import I18n @@ -19,7 +18,7 @@ def ask_root_password(i18n: I18n): diag.setStyleSheet("""QLineEdit { border-radius: 5px; font-size: 16px; border: 1px solid lightblue }""") diag.setInputMode(QInputDialog.TextInput) diag.setTextEchoMode(QLineEdit.Password) - diag.setWindowIcon(QIcon(resource.get_path('img/lock.svg'))) + diag.setWindowIcon(load_resource_icon('img/lock.svg', 20, 24)) diag.setWindowTitle(i18n['popup.root.title']) diag.setLabelText('') diag.setOkButtonText(i18n['popup.root.continue'].capitalize()) diff --git a/bauh/view/qt/systray.py b/bauh/view/qt/systray.py index 74a10c6b..461ba3ad 100755 --- a/bauh/view/qt/systray.py +++ b/bauh/view/qt/systray.py @@ -11,6 +11,7 @@ from PyQt5.QtWidgets import QSystemTrayIcon, QMenu from bauh import __app_name__ from bauh.api.abstract.controller import SoftwareManager from bauh.api.abstract.model import PackageUpdate +from bauh.view.qt.view_utils import load_resource_icon from bauh.view.util import util, resource from bauh.view.qt.about import AboutDialog from bauh.view.qt.window import ManageWindow @@ -47,7 +48,7 @@ class TrayIcon(QSystemTrayIcon): self.icon_default = QIcon.fromTheme('bauh_tray_default') if self.icon_default.isNull(): - self.icon_default = QIcon(resource.get_path('img/logo.svg')) + self.icon_default = load_resource_icon('img/logo.svg', 24) if config['ui']['tray']['updates_icon']: self.icon_updates = QIcon(config['ui']['tray']['updates_icon']) @@ -55,7 +56,7 @@ class TrayIcon(QSystemTrayIcon): self.icon_updates = QIcon.fromTheme('bauh_tray_updates') if self.icon_updates.isNull(): - self.icon_updates = QIcon(resource.get_path('img/logo_update.svg')) + self.icon_updates = load_resource_icon('img/logo_update.svg', 24) self.setIcon(self.icon_default) diff --git a/bauh/view/qt/view_utils.py b/bauh/view/qt/view_utils.py index b8edd2f5..bb66cb88 100644 --- a/bauh/view/qt/view_utils.py +++ b/bauh/view/qt/view_utils.py @@ -1,7 +1,13 @@ from PyQt5.QtCore import Qt from PyQt5.QtGui import QIcon, QPixmap +from bauh.view.util import resource + + +def load_icon(path: str, width: int, height: int = None) -> QIcon: + return QIcon(QPixmap(path).scaled(width, height if height else width, Qt.KeepAspectRatio, Qt.SmoothTransformation)) + + +def load_resource_icon(path: str, width: int, height: int = None) -> QIcon: + return load_icon(resource.get_path(path), width, height) -def load_icon(path: str, size: int) -> QIcon: - pixmap = QPixmap(path) - return QIcon(pixmap.scaled(size, size, Qt.KeepAspectRatio, Qt.SmoothTransformation)) diff --git a/bauh/view/qt/window.py b/bauh/view/qt/window.py index 1e9bbd40..92b39f97 100755 --- a/bauh/view/qt/window.py +++ b/bauh/view/qt/window.py @@ -33,7 +33,7 @@ from bauh.view.qt.thread import UpdateSelectedApps, RefreshApps, UninstallApp, D GetAppHistory, SearchPackages, InstallPackage, AnimateProgress, VerifyModels, FindSuggestions, ListWarnings, \ AsyncAction, LaunchApp, ApplyFilters, CustomAction, GetScreenshots from bauh.view.qt.view_model import PackageView -from bauh.view.qt.view_utils import load_icon +from bauh.view.qt.view_utils import load_icon, load_resource_icon from bauh.view.util import util, resource from bauh.view.util.translation import I18n @@ -157,7 +157,7 @@ class ManageWindow(QWidget): self.combo_filter_type.lineEdit().setReadOnly(True) self.combo_filter_type.lineEdit().setAlignment(Qt.AlignCenter) self.combo_filter_type.activated.connect(self._handle_type_filter) - self.combo_filter_type.addItem(load_icon(resource.get_path('img/logo.svg'), 14), self.i18n['type'].capitalize(), self.any_type_filter) + self.combo_filter_type.addItem(load_resource_icon('img/logo.svg', 14), self.i18n['type'].capitalize(), self.any_type_filter) self.ref_combo_filter_type = self.toolbar.addWidget(self.combo_filter_type) self.any_category_filter = 'any'