--- a/eric6/Preferences/__init__.py Sun Jul 05 11:11:24 2020 +0200 +++ b/eric6/Preferences/__init__.py Sun Oct 18 12:35:30 2020 +0200 @@ -16,7 +16,6 @@ 'from Preferences import *' to import it. """ - import ast import os import fnmatch @@ -127,6 +126,7 @@ "BrowsersListContentsByOccurrence": False, "BrowsersListHiddenFiles": False, "BrowsersFileFilters": "*.py[co];*.so;*.dll", + "BrowserShowCoding": True, "LogViewerAutoRaise": True, "LogViewerStdoutFilter": [], "LogViewerStderrFilter": [], @@ -496,6 +496,11 @@ "ShowMarkerCoverage": True, "ShowMarkerSearch": True, + "ShowSourceOutline": True, + "SourceOutlineWidth": 200, + "SourceOutlineStepSize": 50, + "SourceOutlineShowCoding": True, + # All (most) lexers "AllFoldCompact": True, @@ -981,7 +986,7 @@ "FlashCookiesWhitelist": [], "FlashCookiesBlacklist": [], "FlashCookiesDataPath": flashDataPathForOS(), - # PIM: identical to helpDefaults + # PIM: "PimFullName": "", "PimFirstName": "", "PimLastName": "", @@ -1239,6 +1244,7 @@ "AutoUpdate": False, "StatusMonitorInterval": 30, "MonitorLocalStatus": False, + "ShowVcsToolbar": True, } # defaults for tasks related stuff @@ -1247,11 +1253,15 @@ "TasksWarningMarkers": "WARN" + "ING:", "TasksTodoMarkers": "TO" + "DO:", "TasksNoteMarkers": "NO" + "TE:", + "TasksTestMarkers": "TE" + "ST:", + "TasksDocuMarkers": "DO" + "CU:", # needed to keep it from being recognized as a task "TasksFixmeColor": QColor("#FFA0A0"), "TasksWarningColor": QColor("#FFFFA0"), "TasksTodoColor": QColor("#A0FFA0"), "TasksNoteColor": QColor("#A0A0FF"), + "TasksTestColor": QColor("#FFD000"), + "TasksDocuColor": QColor("#FFA0FF"), "ClearOnFileClose": True, } @@ -1425,7 +1435,9 @@ # defaults for pip pipDefaults = { - "PipSearchIndex": "", # used by the search command + "PipSearchIndex": "", # used by the search command + "ExcludeCondaEnvironments": True, + # don't show conda environments in selector } # defaults for MicroPython @@ -1462,6 +1474,16 @@ microPythonDefaults["ColorScheme"] = "xterm" else: microPythonDefaults["ColorScheme"] = "Ubuntu" + + # defaults for Python specific settings + pythonDefaults = { + "ASTViewerErrorColor": QColor(Qt.darkRed), + + "DisViewerErrorColor": QColor(Qt.darkRed), + "DisViewerCurrentColor": QColor(Qt.darkMagenta), + "DisViewerLabeledColor": QColor(Qt.darkGreen), + "DisViewerExpandCodeInfoDetails": False, + } def readToolGroups(prefClass=Prefs): @@ -1788,8 +1810,18 @@ else: exts.append(".{0}".format(ext)) return exts - - return None + elif key in ( + "ASTViewerErrorColor", "DisViewerErrorColor", + "DisViewerCurrentColor", "DisViewerLabeledColor", + ): + return QColor(prefClass.settings.value( + "Python/" + key, prefClass.pythonDefaults[key])) + elif key in ("DisViewerExpandCodeInfoDetails"): + return toBool(prefClass.settings.value( + "Python/" + key, prefClass.pythonDefaults[key])) + else: + return prefClass.settings.value( + "Python/" + key, prefClass.pythonDefaults[key]) def setPython(key, value, prefClass=Prefs): @@ -1802,6 +1834,17 @@ """ if key == "Python3Extensions": setDebugger(key, value, prefClass) + elif key in ( + "ASTViewerErrorColor", "DisViewerErrorColor", + "DisViewerCurrentColor", "DisViewerLabeledColor", + ): + if value.alpha() < 255: + val = "#{0:8x}".format(value.rgba()) + else: + val = value.name() + prefClass.settings.setValue("Python/" + key, val) + else: + prefClass.settings.setValue("Python/" + key, value) def getUILanguage(prefClass=Prefs): @@ -1863,7 +1906,7 @@ """ if key in ["BrowsersListFoldersFirst", "BrowsersHideNonPublic", "BrowsersListContentsByOccurrence", "BrowsersListHiddenFiles", - "LogViewerAutoRaise", + "BrowserShowCoding", "LogViewerAutoRaise", "SingleApplicationMode", "TabViewManagerFilenameOnly", "ShowFilePreview", "ShowFilePreviewJS", "ShowFilePreviewSSI", "CaptionShowsFilename", "ShowSplash", @@ -2059,7 +2102,8 @@ "OnlineSyntaxCheckInterval", "OnlineChangeTraceInterval", "WrapLongLinesMode", "WrapVisualFlag", "WrapIndentMode", "WrapStartIndent", "CallTipsPosition", "VirtualSpaceOptions", - "PreviewRefreshWaitTimer"]: + "PreviewRefreshWaitTimer", "SourceOutlineWidth", + "SourceOutlineStepSize"]: return int(prefClass.settings.value( "Editor/" + key, prefClass.editorDefaults[key])) elif key in ["AdditionalOpenFilters", "AdditionalSaveFilters", @@ -2740,7 +2784,7 @@ value = int(prefClass.settings.value( "WebBrowser/" + key, prefClass.webBrowserDefaults[key])) if QWebEngineSettings is None: - value = prefClass.helpDefaults[key] + value = prefClass.webBrowserDefaults[key] return value elif key in ["StartupBehavior", "HistoryLimit", "DownloadManagerRemovePolicy", "SyncType", "SyncFtpPort", @@ -3103,7 +3147,8 @@ @return the requested user setting """ if key in ["TasksFixmeColor", "TasksWarningColor", - "TasksTodoColor", "TasksNoteColor"]: + "TasksTodoColor", "TasksNoteColor", + "TasksTestColor", "TasksDocuColor"]: col = prefClass.settings.value("Tasks/" + key) if col is not None: return QColor(col) @@ -3341,7 +3386,7 @@ @param prefClass preferences class used as the storage area """ prefClass.settings.setValue("IRC/" + key, value) - + def getHexEditor(key, prefClass=Prefs): """ @@ -3490,9 +3535,14 @@ @param prefClass preferences class used as the storage area @return the requested pip value """ - return prefClass.settings.value( - "Pip/" + key, - prefClass.pipDefaults[key]) + if key in ("ExcludeCondaEnvironments"): + return toBool(prefClass.settings.value( + "Pip/" + key, + prefClass.pipDefaults[key])) + else: + return prefClass.settings.value( + "Pip/" + key, + prefClass.pipDefaults[key]) def setPip(key, value, prefClass=Prefs): @@ -3514,7 +3564,7 @@ @param prefClass preferences class used as the storage area @return the requested MicroPython value """ - if key in ("SerialTimeout"): + if key in ("SerialTimeout", "ChartColorTheme"): return int(prefClass.settings.value( "MicroPython/" + key, prefClass.microPythonDefaults[key])) @@ -3713,16 +3763,6 @@ ) for key in ["SyncFtpPassword", "SyncEncryptionKey"]: prefClass.settings.setValue( - "Help/" + key, - pwRecode( - prefClass.settings.value("Help/" + key, - prefClass.helpDefaults[key]), - oldPassword, - newPassword - ) - ) - for key in ["SyncFtpPassword", "SyncEncryptionKey"]: - prefClass.settings.setValue( "WebBrowser/" + key, pwRecode( prefClass.settings.value("WebBrowser/" + key,