eric7/WebBrowser/Session/SessionManager.py

branch
eric7
changeset 9153
506e35e424d5
parent 8881
54e42bc2437a
child 9162
8b75b1668583
--- 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(

eric ide

mercurial