Changed some state/mode definitiuons to an enum.Enum class and corrected some code style and formatting issues. eric7

Sat, 06 Jan 2024 15:21:02 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 06 Jan 2024 15:21:02 +0100
branch
eric7
changeset 10482
72d9b5ea39b4
parent 10481
9aea3575bd16
child 10483
f919fa592ca9

Changed some state/mode definitiuons to an enum.Enum class and corrected some code style and formatting issues.

src/eric7/DocumentationTools/ModuleDocumentor.py file | annotate | diff | comparison | revisions
src/eric7/EricWidgets/EricAnimatedWidget.py file | annotate | diff | comparison | revisions
src/eric7/EricWidgets/EricPasswordMeter.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/MicroPythonWidget.py file | annotate | diff | comparison | revisions
src/eric7/Plugins/UiExtensionPlugins/Translator/Translator.py file | annotate | diff | comparison | revisions
src/eric7/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py file | annotate | diff | comparison | revisions
src/eric7/Project/ProjectSourcesBrowser.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/MarkupProviders/HtmlProvider.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/MarkupProviders/ImageMarkupDialog.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/MarkupProviders/MarkdownProvider.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/MarkupProviders/RestructuredTextProvider.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/SearchReplaceWidget.py file | annotate | diff | comparison | revisions
src/eric7/UI/UserInterface.py file | annotate | diff | comparison | revisions
src/eric7/Utilities/ModuleParser.py file | annotate | diff | comparison | revisions
src/eric7/Utilities/PasswordChecker.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/AddBookmarkDialog.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/BookmarkNode.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/BookmarkPropertiesDialog.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/BookmarksDialog.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/BookmarksImporters/ChromeImporter.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/BookmarksImporters/FirefoxImporter.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/BookmarksImporters/HtmlImporter.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/BookmarksImporters/IExplorerImporter.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/BookmarksImporters/OperaImporter.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/BookmarksImporters/SafariImporter.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/BookmarksImporters/XbelImporter.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/BookmarksManager.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/BookmarksMenu.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/BookmarksModel.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/NsHtmlReader.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/NsHtmlWriter.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/XbelReader.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/Bookmarks/XbelWriter.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/TabManager/TabManagerWidget.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/UrlBar/UrlBar.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/WebBrowserView.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/WebBrowserWindow.py file | annotate | diff | comparison | revisions
--- a/src/eric7/DocumentationTools/ModuleDocumentor.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/DocumentationTools/ModuleDocumentor.py	Sat Jan 06 15:21:02 2024 +0100
@@ -217,9 +217,7 @@
                             sectionDict[name].description
                         ),
                         "Deprecated": TemplatesListsStyleCSS.listEntryDeprecatedTemplate
-                        if self.__checkDeprecated(
-                            sectionDict[name].description
-                        )
+                        if self.__checkDeprecated(sectionDict[name].description)
                         else "",
                     }
                 )
@@ -391,11 +389,13 @@
                             "Description": self.__getShortDescription(
                                 sectionDict["__init__"].description
                             ),
-                            "Deprecated": TemplatesListsStyleCSS.listEntryDeprecatedTemplate
-                            if self.__checkDeprecated(
-                                sectionDict["__init__"].description
-                            )
-                            else "",
+                            "Deprecated": (
+                                TemplatesListsStyleCSS.listEntryDeprecatedTemplate
+                                if self.__checkDeprecated(
+                                    sectionDict["__init__"].description
+                                )
+                                else ""
+                            ),
                         }
                     )
                 )
@@ -416,9 +416,7 @@
                             sectionDict[name].description
                         ),
                         "Deprecated": TemplatesListsStyleCSS.listEntryDeprecatedTemplate
-                        if self.__checkDeprecated(
-                            sectionDict[name].description
-                        )
+                        if self.__checkDeprecated(sectionDict[name].description)
                         else "",
                     }
                 )
@@ -646,9 +644,7 @@
                             sectionDict[name].description
                         ),
                         "Deprecated": TemplatesListsStyleCSS.listEntryDeprecatedTemplate
-                        if self.__checkDeprecated(
-                            sectionDict[name].description
-                        )
+                        if self.__checkDeprecated(sectionDict[name].description)
                         else "",
                     }
                 )
--- a/src/eric7/EricWidgets/EricAnimatedWidget.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/EricWidgets/EricAnimatedWidget.py	Sat Jan 06 15:21:02 2024 +0100
@@ -21,9 +21,11 @@
     """
     Class defining the animation directions.
     """
+
     Down = 0
     Up = 1
 
+
 class EricAnimatedWidget(QWidget):
     """
     Class implementing an animated widget.
--- a/src/eric7/EricWidgets/EricPasswordMeter.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/EricWidgets/EricPasswordMeter.py	Sat Jan 06 15:21:02 2024 +0100
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QProgressBar
 
-from eric7.Utilities.PasswordChecker import PasswordChecker
+from eric7.Utilities.PasswordChecker import PasswordChecker, PasswordStrength
 
 
 class EricPasswordMeter(QProgressBar):
@@ -28,15 +28,15 @@
 
         super().setTextVisible(False)
         super().setMaximum(100)
-        self.__increment = 100 // (PasswordChecker.Complexity_VeryStrong + 1)
+        self.__increment = 100 // (PasswordStrength.VeryStrong + 1)
 
-        self.__indicatorColors = [
-            "#ff0000",  # red
-            "#ff8800",  # orange
-            "#ffff00",  # yellow
-            "#ccff00",  # yellow green
-            "#00ff00",  # green
-        ]
+        self.__indicatorColors = {
+            PasswordStrength.VeryWeak: "#ff0000",  # red
+            PasswordStrength.Weak: "#ff8800",  # orange
+            PasswordStrength.Good: "#ffff00",  # yellow
+            PasswordStrength.Strong: "#ccff00",  # yellow green
+            PasswordStrength.VeryStrong: "#00ff00",  # green
+        }
         self.__noIndicator = "#ffffff"
 
         self.__styleSheetTemplate = (
--- a/src/eric7/MicroPython/MicroPythonWidget.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/MicroPython/MicroPythonWidget.py	Sat Jan 06 15:21:02 2024 +0100
@@ -32,6 +32,7 @@
 from eric7.EricWidgets.EricProcessDialog import EricProcessDialog
 from eric7.SystemUtilities import FileSystemUtilities, OSUtilities
 from eric7.UI.Info import BugAddress
+from eric7.UI.UserInterface import UserInterfaceSide
 
 from . import ConvertToUF2Dialog, Devices, UF2FlashDialog
 from .BluetoothDialogs.BluetoothController import BluetoothController
@@ -825,7 +826,7 @@
             self.__chartWidget.dataFlood.connect(self.handleDataFlood)
 
             self.__ui.addSideWidget(
-                self.__ui.BottomSide,
+                UserInterfaceSide.Bottom,
                 self.__chartWidget,
                 EricPixmapCache.getIcon("chart"),
                 self.tr("µPy Chart"),
@@ -912,7 +913,7 @@
                     )
 
                     self.__ui.addSideWidget(
-                        self.__ui.BottomSide,
+                        UserInterfaceSide.Bottom,
                         self.__fileManagerWidget,
                         EricPixmapCache.getIcon("filemanager"),
                         self.tr("µPy Files"),
--- a/src/eric7/Plugins/UiExtensionPlugins/Translator/Translator.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/Plugins/UiExtensionPlugins/Translator/Translator.py	Sat Jan 06 15:21:02 2024 +0100
@@ -14,6 +14,7 @@
 
 from eric7.EricGui import EricPixmapCache
 from eric7.EricGui.EricAction import EricAction
+from eric7.UI.UserInterface import UserInterfaceSide
 
 
 class Translator(QObject):
@@ -58,7 +59,7 @@
             else "flag-{0}".format(self.__iconSuffix)
         )
         self.__ui.addSideWidget(
-            self.__ui.BottomSide,
+            UserInterfaceSide.Bottom,
             self.__widget,
             EricPixmapCache.getIcon(
                 os.path.join(os.path.dirname(__file__), "icons", iconName)
--- a/src/eric7/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Sat Jan 06 15:21:02 2024 +0100
@@ -7,6 +7,7 @@
 Module implementing the Editor Highlighting Styles configuration page.
 """
 
+import enum
 import pathlib
 
 from PyQt6.QtCore import QFile, QIODevice, Qt, pyqtSlot
@@ -31,6 +32,17 @@
 from .Ui_EditorHighlightingStylesPage import Ui_EditorHighlightingStylesPage
 
 
+class FontChangeMode(enum.Enum):
+    """
+    Class defining the modes for font changes.
+    """
+
+    FAMILYONLY = 0
+    SIZEONLY = 1
+    FAMILYANDSIZE = 2
+    FONT = 99
+
+
 class EditorHighlightingStylesPage(
     ConfigurationPageBase, Ui_EditorHighlightingStylesPage
 ):
