Preferences/__init__.py

branch
maintenance
changeset 6097
bf18415da0c7
parent 6050
25a4ddb25ca4
parent 6091
7b989321d74c
child 6166
bace7fb85a01
--- a/Preferences/__init__.py	Thu Jan 18 11:10:57 2018 +0100
+++ b/Preferences/__init__.py	Thu Jan 18 18:57:40 2018 +0100
@@ -1240,6 +1240,27 @@
             })
         except AttributeError:
             pass
+        try:
+            # Qt 5.9+
+            cls.webBrowserDefaults.update({
+                "AllowGeolocationOnInsecureOrigins":
+                    webEngineSettings.testAttribute(
+                        QWebEngineSettings.AllowGeolocationOnInsecureOrigins),
+            })
+        except AttributeError:
+            pass
+        try:
+            # Qt 5.10+
+            cls.webBrowserDefaults.update({
+                "AllowWindowActivationFromJavaScript": 
+                    webEngineSettings.testAttribute(
+                        QWebEngineSettings.AllowWindowActivationFromJavaScript
+                    ),
+                "ShowScrollBars": webEngineSettings.testAttribute(
+                    QWebEngineSettings.ShowScrollBars),
+            })
+        except AttributeError:
+            pass
         
         cls.webEngineSettingsIntitialized = True
     
@@ -2707,8 +2728,9 @@
             keywords.append((keyword, engineName))
         prefClass.settings.endArray()
         return keywords
-    elif key in ["DownloadManagerDownloads"]:
-        # return a list of tuples of (URL, save location, done flag, page url)
+    elif key == "DownloadManagerDownloads":
+        # return a list of tuples of (URL, save location, done flag, page url,
+        # date/time downloaded)
         downloads = []
         length = prefClass.settings.beginReadArray("Help/" + key)
         for index in range(length):
@@ -2722,6 +2744,9 @@
             downloaded = prefClass.settings.value("Downloaded")
             if downloaded is None:
                 downloaded = QDateTime()
+            else:
+                downloaded = QDateTime.fromString(
+                    downloaded, "yyyy-MM-dd hh:mm:ss")
             downloads.append((url, location, done, pageUrl, downloaded))
         prefClass.settings.endArray()
         return downloads
@@ -2818,7 +2843,8 @@
             index += 1
         prefClass.settings.endArray()
     elif key == "DownloadManagerDownloads":
-        # value is list of tuples of (URL, save location, done flag, page url)
+        # value is list of tuples of (URL, save location, done flag, page url,
+        # date/time downloaded)
         prefClass.settings.remove("Help/" + key)
         prefClass.settings.beginWriteArray("Help/" + key, len(value))
         index = 0
@@ -2828,6 +2854,8 @@
             prefClass.settings.setValue("Location", v[1])
             prefClass.settings.setValue("Done", v[2])
             prefClass.settings.setValue("PageURL", v[3])
+            prefClass.settings.setValue(
+                "Downloaded", v[4].toString("yyyy-MM-dd hh:mm:ss"))
             index += 1
         prefClass.settings.endArray()
     elif key == "RssFeeds":
@@ -2898,22 +2926,27 @@
             keywords.append((keyword, engineName))
         prefClass.settings.endArray()
         return keywords
-    elif key in ["DownloadManagerDownloads"]:
-        # return a list of tuples of (URL, save location, done flag, page url)
+    elif key == "DownloadManagerDownloads":
+        # return a list of dicts containing the URL, save location, done flag,
+        # page URL, date/time downloaded
         downloads = []
         length = prefClass.settings.beginReadArray("WebBrowser/" + key)
         for index in range(length):
+            download = {}
             prefClass.settings.setArrayIndex(index)
-            url = prefClass.settings.value("URL")
-            location = prefClass.settings.value("Location")
-            done = toBool(prefClass.settings.value("Done"))
-            pageUrl = prefClass.settings.value("PageURL")
-            if pageUrl is None:
-                pageUrl = QUrl()
-            downloaded = prefClass.settings.value("Downloaded")
-            if downloaded is None:
-                downloaded = QDateTime()
-            downloads.append((url, location, done, pageUrl, downloaded))
+            download["URL"] = prefClass.settings.value("URL")
+            download["Location"] = prefClass.settings.value("Location")
+            download["Done"] = toBool(prefClass.settings.value("Done"))
+            download["PageURL"] = prefClass.settings.value("PageURL")
+            if download["PageURL"] is None:
+                download["PageURL"] = QUrl()
+            download["Downloaded"] = prefClass.settings.value("Downloaded")
+            if download["Downloaded"] is None:
+                download["Downloaded"] = QDateTime()
+            else:
+                download["Downloaded"] = QDateTime.fromString(
+                    download["Downloaded"], "yyyy-MM-dd hh:mm:ss")
+            downloads.append(download)
         prefClass.settings.endArray()
         return downloads
     elif key == "RssFeeds":
@@ -2974,7 +3007,8 @@
                  "BookmarksToolBarVisible", "StatusBarVisible",
                  "SessionAutoSave", "LoadTabOnActivation",
                  "SafeBrowsingEnabled", "SafeBrowsingFilterPlatform",
-                 "SafeBrowsingAutoUpdate",
+                 "SafeBrowsingAutoUpdate", "AllowGeolocationOnInsecureOrigins",
+                 "AllowWindowActivationFromJavaScript", "ShowScrollBars",
                  ]:
         return toBool(prefClass.settings.value(
             "WebBrowser/" + key, prefClass.webBrowserDefaults[key]))
@@ -3027,17 +3061,19 @@
             index += 1
         prefClass.settings.endArray()
     elif key == "DownloadManagerDownloads":
-        # value is list of tuples of (URL, save location, done flag, page url)
+        # value is list of dicts containing the URL, save location, done flag,
+        # page URL, date/time downloaded
         prefClass.settings.remove("Help/" + key)
         prefClass.settings.beginWriteArray("WebBrowser/" + key, len(value))
         index = 0
         for v in value:
             prefClass.settings.setArrayIndex(index)
-            prefClass.settings.setValue("URL", v[0])
-            prefClass.settings.setValue("Location", v[1])
-            prefClass.settings.setValue("Done", v[2])
-            prefClass.settings.setValue("PageURL", v[3])
-            prefClass.settings.setValue("Downloaded", v[4])
+            prefClass.settings.setValue("URL", v["URL"])
+            prefClass.settings.setValue("Location", v["Location"])
+            prefClass.settings.setValue("Done", v["Done"])
+            prefClass.settings.setValue("PageURL", v["PageURL"])
+            prefClass.settings.setValue(
+                "Downloaded", v["Downloaded"].toString("yyyy-MM-dd hh:mm:ss"))
             index += 1
         prefClass.settings.endArray()
     elif key == "RssFeeds":

eric ide

mercurial