--- a/src/eric7/Preferences/__init__.py Sun Jun 30 15:37:49 2024 +0200 +++ b/src/eric7/Preferences/__init__.py Sun Jun 30 17:58:31 2024 +0200 @@ -47,8 +47,9 @@ except ImportError: QWebEngineSettings = None -from eric7 import Globals +from eric7 import EricUtilities, Globals from eric7.EricNetwork.EricFtp import EricFtpProxyType +from eric7.EricUtilities import toBool, toByteArray, toDict, toList # noqa from eric7.EricWidgets import EricFileDialog from eric7.EricWidgets.EricApplication import ericApp from eric7.EricWidgets.EricIconBar import EricIconBar @@ -1959,7 +1960,7 @@ @return flag indicating the configured status @rtype bool """ - return toBool(Prefs.settings.value("General/Configured", False)) + return EricUtilities.toBool(Prefs.settings.value("General/Configured", False)) def setConfigured(): @@ -2047,13 +2048,13 @@ "NetworkPortIncrement", "PythonCallTraceOptimization", ): - return toBool( + return EricUtilities.toBool( Prefs.settings.value("Debugger/" + key, Prefs.debuggerDefaults[key]) ) elif key in ("PassiveDbgPort", "MaxVariableSize", "RecentNumber", "NetworkPort"): return int(Prefs.settings.value("Debugger/" + key, Prefs.debuggerDefaults[key])) elif key in ["AllowedHosts"]: - return toList( + return EricUtilities.toList( Prefs.settings.value("Debugger/" + key, Prefs.debuggerDefaults[key]) ) elif key in ["PythonInterpreter", "Python3Interpreter"]: @@ -2139,7 +2140,9 @@ ): return QColor(Prefs.settings.value("Python/" + key, Prefs.pythonDefaults[key])) elif key in ("DisViewerExpandCodeInfoDetails"): - return toBool(Prefs.settings.value("Python/" + key, Prefs.pythonDefaults[key])) + return EricUtilities.toBool( + Prefs.settings.value("Python/" + key, Prefs.pythonDefaults[key]) + ) else: return Prefs.settings.value("Python/" + key, Prefs.pythonDefaults[key]) @@ -2263,7 +2266,9 @@ "CombinedLeftRightSidebar", "LoadUnknownMimeTypeFiles", ]: - return toBool(Prefs.settings.value("UI/" + key, Prefs.uiDefaults[key])) + return EricUtilities.toBool( + Prefs.settings.value("UI/" + key, Prefs.uiDefaults[key]) + ) elif key in [ "TabViewManagerFilenameLength", "CaptionFilenameLength", @@ -2336,7 +2341,9 @@ "TextMimeTypes", "TextFilePatterns", ]: - return toList(Prefs.settings.value("UI/" + key, Prefs.uiDefaults[key])) + return EricUtilities.toList( + Prefs.settings.value("UI/" + key, Prefs.uiDefaults[key]) + ) else: return Prefs.settings.value("UI/" + key, Prefs.uiDefaults[key]) @@ -2390,9 +2397,13 @@ @rtype Any """ if key in ("Path",): - return toList(Prefs.settings.value("UI/Icons/" + key, Prefs.iconsDefaults[key])) + return EricUtilities.toList( + Prefs.settings.value("UI/Icons/" + key, Prefs.iconsDefaults[key]) + ) elif key in ("PreferVectorIcons",): - return toBool(Prefs.settings.value("UI/Icons/" + key, Prefs.iconsDefaults[key])) + return EricUtilities.toBool( + Prefs.settings.value("UI/Icons/" + key, Prefs.iconsDefaults[key]) + ) else: return Prefs.settings.value("UI/Icons/" + key, Prefs.iconsDefaults[key]) @@ -2419,7 +2430,7 @@ @rtype Any """ if key in ["AutoStartServer", "TryOtherPorts", "AutoAcceptConnections"]: - return toBool( + return EricUtilities.toBool( Prefs.settings.value("Cooperation/" + key, Prefs.cooperationDefaults[key]) ) elif key in ["ServerPort", "MaxPortsToTry"]: @@ -2427,7 +2438,7 @@ Prefs.settings.value("Cooperation/" + key, Prefs.cooperationDefaults[key]) ) elif key in ["BannedUsers"]: - return toList( + return EricUtilities.toList( Prefs.settings.value("Cooperation/" + key, Prefs.cooperationDefaults[key]) ) else: @@ -2525,7 +2536,9 @@ "PreviewQssFileNameExtensions", "FullSpellCheckExtensions", ]: - return toList(Prefs.settings.value("Editor/" + key, Prefs.editorDefaults[key])) + return EricUtilities.toList( + Prefs.settings.value("Editor/" + key, Prefs.editorDefaults[key]) + ) elif key == "TabIndentOverride": overrideStr = Prefs.settings.value("Editor/" + key, Prefs.editorDefaults[key]) if overrideStr: @@ -2537,7 +2550,9 @@ int(Prefs.settings.value("Editor/" + key, Prefs.editorDefaults[key])) ) else: - return toBool(Prefs.settings.value("Editor/" + key, Prefs.editorDefaults[key])) + return EricUtilities.toBool( + Prefs.settings.value("Editor/" + key, Prefs.editorDefaults[key]) + ) def setEditor(key, value): @@ -2777,7 +2792,7 @@ @return the requested editor setting @rtype Any """ - return toBool( + return EricUtilities.toBool( Prefs.settings.value("Editor/Typing/" + key, Prefs.editorTypingDefaults[key]) ) @@ -2825,7 +2840,7 @@ "ODT/OnlyStylesUsed", "ODT/UseTabs", ]: - return toBool( + return EricUtilities.toBool( Prefs.settings.value( "Editor/Exporters/" + key, Prefs.editorExporterDefaults[key] ) @@ -2873,7 +2888,7 @@ @rtype Any """ if key in ["ColorMode", "FirstPageFirst"]: - return toBool( + return EricUtilities.toBool( Prefs.settings.value("Printer/" + key, Prefs.printerDefaults[key]) ) elif key in ["Magnification", "Orientation", "PageSize", "Resolution"]: @@ -2925,7 +2940,9 @@ elif key in ["LastVirtualEnvironment"]: return Prefs.settings.value("Shell/" + key, Prefs.shellDefaults[key]) else: - return toBool(Prefs.settings.value("Shell/" + key, Prefs.shellDefaults[key])) + return EricUtilities.toBool( + Prefs.settings.value("Shell/" + key, Prefs.shellDefaults[key]) + ) def setShell(key, value): @@ -2957,11 +2974,11 @@ if key in ["RecentNumber"]: return int(Prefs.settings.value("Project/" + key, Prefs.projectDefaults[key])) elif key in ["DebugClientsHistory", "DebuggerInterpreterHistory"]: - return toList( + return EricUtilities.toList( Prefs.settings.value("Project/" + key, Prefs.projectDefaults[key]) ) else: - return toBool( + return EricUtilities.toBool( Prefs.settings.value("Project/" + key, Prefs.projectDefaults[key]) ) @@ -2999,7 +3016,9 @@ except KeyError: default = list(Prefs.projectBrowsersDefaults["allBrowsers"][:]) - return toList(Prefs.settings.value("Project/BrowsersEnabled/" + key, default)) + return EricUtilities.toList( + Prefs.settings.value("Project/BrowsersEnabled/" + key, default) + ) def setProjectBrowsers(key, value): @@ -3078,7 +3097,7 @@ Prefs.settings.value("MultiProject/" + key, Prefs.multiProjectDefaults[key]) ) elif key in ["OpenMainAutomatically", "TimestampFile"]: - return toBool( + return EricUtilities.toBool( Prefs.settings.value("MultiProject/" + key, Prefs.multiProjectDefaults[key]) ) else: @@ -3131,7 +3150,9 @@ if key in ("HelpViewerType",): return int(Prefs.settings.value("Help/" + key, Prefs.helpDefaults[key])) elif key in ("QtHelpSearchNewOnStart", "ForceQTextBrowser"): - return toBool(Prefs.settings.value("Help/" + key, Prefs.helpDefaults[key])) + return EricUtilities.toBool( + Prefs.settings.value("Help/" + key, Prefs.helpDefaults[key]) + ) else: return Prefs.settings.value("Help/" + key, Prefs.helpDefaults[key]) @@ -3200,7 +3221,7 @@ if download["URL"] is None: download["URL"] = QUrl() download["Location"] = Prefs.settings.value("Location") - download["Done"] = toBool(Prefs.settings.value("Done")) + download["Done"] = EricUtilities.toBool(Prefs.settings.value("Done")) download["PageURL"] = Prefs.settings.value("PageURL") if download["PageURL"] is None: download["PageURL"] = QUrl() @@ -3331,7 +3352,7 @@ "ReadingFromCanvasEnabled", "ForceDarkMode", ]: - return toBool( + return EricUtilities.toBool( Prefs.settings.value("WebBrowser/" + key, Prefs.webBrowserDefaults[key]) ) elif key in [ @@ -3341,7 +3362,7 @@ "AdBlockExceptions", "SpellCheckLanguages", ]: - return toList( + return EricUtilities.toList( Prefs.settings.value("WebBrowser/" + key, Prefs.webBrowserDefaults[key]) ) elif key in ["AutoScrollDivider"]: @@ -3493,7 +3514,9 @@ "PySide2FromImports", "PySide6FromImports", ]: - return toBool(Prefs.settings.value("Qt/" + key, Prefs.qtDefaults[key])) + return EricUtilities.toBool( + Prefs.settings.value("Qt/" + key, Prefs.qtDefaults[key]) + ) else: return Prefs.settings.value("Qt/" + key, Prefs.qtDefaults[key]) @@ -3535,12 +3558,14 @@ "SavePasswords", "UseGoogleMailOAuth2", ]: - return toBool(Prefs.settings.value("User/" + key, Prefs.userDefaults[key])) + return EricUtilities.toBool( + Prefs.settings.value("User/" + key, Prefs.userDefaults[key]) + ) elif key == "MailServerEncryption": # convert from old key 'MailServerUseTLS' val = Prefs.settings.value("User/" + key) if val is None: - if toBool(Prefs.settings.value("User/MailServerUseTLS")): + if EricUtilities.toBool(Prefs.settings.value("User/MailServerUseTLS")): val = "TLS" else: val = Prefs.userDefaults[key] @@ -3578,7 +3603,9 @@ if key in ["StatusMonitorInterval", "CommitMessages"]: return int(Prefs.settings.value("VCS/" + key, Prefs.vcsDefaults[key])) else: - return toBool(Prefs.settings.value("VCS/" + key, Prefs.vcsDefaults[key])) + return EricUtilities.toBool( + Prefs.settings.value("VCS/" + key, Prefs.vcsDefaults[key]) + ) def setVCS(key, value): @@ -3618,7 +3645,9 @@ elif key in [ "ClearOnFileClose", ]: - return toBool(Prefs.settings.value("Tasks/" + key, Prefs.tasksDefaults[key])) + return EricUtilities.toBool( + Prefs.settings.value("Tasks/" + key, Prefs.tasksDefaults[key]) + ) else: return Prefs.settings.value("Tasks/" + key, Prefs.tasksDefaults[key]) @@ -3663,7 +3692,7 @@ ) return f else: - return toBool( + return EricUtilities.toBool( Prefs.settings.value("Templates/" + key, Prefs.templatesDefaults[key]) ) @@ -3703,13 +3732,13 @@ ) ) elif key in ["HiddenPlugins"]: - return toList( + return EricUtilities.toList( Prefs.settings.value( "PluginManager/" + key, Prefs.pluginManagerDefaults[key] ) ) else: - return toBool( + return EricUtilities.toBool( Prefs.settings.value( "PluginManager/" + key, Prefs.pluginManagerDefaults[key] ) @@ -3799,11 +3828,11 @@ @rtype Any """ if key in ("IncludeInSyntaxCheck", "IgnoreStarImportWarnings"): - return toBool( + return EricUtilities.toBool( Prefs.settings.value("Py3Flakes/" + key, Prefs.pyflakesDefaults[key]) ) elif key in ("AdditionalBuiltins",): - return toList( + return EricUtilities.toList( Prefs.settings.value("Py3Flakes/" + key, Prefs.pyflakesDefaults[key]) ) else: @@ -3867,7 +3896,9 @@ "MarkPositionWhenHidden", "AskOnShutdown", ]: - return toBool(Prefs.settings.value("IRC/" + key, Prefs.ircDefaults[key])) + return EricUtilities.toBool( + Prefs.settings.value("IRC/" + key, Prefs.ircDefaults[key]) + ) elif key in ["AutoUserInfoMax", "AutoUserInfoInterval"]: return int(Prefs.settings.value("IRC/" + key, Prefs.ircDefaults[key])) else: @@ -3906,7 +3937,7 @@ "OpenReadOnly", "HighlightChanges", ]: - return toBool( + return EricUtilities.toBool( Prefs.settings.value("HexEditor/" + key, Prefs.hexEditorDefaults[key]) ) elif key in ["Font"]: @@ -3977,7 +4008,7 @@ @rtype Any """ if key in ["ShowInfoOnOpenParenthesis"]: - return toBool( + return EricUtilities.toBool( Prefs.settings.value( "CodeDocumentationViewer/" + key, Prefs.docuViewerDefaults[key] ) @@ -4038,7 +4069,9 @@ "ExcludeCondaEnvironments", "VulnerabilityCheckEnabled", ): - return toBool(Prefs.settings.value("Pip/" + key, Prefs.pipDefaults[key])) + return EricUtilities.toBool( + Prefs.settings.value("Pip/" + key, Prefs.pipDefaults[key]) + ) elif key in ("VulnerabilityDbCacheValidity",): return int(Prefs.settings.value("Pip/" + key, Prefs.pipDefaults[key])) else: @@ -4085,7 +4118,7 @@ "EnableManualDeviceSelection", "NtpDaylight", ]: - return toBool( + return EricUtilities.toBool( Prefs.settings.value("MicroPython/" + key, Prefs.microPythonDefaults[key]) ) elif key in ( @@ -4149,7 +4182,7 @@ "JediCalltipsEnabled", "MouseClickEnabled", ]: - return toBool( + return EricUtilities.toBool( Prefs.settings.value("AssistantJedi/" + key, Prefs.jediDefaults[key]) ) else: @@ -4186,7 +4219,7 @@ "PdfViewerOpenRecentInNewWindow", "PdfSearchHighlightAll", ): - return toBool( + return EricUtilities.toBool( Prefs.settings.value("PdfViewer/" + key, Prefs.pdfViewerDefaults[key]) ) elif key in ("PdfViewerZoomFactor",): @@ -4231,7 +4264,7 @@ Prefs.settings.value(f"{prefix}{key}", Prefs.ericServerDefaults[key]) ) elif key in ("AutostartShell",): - return toBool( + return EricUtilities.toBool( Prefs.settings.value(f"{prefix}{key}", Prefs.ericServerDefaults[key]) ) elif key in ("ConnectionProfiles",): @@ -4271,7 +4304,7 @@ @rtype Any """ if key in ["MainMaximized"]: - return toBool( + return EricUtilities.toBool( Prefs.settings.value("Geometry/" + key, Prefs.geometryDefaults[key]) ) else: @@ -4327,70 +4360,6 @@ Prefs.settings.setValue("Geometry/" + key, Prefs.geometryDefaults[key]) -def toBool(value): - """ - Module function to convert a value to bool. - - @param value value to be converted - @type Any - @return converted data - @rtype bool - """ - if value in ["true", "1", "True"]: - return True - elif value in ["false", "0", "False"]: - return False - else: - return bool(value) - - -def toList(value): - """ - Module function to convert a value to a list. - - @param value value to be converted - @type list, None or Any - @return converted data - @rtype list - """ - if value is None: - return [] - elif not isinstance(value, list): - return [value] - else: - return value - - -def toByteArray(value): - """ - Module function to convert a value to a byte array. - - @param value value to be converted - @type QByteArray or None - @return converted data - @rtype QByteArray - """ - if value is None: - return QByteArray() - else: - return value - - -def toDict(value): - """ - Module function to convert a value to a dictionary. - - @param value value to be converted - @type dict or None - @return converted data - @rtype dict - """ - if value is None: - return {} - else: - return value - - def convertPasswords(oldPassword, newPassword): """ Module function to convert all passwords.