--- a/eric7/WebBrowser/Session/SessionManager.py Mon Jun 20 13:25:14 2022 +0200 +++ b/eric7/WebBrowser/Session/SessionManager.py Mon Jun 20 19:47:39 2022 +0200 @@ -12,9 +12,10 @@ import functools import contextlib import pathlib +import shutil from PyQt6.QtCore import ( - pyqtSlot, pyqtSignal, Qt, QObject, QTimer, QDir, QFile, QFileSystemWatcher, + pyqtSlot, pyqtSignal, Qt, QObject, QTimer, QDir, QFileSystemWatcher, QByteArray, QDateTime ) from PyQt6.QtGui import QActionGroup @@ -84,7 +85,7 @@ self.__lastActiveSession = Preferences.getWebBrowser( "SessionLastActivePath") - if not QFile.exists(self.__lastActiveSession): + if not os.path.exists(self.__lastActiveSession): self.__lastActiveSession = self.__sessionDefault self.__sessionsDirectoryWatcher = QFileSystemWatcher( @@ -262,14 +263,14 @@ """ Private method to backup the most recently saved session. """ - if QFile.exists(self.__lastActiveSession): + if os.path.exists(self.__lastActiveSession): - if QFile.exists(self.__sessionBackup1): - QFile.remove(self.__sessionBackup2) - QFile.copy(self.__sessionBackup1, self.__sessionBackup2) + if os.path.exists(self.__sessionBackup1): + os.unlink(self.__sessionBackup2) + shutil.copy(self.__sessionBackup1, self.__sessionBackup2) - QFile.remove(self.__sessionBackup1) - QFile.copy(self.__lastActiveSession, self.__sessionBackup1) + os.unlink(self.__sessionBackup1) + shutil.copy(self.__lastActiveSession, self.__sessionBackup1) def sessionMetaData(self, includeBackups=False): """ @@ -284,14 +285,14 @@ metaDataList = self.__sessionMetaData[:] - if includeBackups and QFile.exists(self.__sessionBackup1): + if includeBackups and os.path.exists(self.__sessionBackup1): data = SessionMetaData() data.name = self.tr("Backup 1") data.filePath = self.__sessionBackup1 data.isBackup = True metaDataList.append(data) - if includeBackups and QFile.exists(self.__sessionBackup2): + if includeBackups and os.path.exists(self.__sessionBackup2): data = SessionMetaData() data.name = self.tr("Backup 2") data.filePath = self.__sessionBackup2 @@ -515,7 +516,7 @@ return if flags & SessionManager.CloneSession: - if not QFile.copy(sessionFilePath, newSessionPath): + if not shutil.copy(sessionFilePath, newSessionPath): EricMessageBox.critical( WebBrowserWindow.getWindow(), title, @@ -523,7 +524,9 @@ """ file.""")) return else: - if not QFile.rename(sessionFilePath, newSessionPath): + try: + os.rename(sessionFilePath, newSessionPath) + except OSError: EricMessageBox.critical( WebBrowserWindow.getWindow(), title, @@ -615,13 +618,14 @@ @type str """ from WebBrowser.WebBrowserWindow import WebBrowserWindow + sfp = pathlib.Path(sessionFilePath) res = EricMessageBox.yesNo( WebBrowserWindow.getWindow(), self.tr("Delete Session"), self.tr("""Are you sure you want to delete session "{0}"?""") - .format(pathlib.Path(sessionFilePath).stem)) + .format(sfp.stem)) if res: - QFile.remove(sessionFilePath) + sfp.unlink() def newSession(self): """