@@ -38,12 +50,6 @@
     Class implementing the Editor Highlighting Styles configuration page.
     """
 
-    # TODO: change this to an enum
-    FAMILYONLY = 0
-    SIZEONLY = 1
-    FAMILYANDSIZE = 2
-    FONT = 99
-
     StyleRole = Qt.ItemDataRole.UserRole + 1
     SubstyleRole = Qt.ItemDataRole.UserRole + 2
 
@@ -66,27 +72,27 @@
 
         self.__fontButtonMenu = QMenu()
         act = self.__fontButtonMenu.addAction(self.tr("Font"))
-        act.setData(self.FONT)
+        act.setData(FontChangeMode.FONT)
         self.__fontButtonMenu.addSeparator()
         act = self.__fontButtonMenu.addAction(self.tr("Family and Size only"))
-        act.setData(self.FAMILYANDSIZE)
+        act.setData(FontChangeMode.FAMILYANDSIZE)
         act = self.__fontButtonMenu.addAction(self.tr("Family only"))
-        act.setData(self.FAMILYONLY)
+        act.setData(FontChangeMode.FAMILYONLY)
         act = self.__fontButtonMenu.addAction(self.tr("Size only"))
-        act.setData(self.SIZEONLY)
+        act.setData(FontChangeMode.SIZEONLY)
         self.__fontButtonMenu.triggered.connect(self.__fontButtonMenuTriggered)
         self.fontButton.setMenu(self.__fontButtonMenu)
 
         self.__allFontsButtonMenu = QMenu()
         act = self.__allFontsButtonMenu.addAction(self.tr("Font"))
-        act.setData(self.FONT)
+        act.setData(FontChangeMode.FONT)
         self.__allFontsButtonMenu.addSeparator()
         act = self.__allFontsButtonMenu.addAction(self.tr("Family and Size only"))
-        act.setData(self.FAMILYANDSIZE)
+        act.setData(FontChangeMode.FAMILYANDSIZE)
         act = self.__allFontsButtonMenu.addAction(self.tr("Family only"))
-        act.setData(self.FAMILYONLY)
+        act.setData(FontChangeMode.FAMILYONLY)
         act = self.__allFontsButtonMenu.addAction(self.tr("Size only"))
-        act.setData(self.SIZEONLY)
+        act.setData(FontChangeMode.SIZEONLY)
         self.__allFontsButtonMenu.triggered.connect(self.__allFontsButtonMenuTriggered)
         self.allFontsButton.setMenu(self.__allFontsButtonMenu)
 
@@ -424,8 +430,11 @@
         if act is None:
             return
 
-        familyOnly = act.data() in [self.FAMILYANDSIZE, self.FAMILYONLY]
-        sizeOnly = act.data() in [self.FAMILYANDSIZE, self.SIZEONLY]
+        familyOnly = act.data() in (
+            FontChangeMode.FAMILYANDSIZE,
+            FontChangeMode.FAMILYONLY,
+        )
+        sizeOnly = act.data() in (FontChangeMode.FAMILYANDSIZE, FontChangeMode.SIZEONLY)
         self.__changeFont(False, familyOnly, sizeOnly)
 
     def __allFontsButtonMenuTriggered(self, act):
@@ -438,8 +447,11 @@
         if act is None:
             return
 
-        familyOnly = act.data() in [self.FAMILYANDSIZE, self.FAMILYONLY]
-        sizeOnly = act.data() in [self.FAMILYANDSIZE, self.SIZEONLY]
+        familyOnly = act.data() in (
+            FontChangeMode.FAMILYANDSIZE,
+            FontChangeMode.FAMILYONLY,
+        )
+        sizeOnly = act.data() in (FontChangeMode.FAMILYANDSIZE, FontChangeMode.SIZEONLY)
         self.__changeFont(True, familyOnly, sizeOnly)
 
     @pyqtSlot(bool)
--- a/src/eric7/Project/ProjectSourcesBrowser.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/Project/ProjectSourcesBrowser.py	Sat Jan 06 15:21:02 2024 +0100
@@ -1137,9 +1137,7 @@
 
             try:
                 newline = (
-                    None
-                    if self.project.useSystemEol()
-                    else self.project.getEolString()
+                    None if self.project.useSystemEol() else self.project.getEolString()
                 )
                 with open(filename, "w", newline=newline) as f:
                     f.write("# -*- coding: utf-8 -*-\n")
--- a/src/eric7/QScintilla/MarkupProviders/HtmlProvider.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/QScintilla/MarkupProviders/HtmlProvider.py	Sat Jan 06 15:21:02 2024 +0100
@@ -308,12 +308,12 @@
         @param editor reference to the editor to work on
         @type Editor
         """
-        from .ImageMarkupDialog import ImageMarkupDialog
+        from .ImageMarkupDialog import ImageMarkupDialog, ImageMarkupMode
 
         if editor is None:
             return
 
-        dlg = ImageMarkupDialog(ImageMarkupDialog.HtmlMode)
+        dlg = ImageMarkupDialog(ImageMarkupMode.Html)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             address, altText, title, originalSize, width, height = dlg.getData()
 
--- a/src/eric7/QScintilla/MarkupProviders/ImageMarkupDialog.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/QScintilla/MarkupProviders/ImageMarkupDialog.py	Sat Jan 06 15:21:02 2024 +0100
@@ -8,6 +8,7 @@
 """
 
 import contextlib
+import enum
 
 from PyQt6.QtCore import QSize, pyqtSlot
 from PyQt6.QtGui import QImage, QImageReader
@@ -18,16 +19,21 @@
 from .Ui_ImageMarkupDialog import Ui_ImageMarkupDialog
 
 
+class ImageMarkupMode(enum.Enum):
+    """
+    Class defining the image markup modes.
+    """
+
+    Html = 0
+    MarkDown = 1
+    Rest = 2
+
+
 class ImageMarkupDialog(QDialog, Ui_ImageMarkupDialog):
     """
     Class implementing a dialog to enter data for an image markup.
     """
 
-    # TODO: change this to an enum
-    HtmlMode = 0
-    MarkDownMode = 1
-    RestMode = 2
-
     def __init__(self, mode, parent=None):
         """
         Constructor
@@ -40,12 +46,12 @@
         super().__init__(parent)
         self.setupUi(self)
 
-        if mode == ImageMarkupDialog.MarkDownMode:
+        if mode == ImageMarkupMode.MarkDown:
             self.sizeCheckBox.setEnabled(False)
             self.aspectRatioCheckBox.setEnabled(False)
             self.widthSpinBox.setEnabled(False)
             self.heightSpinBox.setEnabled(False)
-        elif mode == ImageMarkupDialog.RestMode:
+        elif mode == ImageMarkupMode.Rest:
             self.titleEdit.setEnabled(False)
 
         self.__mode = mode
@@ -105,7 +111,7 @@
         Private slot to set the state of the OK button.
         """
         enable = bool(self.imagePicker.text())
-        if self.__mode == ImageMarkupDialog.MarkDownMode:
+        if self.__mode == ImageMarkupMode.MarkDown:
             enable = enable and bool(self.altTextEdit.text())
 
         self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(enable)
--- a/src/eric7/QScintilla/MarkupProviders/MarkdownProvider.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/QScintilla/MarkupProviders/MarkdownProvider.py	Sat Jan 06 15:21:02 2024 +0100
@@ -296,12 +296,12 @@
         @param editor reference to the editor to work on
         @type Editor
         """
-        from .ImageMarkupDialog import ImageMarkupDialog
+        from .ImageMarkupDialog import ImageMarkupDialog, ImageMarkupMode
 
         if editor is None:
             return
 
-        dlg = ImageMarkupDialog(ImageMarkupDialog.MarkDownMode)
+        dlg = ImageMarkupDialog(ImageMarkupMode.MarkDown)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             address, altText, title, originalSize, width, height = dlg.getData()
 
