From a605bddffaebc9f04c0deb7ff7e495e2ed72a968 Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Fri, 19 Jan 2024 12:09:57 +0200 Subject: [PATCH] RareGame: Move `sdl_name` to RareGameBase InstallDialog uses that property so RareEosOverlay should have it too. Also calculate the base_path for the overlay case instead of passing it as argument --- rare/components/dialogs/install_dialog.py | 3 ++- rare/models/base_game.py | 5 +++++ rare/models/game.py | 12 ++---------- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/rare/components/dialogs/install_dialog.py b/rare/components/dialogs/install_dialog.py index 1f5828f7..a8f23c25 100644 --- a/rare/components/dialogs/install_dialog.py +++ b/rare/components/dialogs/install_dialog.py @@ -235,7 +235,8 @@ class InstallDialog(ActionDialog): self.error_box() def get_options(self): - self.__options.base_path = "" if self.rgame.is_installed else self.install_dir_edit.text() + base_path = os.path.join(self.install_dir_edit.text(), ".overlay" if self.__options.overlay else "") + self.__options.base_path = "" if self.rgame.is_installed else base_path self.__options.platform = self.ui.platform_combo.currentText() self.__options.create_shortcut = self.ui.shortcut_check.isChecked() self.__options.max_workers = self.advanced.ui.max_workers_spin.value() diff --git a/rare/models/base_game.py b/rare/models/base_game.py index ab34b466..0033530a 100644 --- a/rare/models/base_game.py +++ b/rare/models/base_game.py @@ -8,6 +8,7 @@ from typing import Optional, List, Tuple from PyQt5.QtCore import QObject, pyqtSignal, QRunnable, QThreadPool, QSettings from legendary.lfs import eos from legendary.models.game import SaveGameFile, SaveGameStatus, Game, InstalledGame +from legendary.utils.selective_dl import get_sdl_appname from rare.lgndr.core import LegendaryCore from rare.models.install import UninstallOptionsModel, InstallOptionsModel @@ -178,6 +179,10 @@ class RareGameBase(QObject): except AttributeError: return False + @property + def sdl_name(self) -> Optional[str]: + return get_sdl_appname(self.app_name) + @property def version(self) -> str: """! diff --git a/rare/models/game.py b/rare/models/game.py index 0c305089..6c255a24 100644 --- a/rare/models/game.py +++ b/rare/models/game.py @@ -11,7 +11,6 @@ from PyQt5.QtCore import QRunnable, pyqtSlot, QProcess, QThreadPool from PyQt5.QtGui import QPixmap from legendary.lfs import eos from legendary.models.game import Game, InstalledGame -from legendary.utils.selective_dl import get_sdl_appname from rare.lgndr.core import LegendaryCore from rare.models.base_game import RareGameBase, RareGameSlim @@ -413,10 +412,6 @@ class RareGame(RareGameSlim): else self.app_title ) - @property - def sdl_name(self) -> Optional[str]: - return get_sdl_appname(self.app_name) - @property def save_path(self) -> Optional[str]: return super(RareGame, self).save_path @@ -628,7 +623,7 @@ class RareEosOverlay(RareGameBase): try: eos.add_registry_entries(path, prefix) except PermissionError as e: - logger.error("Exception while writing registry to enable the overlay .") + logger.error("Exception while writing registry to enable the overlay.") logger.error(e) return False logger.info(f"Enabled overlay at: {path} for prefix: {prefix}") @@ -652,10 +647,7 @@ class RareEosOverlay(RareGameBase): if self.is_installed: base_path = self.igame.install_path else: - base_path = os.path.join( - self.core.lgd.config.get("Legendary", "install_dir", fallback=os.path.expanduser("~/legendary")), - ".overlay" - ) + base_path = self.core.get_default_install_dir() self.signals.game.install.emit( InstallOptionsModel( app_name=self.app_name, base_path=base_path, platform="Windows", overlay=True