1
0
Fork 0
mirror of synced 2024-09-29 08:51:43 +13:00

Add option to reload image for uninstalled widgets too

This commit is contained in:
Dummerle 2021-09-08 19:43:49 +02:00
parent 158d98957c
commit 6a01ddef6b
4 changed files with 26 additions and 20 deletions

View file

@ -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)

View file

@ -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)

View file

@ -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"<h3>{game.app_title}</h3>")
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"))

View file

@ -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()