Sat, 06 Jan 2024 15:21:02 +0100
Changed some state/mode definitiuons to an enum.Enum class and corrected some code style and formatting issues.
--- 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