RareCore: keep configuration when uninstalling a game at startup
We don't need to lose the `install_tags` or any other settings because a disk might be not mounted.
This commit is contained in:
parent
b7d499f3e1
commit
0cc521ba0b
1 changed files with 9 additions and 8 deletions
|
@ -194,12 +194,12 @@ class RareCore(QObject):
|
||||||
for dlc in rgame.owned_dlcs:
|
for dlc in rgame.owned_dlcs:
|
||||||
if dlc.is_installed:
|
if dlc.is_installed:
|
||||||
logger.info(f'Uninstalling DLC "{dlc.app_name}" ({dlc.app_title})...')
|
logger.info(f'Uninstalling DLC "{dlc.app_name}" ({dlc.app_title})...')
|
||||||
uninstall_game(self.__core, dlc.app_name, keep_files=True)
|
uninstall_game(self.__core, dlc.app_name, keep_files=True, keep_config=True)
|
||||||
dlc.igame = None
|
dlc.igame = None
|
||||||
logger.info(
|
logger.info(
|
||||||
f'Removing "{rgame.app_title}" because "{rgame.igame.install_path}" does not exist...'
|
f'Removing "{rgame.app_title}" because "{rgame.igame.install_path}" does not exist...'
|
||||||
)
|
)
|
||||||
uninstall_game(self.__core, rgame.app_name, keep_files=True)
|
uninstall_game(self.__core, rgame.app_name, keep_files=True, keep_config=True)
|
||||||
logger.info(f"Uninstalled {rgame.app_title}, because no game files exist")
|
logger.info(f"Uninstalled {rgame.app_title}, because no game files exist")
|
||||||
rgame.igame = None
|
rgame.igame = None
|
||||||
return
|
return
|
||||||
|
@ -247,6 +247,7 @@ class RareCore(QObject):
|
||||||
rgame = RareGame(self.__core, self.__image_manager, game)
|
rgame = RareGame(self.__core, self.__image_manager, game)
|
||||||
return rgame
|
return rgame
|
||||||
|
|
||||||
|
|
||||||
def __add_games_and_dlcs(self, games: List[Game], dlcs_dict: Dict[str, List]) -> None:
|
def __add_games_and_dlcs(self, games: List[Game], dlcs_dict: Dict[str, List]) -> None:
|
||||||
length = len(games)
|
length = len(games)
|
||||||
for idx, game in enumerate(games):
|
for idx, game in enumerate(games):
|
||||||
|
@ -265,9 +266,9 @@ class RareCore(QObject):
|
||||||
rdlc.signals.progress.finish.connect(rgame.signals.progress.finish)
|
rdlc.signals.progress.finish.connect(rgame.signals.progress.finish)
|
||||||
rgame.owned_dlcs.append(rdlc)
|
rgame.owned_dlcs.append(rdlc)
|
||||||
self.__add_game(rdlc)
|
self.__add_game(rdlc)
|
||||||
time.sleep(0.005)
|
|
||||||
self.progress.emit(int(idx/length * 80) + 20, f"Loaded <b>{rgame.app_title}</b>")
|
|
||||||
self.__add_game(rgame)
|
self.__add_game(rgame)
|
||||||
|
self.progress.emit(int(idx/length * 80) + 20, f"Loaded <b>{rgame.app_title}</b>")
|
||||||
|
time.sleep(0.005)
|
||||||
|
|
||||||
@pyqtSlot(object, int)
|
@pyqtSlot(object, int)
|
||||||
def handle_result(self, result: object, res_type: int):
|
def handle_result(self, result: object, res_type: int):
|
||||||
|
@ -316,7 +317,7 @@ class RareCore(QObject):
|
||||||
QThreadPool.globalInstance().start(non_asset_worker)
|
QThreadPool.globalInstance().start(non_asset_worker)
|
||||||
|
|
||||||
def fetch_saves(self):
|
def fetch_saves(self):
|
||||||
def __fetch_saves() -> None:
|
def __fetch() -> None:
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
saves_dict: Dict[str, List[SaveGameFile]] = {}
|
saves_dict: Dict[str, List[SaveGameFile]] = {}
|
||||||
try:
|
try:
|
||||||
|
@ -334,11 +335,11 @@ class RareCore(QObject):
|
||||||
logger.debug(f"Saves: {len(saves_dict)}")
|
logger.debug(f"Saves: {len(saves_dict)}")
|
||||||
logger.debug(f"Request saves: {time.time() - start_time} seconds")
|
logger.debug(f"Request saves: {time.time() - start_time} seconds")
|
||||||
|
|
||||||
saves_worker = QRunnable.create(__fetch_saves)
|
saves_worker = QRunnable.create(__fetch)
|
||||||
QThreadPool.globalInstance().start(saves_worker)
|
QThreadPool.globalInstance().start(saves_worker)
|
||||||
|
|
||||||
def fetch_entitlements(self) -> None:
|
def fetch_entitlements(self) -> None:
|
||||||
def __fetch_entitlements() -> None:
|
def __fetch() -> None:
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
try:
|
try:
|
||||||
entitlements = self.__core.egs.get_user_entitlements()
|
entitlements = self.__core.egs.get_user_entitlements()
|
||||||
|
@ -351,7 +352,7 @@ class RareCore(QObject):
|
||||||
logger.debug(f"Entitlements: {len(list(entitlements))}")
|
logger.debug(f"Entitlements: {len(list(entitlements))}")
|
||||||
logger.debug(f"Request Entitlements: {time.time() - start_time} seconds")
|
logger.debug(f"Request Entitlements: {time.time() - start_time} seconds")
|
||||||
|
|
||||||
entitlements_worker = QRunnable.create(__fetch_entitlements)
|
entitlements_worker = QRunnable.create(__fetch)
|
||||||
QThreadPool.globalInstance().start(entitlements_worker)
|
QThreadPool.globalInstance().start(entitlements_worker)
|
||||||
|
|
||||||
def resolve_origin(self) -> None:
|
def resolve_origin(self) -> None:
|
||||||
|
|
Loading…
Reference in a new issue