--- a/src/eric7/QScintilla/MarkupProviders/RestructuredTextProvider.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/QScintilla/MarkupProviders/RestructuredTextProvider.py	Sat Jan 06 15:21:02 2024 +0100
@@ -319,12 +319,12 @@
         @param editor reference to the editor to work on
         @type Editor
         """
-        from .ImageMarkupDialog import ImageMarkupDialog
+        from .ImageMarkupDialog import ImageMarkupDialog, ImageMarkupMode
 
         if editor is None:
             return
 
-        dlg = ImageMarkupDialog(ImageMarkupDialog.RestMode)
+        dlg = ImageMarkupDialog(ImageMarkupMode.Rest)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             address, altText, title, originalSize, width, height = dlg.getData()
 
--- a/src/eric7/QScintilla/SearchReplaceWidget.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/QScintilla/SearchReplaceWidget.py	Sat Jan 06 15:21:02 2024 +0100
@@ -1275,29 +1275,30 @@
         if self.escapeCheckBox.isChecked():
             ftxt = Utilities.unslash(ftxt)
 
-        if selectionOnly:
-            ok = aw.findFirstInSelection(
-                ftxt,
-                self.regexpCheckBox.isChecked(),
-                self.caseCheckBox.isChecked(),
-                self.wordCheckBox.isChecked(),
-                False,
-                True,
-                posix=posixMode,
-                cxx11=cxx11Mode,
-            )
-        else:
-            ok = aw.findFirst(
-                ftxt,
-                self.regexpCheckBox.isChecked(),
-                self.caseCheckBox.isChecked(),
-                self.wordCheckBox.isChecked(),
-                False,
-                True,
-                line,
-                index,
-                posix=posixMode,
-                cxx11=cxx11Mode,
+            ok = (
+                aw.findFirstInSelection(
+                    ftxt,
+                    self.regexpCheckBox.isChecked(),
+                    self.caseCheckBox.isChecked(),
+                    self.wordCheckBox.isChecked(),
+                    False,
+                    True,
+                    posix=posixMode,
+                    cxx11=cxx11Mode,
+                )
+                if selectionOnly
+                else aw.findFirst(
+                    ftxt,
+                    self.regexpCheckBox.isChecked(),
+                    self.caseCheckBox.isChecked(),
+                    self.wordCheckBox.isChecked(),
+                    False,
+                    True,
+                    line,
+                    index,
+                    posix=posixMode,
+                    cxx11=cxx11Mode,
+                )
             )
         found = ok
 
@@ -1310,10 +1311,11 @@
         while ok:
             aw.replace(rtxt)
             replacements += 1
-            if selectionOnly:
-                ok = self.__findNextPrev(ftxt, self.__findBackwards)
-            else:
-                ok = aw.findNext()
+            ok = (
+                self.__findNextPrev(ftxt, self.__findBackwards)
+                if selectionOnly
+                else aw.findNext()
+            )
             self.__finding = True
         aw.endUndoAction()
         if wordWrap:
--- a/src/eric7/UI/UserInterface.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/UI/UserInterface.py	Sat Jan 06 15:21:02 2024 +0100
@@ -9,6 +9,7 @@
 
 import contextlib
 import datetime
+import enum
 import functools
 import getpass
 import json
@@ -174,6 +175,16 @@
         self.__nWrite(self.__bufferedWrite())
 
 
+class UserInterfaceSide(enum.Enum):
+    """
+    Class defining the supported sides of the user interface.
+    """
+
+    Left = 1
+    Bottom = 2
+    Right = 3
+
+
 class UserInterface(EricMainWindow):
     """
     Class implementing the main user interface.
@@ -201,11 +212,6 @@
     maxFilePathLen = 100
     maxMenuFilePathLen = 75
 
