diff --git a/Rare/Components/Tabs/Games/GameList.py b/Rare/Components/Tabs/Games/GameList.py index c4180475..bc0ccb4c 100644 --- a/Rare/Components/Tabs/Games/GameList.py +++ b/Rare/Components/Tabs/Games/GameList.py @@ -5,8 +5,8 @@ from PyQt5.QtCore import Qt, pyqtSignal, QSettings from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import * -from Rare.Components.Tabs.Games.GameWidgets.GameWidgetListUninstalled import ListWidgetUninstalled -from Rare.Components.Tabs.Games.GameWidgets.IconWidgetUninstalled import IconWidgetUninstalled +from Rare.Components.Tabs.Games.GameWidgets.UninstalledListWidget import ListWidgetUninstalled +from Rare.Components.Tabs.Games.GameWidgets.UninstalledIconWidget import IconWidgetUninstalled from Rare.Components.Tabs.Games.GameWidgets.InstalledIconWidget import GameWidgetInstalled from Rare.Components.Tabs.Games.GameWidgets.InstalledListWidget import InstalledListWidget from Rare.utils.Models import InstallOptions @@ -136,7 +136,7 @@ class GameList(QStackedWidget): def filter(self, text: str): for t in self.widgets.values(): for w in t: - if text.lower() in w.game.title.lower() + w.game.app_name.lower(): + if text.lower() in w.game.app_title.lower() + w.game.app_name.lower(): w.setVisible(True) else: w.setVisible(False) diff --git a/Rare/Components/Tabs/Games/GameWidgets/BaseInstalledWidget.py b/Rare/Components/Tabs/Games/GameWidgets/BaseInstalledWidget.py index ce9fa435..bd3d85db 100644 --- a/Rare/Components/Tabs/Games/GameWidgets/BaseInstalledWidget.py +++ b/Rare/Components/Tabs/Games/GameWidgets/BaseInstalledWidget.py @@ -2,6 +2,9 @@ from logging import getLogger from PyQt5.QtCore import pyqtSignal, QProcess from PyQt5.QtWidgets import QWidget +from custom_legendary.models.game import InstalledGame + +from custom_legendary.core import LegendaryCore from Rare.utils import LegendaryApi @@ -13,23 +16,25 @@ class BaseInstalledWidget(QWidget): show_info = pyqtSignal(str) proc: QProcess() - def __init__(self, game, core, pixmap): + def __init__(self, igame: InstalledGame, core: LegendaryCore, pixmap): super(BaseInstalledWidget, self).__init__() - self.game = game + self.igame = igame self.core = core + self.game = self.core.get_game(self.igame.app_name) self.pixmap = pixmap self.game_running = False + self.update_available = self.update_available = self.core.get_asset(self.game.app_name, True).build_version != igame.version def launch(self, offline=False, skip_version_check=False): - logger.info("Launching " + self.game.title) - self.proc = LegendaryApi.launch_game(self.core, self.game.app_name, offline, + logger.info("Launching " + self.igame.title) + self.proc = LegendaryApi.launch_game(self.core, self.igame.app_name, offline, skip_version_check=skip_version_check) if not self.proc: logger.error("Could not start process") return 1 self.proc.finished.connect(self.finished) - self.launch_signal.emit(self.game.app_name) + self.launch_signal.emit(self.igame.app_name) self.game_running = True return 0 def finished(self): diff --git a/Rare/Components/Tabs/Games/GameWidgets/InstalledIconWidget.py b/Rare/Components/Tabs/Games/GameWidgets/InstalledIconWidget.py index 2f112feb..46507117 100644 --- a/Rare/Components/Tabs/Games/GameWidgets/InstalledIconWidget.py +++ b/Rare/Components/Tabs/Games/GameWidgets/InstalledIconWidget.py @@ -28,15 +28,10 @@ class GameWidgetInstalled(BaseInstalledWidget): self.layout = QVBoxLayout() self.core = core - self.game = game self.running = False settings = QSettings() self.info_text = "" - self.IMAGE_DIR = settings.value("img_dir", os.path.expanduser("~/.cache/rare")) - try: - self.update_available = self.core.get_asset(self.game.app_name, True).build_version != game.version - except: - self.update_available = False + if self.update_available: logger.info("Update available for game: " + self.game.app_name) self.info_text = self.tr("Update available") diff --git a/Rare/Components/Tabs/Games/GameWidgets/InstalledListWidget.py b/Rare/Components/Tabs/Games/GameWidgets/InstalledListWidget.py index 57c1dc12..8d1820ce 100644 --- a/Rare/Components/Tabs/Games/GameWidgets/InstalledListWidget.py +++ b/Rare/Components/Tabs/Games/GameWidgets/InstalledListWidget.py @@ -19,12 +19,9 @@ class InstalledListWidget(BaseInstalledWidget): def __init__(self, game: InstalledGame, core: LegendaryCore, pixmap): super(InstalledListWidget, self).__init__(game, core, pixmap) - self.core = core - self.game = game - self.dev = core.get_game(self.game.app_name).metadata["developer"] + self.dev = core.get_game(self.igame.app_name).metadata["developer"] self.size = game.install_size self.launch_params = game.launch_parameters - self.update_available = self.core.get_asset(self.game.app_name, True).build_version != game.version self.layout = QHBoxLayout() @@ -38,21 +35,21 @@ class InstalledListWidget(BaseInstalledWidget): self.layout.addWidget(self.image) play_icon = self.style().standardIcon(getattr(QStyle, 'SP_MediaPlay')) - self.title_widget = QLabel(f"

{self.game.title}

") - self.app_name_label = QLabel(self.game.app_name) + self.title_widget = QLabel(f"

{self.igame.title}

") + self.app_name_label = QLabel(self.igame.app_name) self.launch_button = QPushButton(play_icon, self.tr("Launch")) self.launch_button.setObjectName("launch_game_button") self.launch_button.setFixedWidth(120) self.info = QPushButton("Info") - self.info.clicked.connect(lambda: self.show_info.emit(self.game.app_name)) + self.info.clicked.connect(lambda: self.show_info.emit(self.igame.app_name)) self.info.setFixedWidth(80) self.launch_button.clicked.connect(self.launch) if os.name != "nt": self.wine_rating = QLabel("Wine Rating: " + self.get_rating()) self.developer_label = QLabel(self.tr("Developer: ") + self.dev) - self.version_label = QLabel("Version: " + str(self.game.version)) + self.version_label = QLabel("Version: " + str(self.igame.version)) self.size_label = QLabel(f"{self.tr('Installed size')}: {round(self.size / (1024 ** 3), 2)} GB") self.childLayout.addWidget(self.title_widget) self.childLayout.addWidget(self.launch_button) diff --git a/Rare/Components/Tabs/Games/GameWidgets/IconWidgetUninstalled.py b/Rare/Components/Tabs/Games/GameWidgets/UninstalledIconWidget.py similarity index 95% rename from Rare/Components/Tabs/Games/GameWidgets/IconWidgetUninstalled.py rename to Rare/Components/Tabs/Games/GameWidgets/UninstalledIconWidget.py index 164b8be3..68ac870a 100644 --- a/Rare/Components/Tabs/Games/GameWidgets/IconWidgetUninstalled.py +++ b/Rare/Components/Tabs/Games/GameWidgets/UninstalledIconWidget.py @@ -18,9 +18,6 @@ class IconWidgetUninstalled(BaseUninstalledWidget): def __init__(self, game: Game, core: LegendaryCore, pixmap): super(IconWidgetUninstalled, self).__init__(game, core, pixmap) self.layout = QVBoxLayout() - self.core = core - self.game = game - self.pixmap = pixmap if self.pixmap: w = 200 diff --git a/Rare/Components/Tabs/Games/GameWidgets/GameWidgetListUninstalled.py b/Rare/Components/Tabs/Games/GameWidgets/UninstalledListWidget.py similarity index 84% rename from Rare/Components/Tabs/Games/GameWidgets/GameWidgetListUninstalled.py rename to Rare/Components/Tabs/Games/GameWidgets/UninstalledListWidget.py index 82a2f0fb..130f39be 100644 --- a/Rare/Components/Tabs/Games/GameWidgets/GameWidgetListUninstalled.py +++ b/Rare/Components/Tabs/Games/GameWidgets/UninstalledListWidget.py @@ -14,6 +14,13 @@ 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.child_layout = QVBoxLayout() self.title_label = QLabel(f"

{self.game.app_title}

")