41 from eric7.EricGui.EricOverrideCursor import EricOverrideCursor |
43 from eric7.EricGui.EricOverrideCursor import EricOverrideCursor |
42 from eric7.EricWidgets import EricMessageBox |
44 from eric7.EricWidgets import EricMessageBox |
43 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow |
45 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow |
44 |
46 |
45 |
47 |
|
48 @dataclass |
46 class SessionMetaData: |
49 class SessionMetaData: |
47 """ |
50 """ |
48 Class implementing a data structure to store meta data for a session. |
51 Class implementing a data structure to store meta data for a session. |
49 """ |
52 """ |
50 |
53 |
51 def __init__(self): |
54 name: str = "" |
52 """ |
55 filePath: str = "" |
53 Constructor |
56 isActive: bool = False |
54 """ |
57 isDefault: bool = False |
55 self.name = "" |
58 isBackup: bool = False |
56 self.filePath = "" |
|
57 self.isActive = False |
|
58 self.isDefault = False |
|
59 self.isBackup = False |
|
60 |
59 |
61 |
60 |
62 class SessionManager(QObject): |
61 class SessionManager(QObject): |
63 """ |
62 """ |
64 Class implementing the session manager. |
63 Class implementing the session manager. |
295 self.__fillMetaDataList() |
294 self.__fillMetaDataList() |
296 |
295 |
297 metaDataList = self.__sessionMetaData[:] |
296 metaDataList = self.__sessionMetaData[:] |
298 |
297 |
299 if includeBackups and os.path.exists(self.__sessionBackup1): |
298 if includeBackups and os.path.exists(self.__sessionBackup1): |
300 data = SessionMetaData() |
299 data = SessionMetaData( |
301 data.name = self.tr("Backup 1") |
300 name=self.tr("Backup 1"), |
302 data.filePath = self.__sessionBackup1 |
301 filePath=self.__sessionBackup1, |
303 data.isBackup = True |
302 isBackup=True, |
|
303 ) |
304 metaDataList.append(data) |
304 metaDataList.append(data) |
305 |
305 |
306 if includeBackups and os.path.exists(self.__sessionBackup2): |
306 if includeBackups and os.path.exists(self.__sessionBackup2): |
307 data = SessionMetaData() |
307 data = SessionMetaData( |
308 data.name = self.tr("Backup 2") |
308 name=self.tr("Backup 2"), |
309 data.filePath = self.__sessionBackup2 |
309 filePath=self.__sessionBackup2, |
310 data.isBackup = True |
310 isBackup=True, |
|
311 ) |
311 metaDataList.append(data) |
312 metaDataList.append(data) |
312 |
313 |
313 return metaDataList |
314 return metaDataList |
314 |
315 |
315 def __fillMetaDataList(self): |
316 def __fillMetaDataList(self): |
327 for sessionFile in sessionFiles: |
328 for sessionFile in sessionFiles: |
328 sessionData = self.readSessionFromFile(sessionFile.resolve()) |
329 sessionData = self.readSessionFromFile(sessionFile.resolve()) |
329 if not sessionData or not sessionData["Windows"]: |
330 if not sessionData or not sessionData["Windows"]: |
330 continue |
331 continue |
331 |
332 |
332 data = SessionMetaData() |
333 data = SessionMetaData( |
333 data.name = sessionFile.stem |
334 name=sessionFile.stem, |
334 data.filePath = sessionFile.resolve() |
335 filePath=sessionFile.resolve(), |
|
336 ) |
335 |
337 |
336 if sessionFile == pathlib.Path(self.defaultSessionFile()): |
338 if sessionFile == pathlib.Path(self.defaultSessionFile()): |
337 data.name = self.tr("Default Session") |
339 data.name = self.tr("Default Session") |
338 data.isDefault = True |
340 data.isDefault = True |
339 |
341 |