src/eric7/WebBrowser/Session/SessionManager.py

branch
eric7
changeset 10679
4d3e0ce54322
parent 10439
21c28b0f9e41
child 10926
9ef616cd220d
diff -r 665f1084ebf9 -r 4d3e0ce54322 src/eric7/WebBrowser/Session/SessionManager.py
--- a/src/eric7/WebBrowser/Session/SessionManager.py	Wed Apr 10 10:45:31 2024 +0200
+++ b/src/eric7/WebBrowser/Session/SessionManager.py	Wed Apr 10 16:45:06 2024 +0200
@@ -20,7 +20,6 @@
     QByteArray,
     QDateTime,
     QDir,
-    QFileSystemWatcher,
     QObject,
     Qt,
     QTimer,
@@ -40,6 +39,7 @@
 )
 
 from eric7 import Globals, Preferences
+from eric7.EricCore import EricFileSystemWatcher
 from eric7.EricGui.EricOverrideCursor import EricOverrideCursor
 from eric7.EricWidgets import EricMessageBox
 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
@@ -98,12 +98,9 @@
         if not os.path.exists(self.__lastActiveSession):
             self.__lastActiveSession = self.__sessionDefault
 
-        self.__sessionsDirectoryWatcher = QFileSystemWatcher(
-            [self.getSessionsDirectory()], self
-        )
-        self.__sessionsDirectoryWatcher.directoryChanged.connect(
-            self.__sessionDirectoryChanged
-        )
+        watcher = EricFileSystemWatcher.instance()
+        watcher.directoryChanged.connect(self.__sessionDirectoryChanged)
+        watcher.addPath(self.getSessionsDirectory())
 
         self.__backupSavedSession()
 
@@ -160,6 +157,8 @@
         self.__autoSaveTimer.stop()
         if not self.__shutdown:
             self.__autoSaveSession(startTimer=False)
+            watcher = EricFileSystemWatcher.instance()
+            watcher.removePath(self.getSessionsDirectory())
         self.__shutdown = True
 
     def autoSaveSession(self):
@@ -358,14 +357,18 @@
         """
         return pathlib.Path(filePath) == pathlib.Path(self.__lastActiveSession)
 
-    @pyqtSlot()
-    def __sessionDirectoryChanged(self):
+    @pyqtSlot(str)
+    def __sessionDirectoryChanged(self, path):
         """
         Private slot handling changes of the sessions directory.
+
+        @param path name of the changed directory
+        @type str
         """
-        self.__sessionMetaData = []
+        if path == self.getSessionsDirectory():
+            self.__sessionMetaData = []
 
-        self.sessionsMetaDataChanged.emit()
+            self.sessionsMetaDataChanged.emit()
 
     @pyqtSlot()
     def aboutToShowSessionsMenu(self, menu):

eric ide

mercurial