--- a/eric7/WebBrowser/Session/SessionManager.py Thu Jun 16 18:28:59 2022 +0200 +++ b/eric7/WebBrowser/Session/SessionManager.py Fri Jun 17 16:36:14 2022 +0200 @@ -11,10 +11,11 @@ import json import functools import contextlib +import pathlib from PyQt6.QtCore import ( - pyqtSlot, pyqtSignal, Qt, QObject, QTimer, QDir, QFile, QFileInfo, - QFileSystemWatcher, QByteArray, QDateTime + pyqtSlot, pyqtSignal, Qt, QObject, QTimer, QDir, QFile, QFileSystemWatcher, + QByteArray, QDateTime ) from PyQt6.QtGui import QActionGroup from PyQt6.QtWidgets import ( @@ -309,24 +310,22 @@ if self.__sessionMetaData: return - sessionFilesInfoList = QDir(self.getSessionsDirectory()).entryInfoList( - ["*.json"], QDir.Filter.Files, QDir.SortFlag.Time) + sessionFiles = pathlib.Path(self.getSessionsDirectory()).glob("*.json") - for sessionFileInfo in sessionFilesInfoList: - sessionData = self.readSessionFromFile( - sessionFileInfo.absoluteFilePath()) + for sessionFile in sessionFiles: + sessionData = self.readSessionFromFile(sessionFile.resolve()) if not sessionData or not sessionData["Windows"]: continue data = SessionMetaData() - data.name = sessionFileInfo.baseName() - data.filePath = sessionFileInfo.canonicalFilePath() + data.name = sessionFile.stem + data.filePath = sessionFile.resolve() - if sessionFileInfo == QFileInfo(self.defaultSessionFile()): + if sessionFile == pathlib.Path(self.defaultSessionFile()): data.name = self.tr("Default Session") data.isDefault = True - if self.__isActive(sessionFileInfo): + if self.__isActive(sessionFile): data.isActive = True if data.isDefault: @@ -340,11 +339,11 @@ Private method to check, if a given file is the active one. @param filePath path of the session file to be checked - @type str or QFileInfo + @type str or pathlib.Path @return flag indicating the active file @rtype bool """ - return QFileInfo(filePath) == QFileInfo(self.__lastActiveSession) + return pathlib.Path(filePath) == pathlib.Path(self.__lastActiveSession) @pyqtSlot() def __sessionDirectoryChanged(self): @@ -424,7 +423,7 @@ SessionManager.ReplaceSession ): self.__lastActiveSession = ( - QFileInfo(sessionFilePath).canonicalFilePath() + pathlib.Path(sessionFilePath).resolve() ) self.__sessionMetaData = [] @@ -485,7 +484,7 @@ """ from WebBrowser.WebBrowserWindow import WebBrowserWindow - suggestedName = QFileInfo(sessionFilePath).baseName() + suggestedName = pathlib.Path(sessionFilePath).stem if flags & SessionManager.CloneSession: suggestedName += "_cloned" title = self.tr("Clone Session") @@ -620,7 +619,7 @@ WebBrowserWindow.getWindow(), self.tr("Delete Session"), self.tr("""Are you sure you want to delete session "{0}"?""") - .format(QFileInfo(sessionFilePath).baseName())) + .format(pathlib.Path(sessionFilePath).stem)) if res: QFile.remove(sessionFilePath) @@ -704,10 +703,13 @@ layout.addWidget(buttonBox) dlg.setLayout(layout) - lastActiveSessionFileInfo = QFileInfo(self.__lastActiveSession) + lastActiveSessionFilePath = pathlib.Path(self.__lastActiveSession) for metaData in self.__sessionMetaData: - if QFileInfo(metaData.filePath) != lastActiveSessionFileInfo: + if ( + pathlib.Path(metaData.filePath) != + lastActiveSessionFilePath + ): combo.addItem(metaData.name, metaData.filePath) else: combo.insertItem(