eric7/WebBrowser/Session/SessionManager.py

branch
eric7
changeset 9162
8b75b1668583
parent 9153
506e35e424d5
--- 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):
         """

eric ide

mercurial