summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndras Becsi <andras.becsi@theqtcompany.com>2015-08-07 14:26:29 +0200
committerAndras Becsi <andras.becsi@theqtcompany.com>2015-08-12 17:22:04 +0200
commit5ae11ca3407e88044f7d79c86c94815119a5280a (patch)
tree46a84a5a42cedd5ce0a6f22fa9f214d1d9ffefb5 /src
parentee4de7abba1b868254c01f3f0c09af6e72263e5f (diff)
Simplify how settings are persisted and loaded
Diffstat (limited to 'src')
-rw-r--r--src/qml/BrowserWindow.qml1
-rw-r--r--src/qml/SettingsView.qml43
2 files changed, 21 insertions, 23 deletions
diff --git a/src/qml/BrowserWindow.qml b/src/qml/BrowserWindow.qml
index 5b3f567..9e55e4b 100644
--- a/src/qml/BrowserWindow.qml
+++ b/src/qml/BrowserWindow.qml
@@ -159,6 +159,7 @@ Item {
}
onDoneClicked: {
+ settingsView.save()
settingsView.state = "disabled"
}
}
diff --git a/src/qml/SettingsView.qml b/src/qml/SettingsView.qml
index 1eeb3a3..6ed6e3f 100644
--- a/src/qml/SettingsView.qml
+++ b/src/qml/SettingsView.qml
@@ -58,6 +58,18 @@ Rectangle {
{ "name": "Enable Plugins", "active": false, "notify": function(v) { pluginsEnabled = v; } }
]
+ function save() {
+ for (var i = 0; i < appSettings.length; ++i) {
+ var setting = appSettings[i]
+
+ listModel.get(i).active = setting.active
+ // Do not persist private browsing mode
+ if (setting.name === "Private Browsing")
+ continue
+ engine.saveSetting(setting.name, setting.active)
+ }
+ }
+
state: "disabled"
states: [
@@ -129,9 +141,7 @@ Rectangle {
onClicked: {
var setting = appSettings[index]
setting.active = checked
- listModel.get(index).active = checked
setting.notify(checked)
- listView.save()
}
style: SwitchStyle {
handle: Rectangle {
@@ -156,31 +166,18 @@ Rectangle {
}
}
- function save() {
- // Do not persist private browsing mode
- appSettings[0].active = false
- engine.saveSetting("settings", JSON.stringify(appSettings))
- }
-
Component.onCompleted: {
- var string = engine.restoreSetting("settings", JSON.stringify(appSettings))
- var list = JSON.parse(string)
- for (var i = 0; i < list.length; ++i) {
- var persistentSetting = list[i]
- var localSetting = appSettings[i]
-
- if (localSetting.name !== persistentSetting.name) {
- console.error("Conflicting configuration layout detected, using default setting!\nIf the problem persists please remove " + engine.settingsPath +" and restart the application.")
- listModel.append(localSetting)
- continue
+ for (var i = 0; i < appSettings.length; ++i) {
+ var setting = appSettings[i]
+ var active = JSON.parse(engine.restoreSetting(setting.name, setting.active))
+ if (setting.active !== active) {
+ setting.active = active
+ setting.notify(active)
}
-
- listModel.append({ "name": persistentSetting.name, "active": persistentSetting.active })
- localSetting.active = persistentSetting.active
- localSetting.notify(persistentSetting.active)
+ listModel.append(setting)
}
listView.forceLayout()
}
- Component.onDestruction: save()
+ Component.onDestruction: root.save()
}
}