From 6a01ddef6b939868e69759344a18cf564c914987 Mon Sep 17 00:00:00 2001 From: Dummerle Date: Wed, 8 Sep 2021 19:43:49 +0200 Subject: [PATCH] Add option to reload image for uninstalled widgets too --- .../game_widgets/base_installed_widget.py | 5 ++--- .../game_widgets/base_uninstalled_widget.py | 20 +++++++++++++++---- .../game_widgets/uninstalled_icon_widget.py | 14 ++++++------- .../game_widgets/uninstalled_list_widget.py | 7 +------ 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/rare/components/tabs/games/game_widgets/base_installed_widget.py b/rare/components/tabs/games/game_widgets/base_installed_widget.py index 8427641f..054a24c3 100644 --- a/rare/components/tabs/games/game_widgets/base_installed_widget.py +++ b/rare/components/tabs/games/game_widgets/base_installed_widget.py @@ -29,7 +29,7 @@ class BaseInstalledWidget(QGroupBox): self.core = core self.game = self.core.get_game(self.igame.app_name) self.image = QLabel() - self.image.setPixmap(pixmap.scaled(200, 200 * 4 / 3)) + self.image.setPixmap(pixmap.scaled(200, int(200 * 4 / 3), transformMode=Qt.SmoothTransformation)) self.game_running = False self.offline = offline self.update_available = self.core.get_asset(self.game.app_name, True).build_version != igame.version @@ -76,7 +76,7 @@ class BaseInstalledWidget(QGroupBox): def reload_image(self): utils.download_image(self.game, True) pm = utils.get_pixmap(self.game.app_name) - self.image.setPixmap(pm) + self.image.setPixmap(pm.scaled(200, int(200 * 4 / 3), transformMode=Qt.SmoothTransformation)) def create_desktop_link(self, type_of_link): if platform.system() not in ["Windows", "Linux"]: @@ -164,7 +164,6 @@ class BaseInstalledWidget(QGroupBox): logger.error(stderr) # QMessageBox.warning(self, "Warning", stderr + "\nSee ~/.cache/rare/logs/") - def finished(self, exit_code): logger.info("Game exited with exit code: " + str(exit_code)) self.finish_signal.emit(self.game.app_name) diff --git a/rare/components/tabs/games/game_widgets/base_uninstalled_widget.py b/rare/components/tabs/games/game_widgets/base_uninstalled_widget.py index 11161cac..d82e9177 100644 --- a/rare/components/tabs/games/game_widgets/base_uninstalled_widget.py +++ b/rare/components/tabs/games/game_widgets/base_uninstalled_widget.py @@ -1,7 +1,9 @@ from logging import getLogger -from PyQt5.QtCore import pyqtSignal -from PyQt5.QtWidgets import QGroupBox +from PyQt5.QtCore import pyqtSignal, Qt +from PyQt5.QtWidgets import QGroupBox, QLabel, QAction + +from rare.utils import utils logger = getLogger("Uninstalled") @@ -13,10 +15,20 @@ class BaseUninstalledWidget(QGroupBox): super(BaseUninstalledWidget, self).__init__() self.game = game self.core = core - self.pixmap = pixmap + self.image = QLabel() + self.image.setPixmap(pixmap.scaled(200, int(200 * 4 / 3), transformMode=Qt.SmoothTransformation)) self.installing = False - + self.setContextMenuPolicy(Qt.ActionsContextMenu) self.setContentsMargins(0, 0, 0, 0) + reload_image = QAction(self.tr("Reload Image"), self) + reload_image.triggered.connect(self.reload_image) + self.addAction(reload_image) + + def reload_image(self): + utils.download_image(self.game, True) + pm = utils.get_uninstalled_pixmap(self.game.app_name) + self.image.setPixmap(pm.scaled(200, int(200 * 4 / 3), transformMode=Qt.SmoothTransformation)) + def install(self): self.show_uninstalled_info.emit(self.game.app_name) diff --git a/rare/components/tabs/games/game_widgets/uninstalled_icon_widget.py b/rare/components/tabs/games/game_widgets/uninstalled_icon_widget.py index 4ccbb66c..f23dd0a0 100644 --- a/rare/components/tabs/games/game_widgets/uninstalled_icon_widget.py +++ b/rare/components/tabs/games/game_widgets/uninstalled_icon_widget.py @@ -15,12 +15,7 @@ class IconWidgetUninstalled(BaseUninstalledWidget): super(IconWidgetUninstalled, self).__init__(game, core, pixmap) self.layout = QVBoxLayout() self.setObjectName("game_widget_icon") - if self.pixmap: - w = 200 - self.pixmap = self.pixmap.scaled(w, int(w * 4 / 3)) - self.image = QLabel() - self.image.setPixmap(self.pixmap) - self.layout.addWidget(self.image) + self.layout.addWidget(self.image) self.title_label = QLabel(f"

{game.app_title}

") self.title_label.setWordWrap(True) @@ -33,9 +28,14 @@ class IconWidgetUninstalled(BaseUninstalledWidget): self.setFixedWidth(self.sizeHint().width()) def mousePressEvent(self, e) -> None: - if not self.installing: + # left button + if e.button() == 1 and not self.installing: self.install() + # right + elif e.button() == 2: + pass # self.showMenu(e) + def enterEvent(self, e): if not self.installing: self.info_label.setText(self.tr("Game Info")) diff --git a/rare/components/tabs/games/game_widgets/uninstalled_list_widget.py b/rare/components/tabs/games/game_widgets/uninstalled_list_widget.py index a74d85d5..f5867a29 100644 --- a/rare/components/tabs/games/game_widgets/uninstalled_list_widget.py +++ b/rare/components/tabs/games/game_widgets/uninstalled_list_widget.py @@ -14,12 +14,7 @@ class ListWidgetUninstalled(BaseUninstalledWidget): super(ListWidgetUninstalled, self).__init__(game, core, pixmap) self.layout = QHBoxLayout() - if self.pixmap: - w = 200 - self.pixmap = self.pixmap.scaled(w, int(w * 4 / 3)) - self.image = QLabel() - self.image.setPixmap(self.pixmap) - self.layout.addWidget(self.image) + self.layout.addWidget(self.image) self.child_layout = QVBoxLayout()