-    # TODO: change this to an enum
-    LeftSide = 1
-    BottomSide = 2
-    RightSide = 3
-
     ErrorLogFileName = "eric7_error.log"
 
     def __init__(
@@ -1468,8 +1474,7 @@
         Public method to add a widget to the sides.
 
         @param side side to add the widget to
-        @type int (one of UserInterface.LeftSide, UserInterface.BottomSide,
-            UserInterface.RightSide)
+        @type UserInterfaceSide
         @param widget reference to the widget to add
         @type QWidget
         @param icon icon to be used
@@ -1477,28 +1482,23 @@
         @param label label text to be shown
         @type str
         """
-        if side in [
-            UserInterface.LeftSide,
-            UserInterface.BottomSide,
-            UserInterface.RightSide,
-        ]:
-            if self.__layoutType == "Toolboxes":
-                if side == UserInterface.LeftSide:
-                    self.lToolbox.addItem(widget, icon, label)
-                elif side == UserInterface.BottomSide:
-                    self.hToolbox.addItem(widget, icon, label)
-                elif side == UserInterface.RightSide:
-                    self.rToolbox.addItem(widget, icon, label)
-            elif self.__layoutType == "Sidebars":
-                if side == UserInterface.LeftSide:
+        if self.__layoutType == "Toolboxes":
+            if side == UserInterfaceSide.Left:
+                self.lToolbox.addItem(widget, icon, label)
+            elif side == UserInterfaceSide.Bottom:
+                self.hToolbox.addItem(widget, icon, label)
+            elif side == UserInterfaceSide.Right:
+                self.rToolbox.addItem(widget, icon, label)
+        elif self.__layoutType == "Sidebars":
+            if side == UserInterfaceSide.Left:
+                self.leftSidebar.addTab(widget, icon, label)
+            elif side == UserInterfaceSide.Bottom:
+                self.bottomSidebar.addTab(widget, icon, label)
+            elif side == UserInterfaceSide.Right:
+                if self.rightSidebar:
+                    self.rightSidebar.addTab(widget, icon, label)
+                else:
                     self.leftSidebar.addTab(widget, icon, label)
-                elif side == UserInterface.BottomSide:
-                    self.bottomSidebar.addTab(widget, icon, label)
-                elif side == UserInterface.RightSide:
-                    if self.rightSidebar:
-                        self.rightSidebar.addTab(widget, icon, label)
-                    else:
-                        self.leftSidebar.addTab(widget, icon, label)
 
     def removeSideWidget(self, widget):
         """
--- a/src/eric7/Utilities/ModuleParser.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/Utilities/ModuleParser.py	Sat Jan 06 15:21:02 2024 +0100
@@ -654,9 +654,7 @@
                     meth_pyqtSig = None
                 lineno += src.count("\n", last_lineno_pos, start)
                 def_lineno = (
-                    lineno + src.count(
-                        "\n", start, m.capturedStart("MethodIndent")
-                    )
+                    lineno + src.count("\n", start, m.capturedStart("MethodIndent"))
                     if m.capturedStart("MethodIndent") > start
                     else lineno
                 )
--- a/src/eric7/Utilities/PasswordChecker.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/Utilities/PasswordChecker.py	Sat Jan 06 15:21:02 2024 +0100
@@ -7,26 +7,37 @@
 Module implementing a checker for password strength.
 """
 
+import enum
 import re
 
 
+class PasswordStrength(enum.IntEnum):
+    """
+    Class defining the password strength.
+    """
+
+    VeryWeak = 0
+    Weak = 1
+    Good = 2
+    Strong = 3
+    VeryStrong = 4
+
+
+class PasswordCheckStatus(enum.Enum):
+    """
+    Class defining the status of a password check.
+    """
+
+    Failed = 0
+    Passed = 1
+    Exceeded = 2
+
+
 class PasswordChecker:
     """
     Class implementing a checker for password strength.
     """
 
-    # TODO: change this to an enum
-    Complexity_VeryWeak = 0
-    Complexity_Weak = 1
-    Complexity_Good = 2
-    Complexity_Strong = 3
-    Complexity_VeryStrong = 4
-
-    # TODO: change this to an enum
-    Status_Failed = 0
-    Status_Passed = 1
-    Status_Exceeded = 2
-
     def __init__(self):
         """
         Constructor
@@ -36,7 +47,7 @@
         # complexity index
         self.complexity = {
             "limits": [20, 50, 60, 80, 100],
-            "value": self.Complexity_VeryWeak,
+            "value": PasswordStrength.VeryWeak,
         }
 
         # check categories follow
@@ -45,7 +56,7 @@
         self.passwordLength = {
             "count": 0,
             "minimum": 6,
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": 0.5,  # per character bonus
             "bonus": 10,  # minimum reached? Get a bonus.
@@ -56,7 +67,7 @@
         self.recommendedPasswordLength = {
             "count": 0,
             "minimum": 8,
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": 1.2,
             "bonus": 10,
@@ -72,7 +83,7 @@
         self.basicRequirements = {
             "count": 0,
             "minimum": 3,  # have to be matched to get the bonus
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": 1.0,
             "bonus": 10,
@@ -87,7 +98,7 @@
             # default to start
             "permitted": 2.0,  # 2 means, in average every character
             # can occur twice
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
         }
 
@@ -95,7 +106,7 @@
         self.uppercaseLetters = {
             "count": 0,
             "minimum": 1,
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": 0.0,
             "bonus": 10,
@@ -106,7 +117,7 @@
         self.lowercaseLetters = {
             "count": 0,
             "minimum": 1,
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": 0.0,
             "bonus": 10,
@@ -117,7 +128,7 @@
         self.numerics = {
             "count": 0,
             "minimum": 1,
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": 0.0,
             "bonus": 10,
@@ -128,7 +139,7 @@
         self.symbols = {
             "count": 0,
             "minimum": 1,
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": 0.0,
             "bonus": 10,
@@ -139,7 +150,7 @@
         self.middleSymbols = {
             "count": 0,
             "minimum": 1,
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": 0.0,
             "bonus": 10,
@@ -150,7 +161,7 @@
         self.middleNumerics = {
             "count": 0,
             "minimum": 1,
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": 0.0,
             "bonus": 10,
@@ -163,7 +174,7 @@
             "data": "abcdefghijklmnopqrstuvwxyz",
             "length": 3,
             "count": 0,
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": -1.0,
             "bonus": 0,
@@ -176,7 +187,7 @@
             "data": "0123456789",
             "length": 3,
             "count": 0,
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": -1.0,
             "bonus": 0,
@@ -203,7 +214,7 @@
             ],
             "length": 4,  # how long is the pattern to check and blame for?
             "count": 0,  # how many of these pattern can be found
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": -1.0,  # each occurrence is punished with that factor
             "bonus": 0,
@@ -214,7 +225,7 @@
         self.repeatedSequences = {
             "length": 3,
             "count": 0,
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": 0.0,
             "bonus": 0,
@@ -225,7 +236,7 @@
         self.mirroredSequences = {
             "length": 3,
             "count": 0,
-            "status": self.Status_Failed,
+            "status": PasswordCheckStatus.Failed,
             "rating": 0,
             "factor": 0.0,
             "bonus": 0,
@@ -254,15 +265,15 @@
 
         @param value value to check
         @type int
-        @return status (Status_Failed, Status_Passed, Status_Exceeded)
-        @rtype int
+        @return status
+        @rtype PasswordCheckStatus
         """
         if value == 0:
-            return self.Status_Passed
+            return PasswordCheckStatus.Passed
         elif value > 0:
-            return self.Status_Exceeded
+            return PasswordCheckStatus.Exceeded
         else:
-            return self.Status_Failed
+            return PasswordCheckStatus.Failed
 
     def __determineBinaryStatus(self, value):
         """
@@ -270,13 +281,13 @@
 
         @param value value to check
         @type int
-        @return status (Status_Failed, Status_Passed)
-        @rtype int
+        @return status
+        @rtype PasswordCheckStatus
         """
         if value == 0:
-            return self.Status_Passed
+            return PasswordCheckStatus.Passed
         else:
-            return self.Status_Failed
+            return PasswordCheckStatus.Failed
 
     def checkPassword(self, password):
         """
@@ -284,10 +295,8 @@
 
         @param password password to be checked
         @type str
-        @return indication for the password strength (Complexity_VeryWeak,
-            Complexity_Weak, Complexity_Good, Complexity_Strong,
-            Complexity_VeryStrong)
-        @rtype int
+        @return indication for the password strength
+        @rtype PasswordStrength
         """
         # how long is the password?
         self.passwordLength["count"] = len(password)
@@ -556,7 +565,7 @@
         self.passwordLength["status"] = self.__determineStatus(
             self.passwordLength["count"] - self.passwordLength["minimum"]
         )
-        if self.passwordLength["status"] != self.Status_Failed:
+        if self.passwordLength["status"] != PasswordCheckStatus.Failed:
             # requirement met
             self.basicRequirements["count"] += 1
 
@@ -564,7 +573,7 @@
         self.uppercaseLetters["status"] = self.__determineStatus(
             self.uppercaseLetters["count"] - self.uppercaseLetters["minimum"]
         )
-        if self.uppercaseLetters["status"] != self.Status_Failed:
+        if self.uppercaseLetters["status"] != PasswordCheckStatus.Failed:
             # requirement met
             self.basicRequirements["count"] += 1
 
@@ -572,7 +581,7 @@
         self.lowercaseLetters["status"] = self.__determineStatus(
             self.lowercaseLetters["count"] - self.lowercaseLetters["minimum"]
         )
-        if self.lowercaseLetters["status"] != self.Status_Failed:
+        if self.lowercaseLetters["status"] != PasswordCheckStatus.Failed:
             # requirement met
             self.basicRequirements["count"] += 1
 
@@ -580,7 +589,7 @@
         self.numerics["status"] = self.__determineStatus(
             self.numerics["count"] - self.numerics["minimum"]
         )
-        if self.numerics["status"] != self.Status_Failed:
+        if self.numerics["status"] != PasswordCheckStatus.Failed:
             # requirement met
             self.basicRequirements["count"] += 1
 
@@ -588,7 +597,7 @@
         self.symbols["status"] = self.__determineStatus(
             self.symbols["count"] - self.symbols["minimum"]
         )
-        if self.symbols["status"] != self.Status_Failed:
+        if self.symbols["status"] != PasswordCheckStatus.Failed:
             # requirement met
             self.basicRequirements["count"] += 1
 
@@ -596,7 +605,7 @@
         self.basicRequirements["status"] = self.__determineStatus(
             self.basicRequirements["count"] - self.basicRequirements["minimum"]
         )
-        if self.basicRequirements["status"] != self.Status_Failed:
+        if self.basicRequirements["status"] != PasswordCheckStatus.Failed:
             self.basicRequirements["rating"] = (
                 self.basicRequirements["bonus"]
                 + self.basicRequirements["factor"] * self.basicRequirements["count"]
@@ -633,7 +642,7 @@
         )
 
         # we apply them only, if the length is not awesome
-        if self.recommendedPasswordLength["status"] != self.Status_Exceeded:
+        if self.recommendedPasswordLength["status"] != PasswordCheckStatus.Exceeded:
             # repeatedSequences
             # Honor or punish the use of repeated sequences
             if self.repeatedSequences["count"] == 0:
@@ -660,7 +669,7 @@
         # apply the redundancy
         # is the password length requirement fulfilled?
         if (
-            self.recommendedPasswordLength["status"] != self.Status_Exceeded
+            self.recommendedPasswordLength["status"] != PasswordCheckStatus.Exceeded
             and self.score["count"] > 0
         ):
             # full penalty, because password is not long enough, only for
@@ -678,7 +687,7 @@
         # judge it
         for index in range(len(self.complexity["limits"])):
             if self.score["adjusted"] <= self.complexity["limits"][index]:
-                self.complexity["value"] = index
+                self.complexity["value"] = PasswordStrength(index)
                 break
 
         return self.complexity["value"]
--- a/src/eric7/WebBrowser/Bookmarks/AddBookmarkDialog.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/AddBookmarkDialog.py	Sat Jan 06 15:21:02 2024 +0100
@@ -12,6 +12,7 @@
 
 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
 
+from .BookmarkNode import BookmarkNodeType
 from .Ui_AddBookmarkDialog import Ui_AddBookmarkDialog
 
 
@@ -257,7 +258,9 @@
             idx = self.__bookmarksManager.bookmarksModel().index(0, 0)
         parent = self.__bookmarksManager.bookmarksModel().node(idx)
 
-        type_ = BookmarkNode.Folder if self.__addFolder else BookmarkNode.Bookmark
+        type_ = (
+            BookmarkNodeType.Folder if self.__addFolder else BookmarkNodeType.Bookmark
+        )
         bookmark = BookmarkNode(type_)
         bookmark.title = self.nameEdit.text()
         if not self.__addFolder:
--- a/src/eric7/WebBrowser/Bookmarks/BookmarkNode.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarkNode.py	Sat Jan 06 15:21:02 2024 +0100
@@ -7,28 +7,38 @@
 Module implementing the bookmark node.
 """
 
+import enum
+
 from PyQt6.QtCore import QDateTime
 
 
+class BookmarkNodeType(enum.Enum):
+    """
+    Class defining the bookmark node types.
+    """
+
+    Root = 0
+    Folder = 1
+    Bookmark = 2
+    Separator = 3
+
+
+class BookmarkTimestampType(enum.Enum):
+    """
+    Class defining the bookmark timestamp types.
+    """
+
+    Added = 0
+    Modified = 1
+    Visited = 2
+
+
 class BookmarkNode:
     """
     Class implementing the bookmark node type.
     """
 
-    # TODO: change this to an enum
-    # possible bookmark node types
-    Root = 0
-    Folder = 1
-    Bookmark = 2
-    Separator = 3
-
-    # TODO: change this to an enum
-    # possible timestamp types
-    TsAdded = 0
-    TsModified = 1
-    TsVisited = 2
-
-    def __init__(self, type_=Root, parent=None):
+    def __init__(self, type_=BookmarkNodeType.Root, parent=None):
         """
         Constructor
 
@@ -98,7 +108,7 @@
         @param offset position where to insert child (-1 = append)
         @type int
         """
-        if child._type == BookmarkNode.Root:
+        if child._type == BookmarkNodeType.Root:
             return
 
         if child._parent is not None:
--- a/src/eric7/WebBrowser/Bookmarks/BookmarkPropertiesDialog.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarkPropertiesDialog.py	Sat Jan 06 15:21:02 2024 +0100
@@ -11,7 +11,7 @@
 
 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
 
-from .BookmarkNode import BookmarkNode
+from .BookmarkNode import BookmarkNodeType
 from .Ui_BookmarkPropertiesDialog import Ui_BookmarkPropertiesDialog
 
 
@@ -33,7 +33,7 @@
         self.setupUi(self)
 
         self.__node = node
-        if self.__node.type() == BookmarkNode.Folder:
+        if self.__node.type() == BookmarkNodeType.Folder:
             self.addressLabel.hide()
             self.addressEdit.hide()
             self.visitedLabel.hide()
@@ -51,10 +51,9 @@
         """
         Public slot handling the acceptance of the dialog.
         """
-        from .BookmarkNode import BookmarkNode
-
         if (
-            self.__node.type() == BookmarkNode.Bookmark and not self.addressEdit.text()
+            self.__node.type() == BookmarkNodeType.Bookmark
+            and not self.addressEdit.text()
         ) or not self.nameEdit.text():
             super().accept()
             return
@@ -63,7 +62,7 @@
         title = self.nameEdit.text()
         if title != self.__node.title:
             bookmarksManager.setTitle(self.__node, title)
-        if self.__node.type() == BookmarkNode.Bookmark:
+        if self.__node.type() == BookmarkNodeType.Bookmark:
             url = self.addressEdit.text()
             if url != self.__node.url:
                 bookmarksManager.setUrl(self.__node, url)
--- a/src/eric7/WebBrowser/Bookmarks/BookmarksDialog.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarksDialog.py	Sat Jan 06 15:21:02 2024 +0100
@@ -143,14 +143,14 @@
         @param pos position the context menu was requested
         @type QPoint
         """
-        from .BookmarkNode import BookmarkNode
+        from .BookmarkNode import BookmarkNodeType
 
         menu = QMenu()
         idx = self.bookmarksTree.indexAt(pos)
         idx = idx.sibling(idx.row(), 0)
         sourceIndex = self.__proxyModel.mapToSource(idx)
         node = self.__bookmarksModel.node(sourceIndex)
-        if idx.isValid() and node.type() != BookmarkNode.Folder:
+        if idx.isValid() and node.type() != BookmarkNodeType.Folder:
             menu.addAction(self.tr("&Open"), self.__openBookmarkInCurrentTab)
             menu.addAction(self.tr("Open in New &Tab"), self.__openBookmarkInNewTab)
             menu.addAction(
@@ -169,7 +169,7 @@
         act.setEnabled(
             idx.flags() & Qt.ItemFlag.ItemIsEditable == Qt.ItemFlag.ItemIsEditable
         )
-        if idx.isValid() and node.type() != BookmarkNode.Folder:
+        if idx.isValid() and node.type() != BookmarkNodeType.Folder:
             menu.addAction(self.tr("Edit &Address"), self.__editAddress)
         menu.addSeparator()
         act = menu.addAction(self.tr("&Delete"), self.bookmarksTree.removeSelected)
@@ -181,7 +181,7 @@
         act.setEnabled(
             idx.flags() & Qt.ItemFlag.ItemIsEditable == Qt.ItemFlag.ItemIsEditable
         )
-        if idx.isValid() and node.type() == BookmarkNode.Folder:
+        if idx.isValid() and node.type() == BookmarkNodeType.Folder:
             menu.addSeparator()
             menu.addAction(self.tr("New &Folder..."), self.__newFolder)
         menu.exec(QCursor.pos())
@@ -248,7 +248,7 @@
             background tab
         @type bool
         """
-        from .BookmarkNode import BookmarkNode
+        from .BookmarkNode import BookmarkNodeType
         from .BookmarksModel import BookmarksModel
 
         idx = self.bookmarksTree.currentIndex()
@@ -257,7 +257,7 @@
         if (
             not idx.parent().isValid()
             or node is None
-            or node.type() == BookmarkNode.Folder
+            or node.type() == BookmarkNodeType.Folder
         ):
             return
 
@@ -318,7 +318,7 @@
         """
         Private slot to add a new bookmarks folder.
         """
-        from .BookmarkNode import BookmarkNode
+        from .BookmarkNode import BookmarkNode, BookmarkNodeType
 
         currentIndex = self.bookmarksTree.currentIndex()
         idx = QModelIndex(currentIndex)
@@ -326,7 +326,7 @@
         sourceNode = self.__bookmarksModel.node(sourceIndex)
         row = -1  # append new folder as the last item per default
 
-        if sourceNode is not None and sourceNode.type() != BookmarkNode.Folder:
+        if sourceNode is not None and sourceNode.type() != BookmarkNodeType.Folder:
             # If the selected item is not a folder, add a new folder to the
             # parent folder, but directly below the selected item.
             idx = idx.parent()
@@ -348,6 +348,6 @@
         if ok:
             if not title:
                 title = self.tr("New Folder")
-            node = BookmarkNode(BookmarkNode.Folder)
+            node = BookmarkNode(BookmarkNodeType.Folder)
             node.title = title
             self.__bookmarksManager.addBookmark(parent, node, row)
--- a/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/ChromeImporter.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/ChromeImporter.py	Sat Jan 06 15:21:02 2024 +0100
@@ -253,7 +253,7 @@
         @return imported bookmarks
         @rtype BookmarkNode
         """
-        from ..BookmarkNode import BookmarkNode
+        from ..BookmarkNode import BookmarkNode, BookmarkNodeType
 
         try:
             with open(self.__fileName, "r", encoding="utf-8") as f:
@@ -265,7 +265,7 @@
             ).format(self.__fileName, str(err))
             return None
 
-        importRootNode = BookmarkNode(BookmarkNode.Folder)
+        importRootNode = BookmarkNode(BookmarkNodeType.Folder)
         if contents["version"] == 1:
             self.__processRoots(contents["roots"], importRootNode)
 
@@ -312,9 +312,9 @@
         @param rootNode node to add the bookmarks to
         @type BookmarkNode
         """
-        from ..BookmarkNode import BookmarkNode
+        from ..BookmarkNode import BookmarkNode, BookmarkNodeType
 
-        folder = BookmarkNode(BookmarkNode.Folder, rootNode)
+        folder = BookmarkNode(BookmarkNodeType.Folder, rootNode)
         folder.title = data["name"].replace("&", "&&")
         for node in data["children"]:
             if node["type"] == "folder":
@@ -331,9 +331,9 @@
         @param rootNode node to add the bookmarks to
         @type BookmarkNode
         """
-        from ..BookmarkNode import BookmarkNode
+        from ..BookmarkNode import BookmarkNode, BookmarkNodeType
 
-        bookmark = BookmarkNode(BookmarkNode.Bookmark, rootNode)
+        bookmark = BookmarkNode(BookmarkNodeType.Bookmark, rootNode)
         bookmark.url = data["url"]
         bookmark.title = data["name"].replace("&", "&&")
 
--- a/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/FirefoxImporter.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/FirefoxImporter.py	Sat Jan 06 15:21:02 2024 +0100
@@ -119,9 +119,9 @@
         @return imported bookmarks
         @rtype BookmarkNode
         """
-        from ..BookmarkNode import BookmarkNode
+        from ..BookmarkNode import BookmarkNode, BookmarkNodeType
 
-        importRootNode = BookmarkNode(BookmarkNode.Root)
+        importRootNode = BookmarkNode(BookmarkNodeType.Root)
 
         # step 1: build the hierarchy of bookmark folders
         folders = {}
@@ -137,9 +137,9 @@
                 parent = row[1]
                 title = row[2]
                 folder = (
-                    BookmarkNode(BookmarkNode.Folder, folders[parent])
+                    BookmarkNode(BookmarkNodeType.Folder, folders[parent])
                     if parent in folders
-                    else BookmarkNode(BookmarkNode.Folder, importRootNode)
+                    else BookmarkNode(BookmarkNodeType.Folder, importRootNode)
                 )
                 folder.title = title.replace("&", "&&")
                 folders[id_] = folder
@@ -174,9 +174,13 @@
                         continue
 
                     if parent in folders:
-                        bookmark = BookmarkNode(BookmarkNode.Bookmark, folders[parent])
+                        bookmark = BookmarkNode(
+                            BookmarkNodeType.Bookmark, folders[parent]
+                        )
                     else:
-                        bookmark = BookmarkNode(BookmarkNode.Bookmark, importRootNode)
+                        bookmark = BookmarkNode(
+                            BookmarkNodeType.Bookmark, importRootNode
+                        )
                     bookmark.url = url.toString()
                     bookmark.title = title.replace("&", "&&")
         except sqlite3.DatabaseError as err:
@@ -186,7 +190,7 @@
             )
             return None
 
-        importRootNode.setType(BookmarkNode.Folder)
+        importRootNode.setType(BookmarkNodeType.Folder)
         if self._id == "firefox":
             importRootNode.title = self.tr("Mozilla Firefox Import")
         else:
--- a/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/HtmlImporter.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/HtmlImporter.py	Sat Jan 06 15:21:02 2024 +0100
@@ -99,13 +99,13 @@
         @return imported bookmarks
         @rtype BookmarkNode
         """
-        from ..BookmarkNode import BookmarkNode
+        from ..BookmarkNode import BookmarkNodeType
         from ..NsHtmlReader import NsHtmlReader
 
         reader = NsHtmlReader()
         importRootNode = reader.read(self.__fileName)
 
-        importRootNode.setType(BookmarkNode.Folder)
+        importRootNode.setType(BookmarkNodeType.Folder)
         if self._id == "html":
             importRootNode.title = self.tr("HTML Import")
         else:
--- a/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/IExplorerImporter.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/IExplorerImporter.py	Sat Jan 06 15:21:02 2024 +0100
@@ -109,20 +109,20 @@
         @return imported bookmarks
         @rtype BookmarkNode
         """
-        from ..BookmarkNode import BookmarkNode
+        from ..BookmarkNode import BookmarkNode, BookmarkNodeType
 
         folders = {}
 
-        importRootNode = BookmarkNode(BookmarkNode.Folder)
+        importRootNode = BookmarkNode(BookmarkNodeType.Folder)
         folders[self.__fileName] = importRootNode
 
         for directory, subdirs, files in os.walk(self.__fileName):
             for subdir in subdirs:
                 path = os.path.join(directory, subdir)
                 folder = (
-                    BookmarkNode(BookmarkNode.Folder, folders[directory])
+                    BookmarkNode(BookmarkNodeType.Folder, folders[directory])
                     if directory in folders
-                    else BookmarkNode(BookmarkNode.Folder, importRootNode)
+                    else BookmarkNode(BookmarkNodeType.Folder, importRootNode)
                 )
                 folder.title = subdir.replace("&", "&&")
                 folders[path] = folder
@@ -144,11 +144,11 @@
                     if url:
                         if directory in folders:
                             bookmark = BookmarkNode(
-                                BookmarkNode.Bookmark, folders[directory]
+                                BookmarkNodeType.Bookmark, folders[directory]
                             )
                         else:
                             bookmark = BookmarkNode(
-                                BookmarkNode.Bookmark, importRootNode
+                                BookmarkNodeType.Bookmark, importRootNode
                             )
                         bookmark.url = url
                         bookmark.title = name.replace("&", "&&")
--- a/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/OperaImporter.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/OperaImporter.py	Sat Jan 06 15:21:02 2024 +0100
@@ -103,7 +103,7 @@
         @return imported bookmarks
         @rtype BookmarkNode
         """
-        from ..BookmarkNode import BookmarkNode
+        from ..BookmarkNode import BookmarkNode, BookmarkNodeType
 
         try:
             with open(self.__fileName, "r", encoding="utf-8") as f:
@@ -117,16 +117,16 @@
 
         folderStack = []
 
-        importRootNode = BookmarkNode(BookmarkNode.Folder)
+        importRootNode = BookmarkNode(BookmarkNodeType.Folder)
         folderStack.append(importRootNode)
 
         for line in contents.splitlines():
             line = line.strip()
             if line == "#FOLDER":
-                node = BookmarkNode(BookmarkNode.Folder, folderStack[-1])
+                node = BookmarkNode(BookmarkNodeType.Folder, folderStack[-1])
                 folderStack.append(node)
             elif line == "#URL":
-                node = BookmarkNode(BookmarkNode.Bookmark, folderStack[-1])
+                node = BookmarkNode(BookmarkNodeType.Bookmark, folderStack[-1])
             elif line == "-":
                 folderStack.pop()
             elif line.startswith("NAME="):
--- a/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/SafariImporter.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/SafariImporter.py	Sat Jan 06 15:21:02 2024 +0100
@@ -105,7 +105,7 @@
         @return imported bookmarks
         @rtype BookmarkNode
         """
-        from ..BookmarkNode import BookmarkNode
+        from ..BookmarkNode import BookmarkNode, BookmarkNodeType
 
         try:
             with open(self.__fileName, "rb") as f:
@@ -117,7 +117,7 @@
             )
             return None
 
-        importRootNode = BookmarkNode(BookmarkNode.Folder)
+        importRootNode = BookmarkNode(BookmarkNodeType.Folder)
         if (
             bookmarksDict["WebBookmarkFileVersion"] == 1
             and bookmarksDict["WebBookmarkType"] == "WebBookmarkTypeList"
@@ -141,11 +141,11 @@
         @param rootNode node to add the bookmarks to
         @type BookmarkNode
         """
-        from ..BookmarkNode import BookmarkNode
+        from ..BookmarkNode import BookmarkNode, BookmarkNodeType
 
         for child in children:
             if child["WebBookmarkType"] == "WebBookmarkTypeList":
-                folder = BookmarkNode(BookmarkNode.Folder, rootNode)
+                folder = BookmarkNode(BookmarkNodeType.Folder, rootNode)
                 folder.title = child["Title"].replace("&", "&&")
                 if "Children" in child:
                     self.__processChildren(child["Children"], folder)
@@ -154,7 +154,7 @@
                 if url.startswith(("place:", "about:")):
                     continue
 
-                bookmark = BookmarkNode(BookmarkNode.Bookmark, rootNode)
+                bookmark = BookmarkNode(BookmarkNodeType.Bookmark, rootNode)
                 bookmark.url = url
                 bookmark.title = child["URIDictionary"]["title"].replace("&", "&&")
 
--- a/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/XbelImporter.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarksImporters/XbelImporter.py	Sat Jan 06 15:21:02 2024 +0100
@@ -141,7 +141,7 @@
         @return imported bookmarks
         @rtype BookmarkNode
         """
-        from ..BookmarkNode import BookmarkNode
+        from ..BookmarkNode import BookmarkNodeType
         from ..XbelReader import XbelReader
 
         reader = XbelReader()
@@ -155,7 +155,7 @@
             ).format(reader.lineNumber(), reader.columnNumber(), reader.errorString())
             return None
 
-        importRootNode.setType(BookmarkNode.Folder)
+        importRootNode.setType(BookmarkNodeType.Folder)
         if self._id == "e5browser":
             importRootNode.title = self.tr("eric Web Browser Import")
         elif self._id == "konqueror":
--- a/src/eric7/WebBrowser/Bookmarks/BookmarksManager.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarksManager.py	Sat Jan 06 15:21:02 2024 +0100
@@ -29,7 +29,7 @@
 from eric7.EricWidgets import EricFileDialog, EricMessageBox
 from eric7.Utilities.AutoSaver import AutoSaver
 
-from .BookmarkNode import BookmarkNode
+from .BookmarkNode import BookmarkNode, BookmarkNodeType, BookmarkTimestampType
 
 BOOKMARKBAR = QT_TRANSLATE_NOOP("BookmarksManager", "Bookmarks Bar")
 BOOKMARKMENU = QT_TRANSLATE_NOOP("BookmarksManager", "Bookmarks Menu")
@@ -164,7 +164,7 @@
         others = []
         for index in range(len(self.__bookmarkRootNode.children()) - 1, -1, -1):
             node = self.__bookmarkRootNode.children()[index]
-            if node.type() == BookmarkNode.Folder:
+            if node.type() == BookmarkNodeType.Folder:
                 if (
                     node.title == self.tr("Toolbar Bookmarks")
                     or node.title == BOOKMARKBAR
@@ -185,13 +185,15 @@
             raise RuntimeError("Error loading bookmarks.")
 
         if self.__toolbar is None:
-            self.__toolbar = BookmarkNode(BookmarkNode.Folder, self.__bookmarkRootNode)
+            self.__toolbar = BookmarkNode(
+                BookmarkNodeType.Folder, self.__bookmarkRootNode
+            )
             self.__toolbar.title = self.tr(BOOKMARKBAR)
         else:
             self.__bookmarkRootNode.add(self.__toolbar)
 
         if self.__menu is None:
-            self.__menu = BookmarkNode(BookmarkNode.Folder, self.__bookmarkRootNode)
+            self.__menu = BookmarkNode(BookmarkNodeType.Folder, self.__bookmarkRootNode)
             self.__menu.title = self.tr(BOOKMARKMENU)
         else:
             self.__bookmarkRootNode.add(self.__menu)
@@ -243,7 +245,9 @@
         if not self.__loaded:
             return
 
-        self.setTimestamp(node, BookmarkNode.TsAdded, QDateTime.currentDateTime())
+        self.setTimestamp(
+            node, BookmarkTimestampType.Added, QDateTime.currentDateTime()
+        )
 
         command = InsertBookmarksCommand(self, parent, node, row)
         self.__commands.push(command)
@@ -307,20 +311,18 @@
         @param node reference to the node to be changed
         @type BookmarkNode
         @param timestampType type of the timestamp to set
-            (BookmarkNode.TsAdded, BookmarkNode.TsModified,
-            BookmarkNode.TsVisited)
-        @type int
+        @type BookmarkTimestampType
         @param timestamp timestamp to set
         @type QDateTime
         """
         if not self.__loaded:
             return
 
-        if timestampType == BookmarkNode.TsAdded:
+        if timestampType == BookmarkTimestampType.Added:
             node.added = timestamp
-        elif timestampType == BookmarkNode.TsModified:
+        elif timestampType == BookmarkTimestampType.Modified:
             node.modified = timestamp
-        elif timestampType == BookmarkNode.TsVisited:
+        elif timestampType == BookmarkTimestampType.Visited:
             node.visited = timestamp
         self.__saveTimer.changeOccurred()
 
@@ -502,9 +504,9 @@
         """
         bm = None
         for node in startNode.children():
-            if node.type() == BookmarkNode.Folder:
+            if node.type() == BookmarkNodeType.Folder:
                 bm = self.__searchBookmark(url, node)
-            elif node.type() == BookmarkNode.Bookmark and node.url == url:
+            elif node.type() == BookmarkNodeType.Bookmark and node.url == url:
                 bm = node
             if bm is not None:
                 return bm
@@ -549,9 +551,9 @@
         """
         bm = []
         for node in startNode.children():
-            if node.type() == BookmarkNode.Folder:
+            if node.type() == BookmarkNodeType.Folder:
                 bm.extend(self.__searchBookmarks(url, node))
-            elif node.type() == BookmarkNode.Bookmark and node.url == url:
+            elif node.type() == BookmarkNodeType.Bookmark and node.url == url:
                 bm.append(node)
         return bm
 
--- a/src/eric7/WebBrowser/Bookmarks/BookmarksMenu.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarksMenu.py	Sat Jan 06 15:21:02 2024 +0100
@@ -14,7 +14,7 @@
 from eric7.EricWidgets.EricModelMenu import EricModelMenu
 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
 
-from .BookmarkNode import BookmarkNode
+from .BookmarkNode import BookmarkNodeType
 from .BookmarksModel import BookmarksModel
 
 
@@ -111,7 +111,7 @@
         for i in range(parent.model().rowCount(parent)):
             child = parent.model().index(i, 0, parent)
 
-            if child.data(BookmarksModel.TypeRole) == BookmarkNode.Bookmark:
+            if child.data(BookmarksModel.TypeRole) == BookmarkNodeType.Bookmark:
                 hasBookmarks = True
                 break
 
@@ -140,7 +140,7 @@
         for i in range(parent.model().rowCount(parent)):
             child = parent.model().index(i, 0, parent)
 
-            if child.data(BookmarksModel.TypeRole) != BookmarkNode.Bookmark:
+            if child.data(BookmarksModel.TypeRole) != BookmarkNodeType.Bookmark:
                 continue
 
             if i == 0:
@@ -345,7 +345,7 @@
         for i in range(parent.model().rowCount(parent)):
             child = parent.model().index(i, 0, parent)
 
-            if child.data(BookmarksModel.TypeRole) == BookmarkNode.Bookmark:
+            if child.data(BookmarksModel.TypeRole) == BookmarkNodeType.Bookmark:
                 hasBookmarks = True
                 break
 
--- a/src/eric7/WebBrowser/Bookmarks/BookmarksModel.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarksModel.py	Sat Jan 06 15:21:02 2024 +0100
@@ -196,14 +196,14 @@
         @return bookmark data
         @rtype Any
         """
-        from .BookmarkNode import BookmarkNode
+        from .BookmarkNode import BookmarkNodeType
 
         if not index.isValid() or index.model() != self:
             return None
 
         bookmarkNode = self.node(index)
         if role in [Qt.ItemDataRole.EditRole, Qt.ItemDataRole.DisplayRole]:
-            if bookmarkNode.type() == BookmarkNode.Separator:
+            if bookmarkNode.type() == BookmarkNodeType.Separator:
                 if index.column() == 0:
                     return 50 * "\xB7"
                 elif index.column() == 1:
@@ -227,10 +227,10 @@
             return bookmarkNode.type()
 
         elif role == BookmarksModel.SeparatorRole:
-            return bookmarkNode.type() == BookmarkNode.Separator
+            return bookmarkNode.type() == BookmarkNodeType.Separator
 
         elif role == Qt.ItemDataRole.DecorationRole and index.column() == 0:
-            if bookmarkNode.type() == BookmarkNode.Folder:
+            if bookmarkNode.type() == BookmarkNodeType.Folder:
                 return EricPixmapCache.getIcon("dirOpen")
 
             return WebBrowserWindow.icon(QUrl(bookmarkNode.url))
@@ -337,7 +337,7 @@
         @return flag indicating the presence of children
         @rtype bool
         """
-        from .BookmarkNode import BookmarkNode
+        from .BookmarkNode import BookmarkNodeType
 
         if parent is None:
             parent = QModelIndex()
@@ -346,7 +346,7 @@
             return True
 
         parentNode = self.node(parent)
-        return parentNode.type() == BookmarkNode.Folder
+        return parentNode.type() == BookmarkNodeType.Folder
 
     def flags(self, index):
         """
@@ -357,7 +357,7 @@
         @return flags
         @rtype Qt.ItemFlags
         """
-        from .BookmarkNode import BookmarkNode
+        from .BookmarkNode import BookmarkNodeType
 
         if not index.isValid():
             return Qt.ItemFlag.NoItemFlags
@@ -374,8 +374,8 @@
 
         flags |= Qt.ItemFlag.ItemIsDragEnabled
 
-        if (index.column() == 0 and type_ != BookmarkNode.Separator) or (
-            index.column() == 1 and type_ == BookmarkNode.Bookmark
+        if (index.column() == 0 and type_ != BookmarkNodeType.Separator) or (
+            index.column() == 1 and type_ == BookmarkNodeType.Bookmark
         ):
             flags |= Qt.ItemFlag.ItemIsEditable
 
@@ -449,7 +449,7 @@
         @return flag indicating successful acceptance of the data
         @rtype bool
         """
-        from .BookmarkNode import BookmarkNode
+        from .BookmarkNode import BookmarkNode, BookmarkNodeType
         from .XbelReader import XbelReader
 
         if action == Qt.DropAction.IgnoreAction:
@@ -464,7 +464,7 @@
             if not data.hasUrls():
                 return False
 
-            node = BookmarkNode(BookmarkNode.Bookmark, parentNode)
+            node = BookmarkNode(BookmarkNodeType.Bookmark, parentNode)
             node.url = bytes(data.urls()[0].toEncoded()).decode()
 
             if data.hasText():
--- a/src/eric7/WebBrowser/Bookmarks/NsHtmlReader.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/NsHtmlReader.py	Sat Jan 06 15:21:02 2024 +0100
@@ -13,7 +13,7 @@
 
 from eric7 import Utilities
 
-from .BookmarkNode import BookmarkNode
+from .BookmarkNode import BookmarkNode, BookmarkNodeType
 
 
 class NsHtmlReader(QObject):
@@ -55,14 +55,14 @@
         else:
             f = QFile(fileNameOrDevice)
             if not f.exists():
-                return BookmarkNode(BookmarkNode.Root)
+                return BookmarkNode(BookmarkNodeType.Root)
             f.open(QIODevice.OpenModeFlag.ReadOnly)
             dev = f
 
         folders = []
         lastNode = None
 
-        root = BookmarkNode(BookmarkNode.Root)
+        root = BookmarkNode(BookmarkNodeType.Root)
         folders.append(root)
 
         while not dev.atEnd():
@@ -81,7 +81,7 @@
                 # folder definition
                 arguments = match.group(1)
                 name = match.group(2)
-                node = BookmarkNode(BookmarkNode.Folder, folders[-1])
+                node = BookmarkNode(BookmarkNodeType.Folder, folders[-1])
                 node.title = Utilities.html_udecode(name)
                 node.expanded = self.__foldedRx.search(arguments) is None
                 addedMatch = self.__addedRx.search(arguments)
@@ -98,7 +98,7 @@
                 # bookmark definition
                 arguments = match.group(1)
                 name = match.group(2)
-                node = BookmarkNode(BookmarkNode.Bookmark, folders[-1])
+                node = BookmarkNode(BookmarkNodeType.Bookmark, folders[-1])
                 node.title = Utilities.html_udecode(name)
                 match1 = self.__urlRx.search(arguments)
                 if match1 is not None:
@@ -121,6 +121,6 @@
 
             elif match.re is self.__separatorRx:
                 # separator definition
-                BookmarkNode(BookmarkNode.Separator, folders[-1])
+                BookmarkNode(BookmarkNodeType.Separator, folders[-1])
 
         return root
--- a/src/eric7/WebBrowser/Bookmarks/NsHtmlWriter.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/NsHtmlWriter.py	Sat Jan 06 15:21:02 2024 +0100
@@ -11,7 +11,7 @@
 
 from eric7 import Utilities
 
-from .BookmarkNode import BookmarkNode
+from .BookmarkNode import BookmarkNodeType
 
 
 class NsHtmlWriter(QObject):
@@ -71,7 +71,7 @@
             "\n"
             "<DL><p>\n"
         )
-        if root.type() == BookmarkNode.Root:
+        if root.type() == BookmarkNodeType.Root:
             for child in root.children():
                 self.__writeItem(child, self.indentSize)
         else:
@@ -88,11 +88,11 @@
         @param indent size of the indentation
         @type int
         """
-        if node.type() == BookmarkNode.Folder:
+        if node.type() == BookmarkNodeType.Folder:
             self.__writeFolder(node, indent)
-        elif node.type() == BookmarkNode.Bookmark:
+        elif node.type() == BookmarkNodeType.Bookmark:
             self.__writeBookmark(node, indent)
-        elif node.type() == BookmarkNode.Separator:
+        elif node.type() == BookmarkNodeType.Separator:
             self.__writeSeparator(indent)
 
     def __writeSeparator(self, indent):
--- a/src/eric7/WebBrowser/Bookmarks/XbelReader.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/XbelReader.py	Sat Jan 06 15:21:02 2024 +0100
@@ -18,7 +18,7 @@
     QXmlStreamReader,
 )
 
-from .BookmarkNode import BookmarkNode
+from .BookmarkNode import BookmarkNode, BookmarkNodeType
 
 
 class XmlEntityResolver(QXmlStreamEntityResolver):
@@ -69,11 +69,11 @@
         else:
             f = QFile(fileNameOrDevice)
             if not f.exists():
-                return BookmarkNode(BookmarkNode.Root)
+                return BookmarkNode(BookmarkNodeType.Root)
             f.open(QIODevice.OpenModeFlag.ReadOnly)
             self.setDevice(f)
 
-        root = BookmarkNode(BookmarkNode.Root)
+        root = BookmarkNode(BookmarkNodeType.Root)
         while not self.atEnd():
             self.readNext()
             if self.isStartElement():
@@ -124,7 +124,7 @@
         if not self.isStartElement() and self.name() != "folder":
             return
 
-        folder = BookmarkNode(BookmarkNode.Folder, node)
+        folder = BookmarkNode(BookmarkNodeType.Folder, node)
         folder.expanded = self.attributes().value("folded") == "no"
         folder.added = QDateTime.fromString(
             self.attributes().value("added"), Qt.DateFormat.ISODate
@@ -182,7 +182,7 @@
         @param node reference to the bookmark node the separator belongs to
         @type BookmarkNode
         """
-        sep = BookmarkNode(BookmarkNode.Separator, node)
+        sep = BookmarkNode(BookmarkNodeType.Separator, node)
         sep.added = QDateTime.fromString(
             self.attributes().value("added"), Qt.DateFormat.ISODate
         )
@@ -209,7 +209,7 @@
         if not self.isStartElement() and self.name() != "bookmark":
             return
 
-        bookmark = BookmarkNode(BookmarkNode.Bookmark, node)
+        bookmark = BookmarkNode(BookmarkNodeType.Bookmark, node)
         bookmark.url = self.attributes().value("href")
         bookmark.added = QDateTime.fromString(
             self.attributes().value("added"), Qt.DateFormat.ISODate
--- a/src/eric7/WebBrowser/Bookmarks/XbelWriter.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/XbelWriter.py	Sat Jan 06 15:21:02 2024 +0100
@@ -9,7 +9,7 @@
 
 from PyQt6.QtCore import QFile, QIODevice, Qt, QXmlStreamWriter
 
-from .BookmarkNode import BookmarkNode
+from .BookmarkNode import BookmarkNodeType
 
 
 class XbelWriter(QXmlStreamWriter):
@@ -60,7 +60,7 @@
         self.writeDTD("<!DOCTYPE xbel>")
         self.writeStartElement("xbel")
         self.writeAttribute("version", "1.0")
-        if root.type() == BookmarkNode.Root:
+        if root.type() == BookmarkNodeType.Root:
             for child in root.children():
                 self.__writeItem(child)
         else:
@@ -76,7 +76,7 @@
         @param node reference to the node to be written
         @type BookmarkNode
         """
-        if node.type() == BookmarkNode.Folder:
+        if node.type() == BookmarkNodeType.Folder:
             self.writeStartElement("folder")
             if node.added.isValid():
                 self.writeAttribute("added", node.added.toString(Qt.DateFormat.ISODate))
@@ -85,7 +85,7 @@
             for child in node.children():
                 self.__writeItem(child)
             self.writeEndElement()
-        elif node.type() == BookmarkNode.Bookmark:
+        elif node.type() == BookmarkNodeType.Bookmark:
             self.writeStartElement("bookmark")
             if node.url:
                 self.writeAttribute("href", node.url)
@@ -104,7 +104,7 @@
             if node.desc:
                 self.writeTextElement("desc", node.desc)
             self.writeEndElement()
-        elif node.type() == BookmarkNode.Separator:
+        elif node.type() == BookmarkNodeType.Separator:
             self.writeEmptyElement("separator")
             if node.added.isValid():
                 self.writeAttribute("added", node.added.toString(Qt.DateFormat.ISODate))
--- a/src/eric7/WebBrowser/TabManager/TabManagerWidget.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/TabManager/TabManagerWidget.py	Sat Jan 06 15:21:02 2024 +0100
@@ -123,7 +123,7 @@
             as value
         """
         from ..Bookmarks.AddBookmarkDialog import AddBookmarkDialog
-        from ..Bookmarks.BookmarkNode import BookmarkNode
+        from ..Bookmarks.BookmarkNode import BookmarkNode, BookmarkNodeType
 
         if not browsersDict:
             return
@@ -140,7 +140,7 @@
         for mainWin in browsersDict:
             for browser in browsersDict[mainWin]:
                 if not browser.url().isEmpty() and browser.url().scheme() != "eric":
-                    bookmark = BookmarkNode(BookmarkNode.Bookmark)
+                    bookmark = BookmarkNode(BookmarkNodeType.Bookmark)
                     bookmark.url = bytes(browser.url().toEncoded()).decode()
                     bookmark.title = browser.title()
 
--- a/src/eric7/WebBrowser/UrlBar/UrlBar.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/UrlBar/UrlBar.py	Sat Jan 06 15:21:02 2024 +0100
@@ -136,7 +136,7 @@
         """
         Private slot to check the current URL for the bookmarked state.
         """
-        from eric7.WebBrowser.Bookmarks.BookmarkNode import BookmarkNode
+        from eric7.WebBrowser.Bookmarks.BookmarkNode import BookmarkTimestampType
 
         manager = self.__mw.bookmarksManager()
         if manager.bookmarkForUrl(self.__browser.url()) is not None:
@@ -144,7 +144,7 @@
             bookmarks = manager.bookmarksForUrl(self.__browser.url())
             for bookmark in bookmarks:
                 manager.setTimestamp(
-                    bookmark, BookmarkNode.TsVisited, QDateTime.currentDateTime()
+                    bookmark, BookmarkTimestampType.Visited, QDateTime.currentDateTime()
                 )
         elif self.__mw.speedDial().pageForUrl(self.__browser.url()).url != "":
             self.__bookmarkAction.setIcon(self.__bmActiveIcon)
--- a/src/eric7/WebBrowser/WebBrowserView.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/WebBrowserView.py	Sat Jan 06 15:21:02 2024 +0100
@@ -1940,13 +1940,13 @@
         @param lastModified last modified value
         @type str
         """
-        from .Bookmarks.BookmarkNode import BookmarkNode
+        from .Bookmarks.BookmarkNode import BookmarkTimestampType
 
         modified = QDateTime.fromString(lastModified, "MM/dd/yyyy hh:mm:ss")
         if modified.isValid():
             manager = WebBrowserWindow.bookmarksManager()
             for bookmark in manager.bookmarksForUrl(self.url()):
-                manager.setTimestamp(bookmark, BookmarkNode.TsModified, modified)
+                manager.setTimestamp(bookmark, BookmarkTimestampType.Modified, modified)
 
     def isLoading(self):
         """
--- a/src/eric7/WebBrowser/WebBrowserWindow.py	Fri Jan 05 16:04:03 2024 +0100
+++ b/src/eric7/WebBrowser/WebBrowserWindow.py	Sat Jan 06 15:21:02 2024 +0100
@@ -3155,14 +3155,14 @@
         @param res result of the JavaScript
         @type list
         """
-        from .Bookmarks.BookmarkNode import BookmarkNode
+        from .Bookmarks.BookmarkNode import BookmarkNode, BookmarkNodeType
 
         description = ""
         for meta in res:
             if meta["name"] == "description":
                 description = meta["content"]
 
-        bookmark = BookmarkNode(BookmarkNode.Bookmark)
+        bookmark = BookmarkNode(BookmarkNodeType.Bookmark)
         bookmark.url = url
         bookmark.title = title
         bookmark.desc = description

eric ide

mercurial