--- a/Preferences/__init__.py Thu Jan 25 16:39:06 2018 +0100 +++ b/Preferences/__init__.py Thu Jan 25 17:21:00 2018 +0100 @@ -2728,7 +2728,7 @@ keywords.append((keyword, engineName)) prefClass.settings.endArray() return keywords - elif key in ["DownloadManagerDownloads"]: + elif key == "DownloadManagerDownloads": # return a list of tuples of (URL, save location, done flag, page url, # date/time downloaded) downloads = [] @@ -2926,26 +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, - # date/time downloaded) + 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() + 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: - downloaded = QDateTime.fromString( - downloaded, "yyyy-MM-dd hh:mm:ss") - downloads.append((url, location, done, pageUrl, downloaded)) + download["Downloaded"] = QDateTime.fromString( + download["Downloaded"], "yyyy-MM-dd hh:mm:ss") + downloads.append(download) prefClass.settings.endArray() return downloads elif key == "RssFeeds": @@ -3060,19 +3061,19 @@ index += 1 prefClass.settings.endArray() elif key == "DownloadManagerDownloads": - # value is list of tuples of (URL, save location, done flag, page url, - # date/time downloaded) + # 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("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[4].toString("yyyy-MM-dd hh:mm:ss")) + "Downloaded", v["Downloaded"].toString("yyyy-MM-dd hh:mm:ss")) index += 1 prefClass.settings.endArray() elif key == "RssFeeds":