Preferences/__init__.py

branch
maintenance
changeset 5576
c866ec38662d
parent 5531
e7fff6f1ff19
parent 5532
3a7c5deab9b7
child 5730
6422afc7adc4
diff -r e6c917c0cb97 -r c866ec38662d Preferences/__init__.py
--- a/Preferences/__init__.py	Sun Feb 26 15:54:49 2017 +0100
+++ b/Preferences/__init__.py	Fri Mar 03 18:34:21 2017 +0100
@@ -746,6 +746,8 @@
         "DeterminePyFromProject": True,
         "TasksProjectAutoSave": True,
         "TasksProjectRescanOnOpen": True,
+        "DebugClientsHistory": [],
+        "DebuggerInterpreterHistory": [],
     }
     
     # defaults for the multi project settings
@@ -1064,6 +1066,9 @@
         "DownloadManagerSize": QSize(400, 300),
         "DownloadManagerPosition": QPoint(),
         "DownloadManagerDownloads": [],
+        # Spell Checking
+        "SpellCheckEnabled": False,
+        "SpellCheckLanguages": [],
         # Sync
         "SyncEnabled": False,
         "SyncBookmarks": True,
@@ -1133,9 +1138,6 @@
                 QWebEngineSettings.AutoLoadImages),
             "JavaScriptCanOpenWindows": webEngineSettings.testAttribute(
                 QWebEngineSettings.JavascriptCanOpenWindows),
-            # TODO: Qt 5.8?
-##            "JavaScriptCanCloseWindows": webEngineSettings.testAttribute(
-##                QWebEngineSettings.JavascriptCanCloseWindows),
             "JavaScriptCanAccessClipboard": webEngineSettings.testAttribute(
                 QWebEngineSettings.JavascriptCanAccessClipboard),
             "PluginsEnabled": webEngineSettings.testAttribute(
@@ -1173,6 +1175,18 @@
             })
         except AttributeError:
             pass
+        try:
+            # Qt 5.8+
+            cls.webBrowserDefaults.update({
+                "FocusOnNavigationEnabled": webEngineSettings.testAttribute(
+                    QWebEngineSettings.FocusOnNavigationEnabled),
+                "PrintElementBackgrounds": webEngineSettings.testAttribute(
+                    QWebEngineSettings.PrintElementBackgrounds),
+                "AllowRunningInsecureContent": webEngineSettings.testAttribute(
+                    QWebEngineSettings.AllowRunningInsecureContent),
+            })
+        except AttributeError:
+            pass
         
         cls.webEngineSettingsIntitialized = True
     
@@ -1855,7 +1869,10 @@
             return prefClass.uiDefaults[key]
     elif key in "ViewProfiles2":
         profiles = prefClass.settings.value("UI/ViewProfiles2")
-        if profiles is not None:
+        if profiles is None:
+            # use the defaults
+            viewProfiles = prefClass.uiDefaults["ViewProfiles2"]
+        else:
             viewProfiles = {}
             profiles = json.loads(profiles)
             for name in ["edit", "debug"]:
@@ -1867,36 +1884,6 @@
                 for bs in profiles[name][2]:
                     viewProfiles[name][2].append(
                         QByteArray.fromBase64(bs.encode("utf-8")))
-        else:
-            # migrate from the old ViewProfiles settings
-            try:
-                profiles = prefClass.settings.value("UI/ViewProfiles")
-            except TypeError:
-                profiles = None
-            if profiles is not None:
-                if isinstance(profiles, basestring):
-                    profiles = eval(profiles)
-                viewProfiles = {}
-                for name in ["edit", "debug"]:
-                    viewProfiles[name] = [
-                        QByteArray(profiles[name][4]),
-                        profiles[name][5][:],
-                        []
-                    ]
-                    for b in profiles[name][6]:
-                        viewProfiles[name][2].append(QByteArray(b))
-                    # correct some entries
-                    while (len(viewProfiles[name][1]) < len(
-                            prefClass.uiDefaults["ViewProfiles2"][name][1])):
-                        viewProfiles[name][1].append(True)
-                    while len(viewProfiles[name][2]) < len(
-                            prefClass.uiDefaults["ViewProfiles2"][name][2]):
-                        viewProfiles[name][2].append(QByteArray())
-            else:
-                # use the defaults
-                viewProfiles = prefClass.uiDefaults["ViewProfiles2"]
-        # Remove unused setting
-        prefClass.settings.remove("UI/ViewProfiles")
         return viewProfiles
     elif key in ["ToolbarManagerState", "PreviewSplitterState"]:
         state = prefClass.settings.value("UI/" + key)
@@ -2430,6 +2417,9 @@
     if key in ["RecentNumber"]:
         return int(prefClass.settings.value(
             "Project/" + key, prefClass.projectDefaults[key]))
+    elif key in ["DebugClientsHistory", "DebuggerInterpreterHistory"]:
+        return toList(prefClass.settings.value(
+            "Project/" + key, prefClass.projectDefaults[key]))
     else:
         return toBool(prefClass.settings.value(
             "Project/" + key, prefClass.projectDefaults[key]))
@@ -2443,7 +2433,14 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Project/" + key, value)
+    if key in ["DebugClientsHistory", "DebuggerInterpreterHistory"]:
+        # max. list sizes is hard coded to 20 entries
+        newList = [v for v in value if v]
+        if len(newList) > 20:
+            newList = newList[:20]
+        prefClass.settings.setValue("Project/" + key, newList)
+    else:
+        prefClass.settings.setValue("Project/" + key, value)
     
 
 def getProjectBrowserFlags(key, prefClass=Prefs):
@@ -2871,12 +2868,15 @@
                  "AdBlockEnabled", "AdBlockUseLimitedEasyList",
                  "PluginsEnabled", "FullScreenSupportEnabled",
                  "AutoScrollEnabled", "ScreenCaptureEnabled",
-                 "WebGLEnabled",
+                 "WebGLEnabled", "FocusOnNavigationEnabled",
+                 "PrintElementBackgrounds", "AllowRunningInsecureContent",
+                 "SpellCheckEnabled",
                  ]:
         return toBool(prefClass.settings.value(
             "WebBrowser/" + key, prefClass.webBrowserDefaults[key]))
     elif key in ["GreaseMonkeyDisabledScripts", "SendRefererWhitelist",
                  "AdBlockSubscriptions", "AdBlockExceptions",
+                 "SpellCheckLanguages",
                  ]:
         return toList(prefClass.settings.value(
             "WebBrowser/" + key, prefClass.webBrowserDefaults[key]))

eric ide

mercurial