From b385652e7a9e575606fce2e729a4a8be74cbaa3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mika=C3=ABl=20Capelle?= Date: Wed, 18 Nov 2020 19:17:55 +0100 Subject: [PATCH] Update for IPluginGame::listSaves(). --- basic_features/basic_save_game_info.py | 22 +++++++++++----------- basic_game.py | 13 ++++++++----- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/basic_features/basic_save_game_info.py b/basic_features/basic_save_game_info.py index 7ccaef4..3c9dce8 100644 --- a/basic_features/basic_save_game_info.py +++ b/basic_features/basic_save_game_info.py @@ -13,24 +13,24 @@ import mobase class BasicGameSaveGame(mobase.ISaveGame): - def __init__(self, filename: str): + def __init__(self, filepath: Path): super().__init__() - self._filename = filename + self._filepath = filepath - def getFilename(self) -> str: - return self._filename + def getFilepath(self) -> str: + return self._filepath.as_posix() + + def getName(self) -> str: + return self._filepath.name def getCreationTime(self): - return QDateTime(Path(self._filename).stat().st_mtime) + return QDateTime.fromSecsSinceEpoch(int(self._filepath.stat().st_mtime)) def getSaveGroupIdentifier(self) -> str: return "" def allFiles(self) -> List[str]: - return [self._filename] - - def hasScriptExtenderFile(self) -> bool: - return False + return [self.getFilename()] class BasicGameSaveGameInfoWidget(mobase.ISaveGameInfoWidget): @@ -52,12 +52,12 @@ class BasicGameSaveGameInfoWidget(mobase.ISaveGameInfoWidget): self.setAutoFillBackground(True) self.setPalette(palette) - def setSave(self, filename): + def setSave(self, save: mobase.ISaveGame): # Resize the label to (0, 0) to hide it: self._label.resize(0, 0) # Retrieve the pixmap: - value = self._get_preview(filename) + value = self._get_preview(save.getFilepath()) if value is None: return diff --git a/basic_game.py b/basic_game.py index af5364c..19ff51d 100644 --- a/basic_game.py +++ b/basic_game.py @@ -11,6 +11,8 @@ from PyQt5.QtGui import QIcon import mobase +from .basic_features.basic_save_game_info import BasicGameSaveGame + def replace_variables(value: str, game: "BasicGame") -> str: """ Replace special paths in the given value. """ @@ -426,11 +428,12 @@ class BasicGame(mobase.IPluginGame): def executableForcedLoads(self) -> List[mobase.ExecutableForcedLoadSetting]: return [] - def savegameExtension(self) -> str: - return self._mappings.savegameExtension.get() - - def savegameSEExtension(self) -> str: - return "" + def listSaves(self, folder: QDir) -> List[mobase.ISaveGame]: + ext = self._mappings.savegameExtension.get() + return [ + BasicGameSaveGame(path) + for path in Path(folder.absolutePath()).glob(f"**/*.{ext}") + ] def initializeProfile(self, path: QDir, settings: int): if settings & mobase.ProfileSetting.CONFIGURATION: