Merge pull request #15 from ModOrganizer2/iplugingame-saves

Update for IPluginGame::listSaves().
This commit is contained in:
Al
2020-11-28 06:40:39 -08:00
committed by GitHub
2 changed files with 19 additions and 16 deletions
+11 -11
View File
@@ -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
+8 -5
View File
@@ -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: