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):