src/eric7/WebBrowser/Download/DownloadManager.py

branch
eric7
changeset 10485
287a3ae95e00
parent 10475
ee41fab001f2
child 11090
f5f5f5803935
diff -r ad7a6d699a0d -r 287a3ae95e00 src/eric7/WebBrowser/Download/DownloadManager.py
--- a/src/eric7/WebBrowser/Download/DownloadManager.py	Sun Jan 07 11:42:41 2024 +0100
+++ b/src/eric7/WebBrowser/Download/DownloadManager.py	Sun Jan 07 12:40:00 2024 +0100
@@ -7,6 +7,8 @@
 Module implementing the download manager class.
 """
 
+import enum
+
 from PyQt6.QtCore import (
     QBasicTimer,
     QFileInfo,
@@ -33,6 +35,19 @@
 from .Ui_DownloadManager import Ui_DownloadManager
 
 
+class DownloadManagerRemovePolicy(enum.Enum):
+    """
+    Class defining the remove policies.
+    """
+
+    Never = 0
+    Exit = 1
+    SuccessfullDownload = 2
+
+
+DownloadManagerDefaultRemovePolicy = DownloadManagerRemovePolicy.Never
+
+
 class DownloadManager(QDialog, Ui_DownloadManager):
     """
     Class implementing the download manager.
@@ -41,11 +56,6 @@
         count of download items
     """
 
-    # TODO: change this to an enum
-    RemoveNever = 0
-    RemoveExit = 1
-    RemoveSuccessFullDownload = 2
-
     UpdateTimerTimeout = 1000
 
     downloadsCountChanged = pyqtSignal()
@@ -366,7 +376,7 @@
 
         if (
             itm.downloadedSuccessfully()
-            and self.removePolicy() == DownloadManager.RemoveSuccessFullDownload
+            and self.removePolicy() == DownloadManagerRemovePolicy.SuccessfullDownload
         ):
             remove = True
 
@@ -385,28 +395,27 @@
         Public method to get the remove policy.
 
         @return remove policy
-        @rtype int
+        @rtype DownloadManagerRemovePolicy
         """
-        return Preferences.getWebBrowser("DownloadManagerRemovePolicy")
+        try:
+            return DownloadManagerRemovePolicy(
+                Preferences.getWebBrowser("DownloadManagerRemovePolicy")
+            )
+        except ValueError:
+            # default value
+            return DownloadManagerDefaultRemovePolicy
 
     def setRemovePolicy(self, policy):
         """
         Public method to set the remove policy.
 
-        @param policy policy to be set
-            (DownloadManager.RemoveExit, DownloadManager.RemoveNever,
-             DownloadManager.RemoveSuccessFullDownload)
-        @type int
+        @param policy remove policy to be set
+        @type DownloadManagerRemovePolicy
         """
-        if policy in (
-            DownloadManager.RemoveExit,
-            DownloadManager.RemoveNever,
-            DownloadManager.RemoveSuccessFullDownload,
-        ):
-            if policy == self.removePolicy():
-                return
+        if policy == self.removePolicy():
+            return
 
-            Preferences.setWebBrowser("DownloadManagerRemovePolicy", self.policy)
+        Preferences.setWebBrowser("DownloadManagerRemovePolicy", self.policy.value)
 
     def save(self):
         """
@@ -417,7 +426,7 @@
 
         Preferences.setWebBrowser("DownloadManagerSize", self.size())
         Preferences.setWebBrowser("DownloadManagerPosition", self.pos())
-        if self.removePolicy() == DownloadManager.RemoveExit:
+        if self.removePolicy() == DownloadManagerRemovePolicy.Exit:
             return
 
         if WebBrowserWindow.isPrivate():

eric ide

mercurial