diff --git a/renderer/index.js b/renderer/index.js index 3cea58e2..43f9905b 100644 --- a/renderer/index.js +++ b/renderer/index.js @@ -542,6 +542,9 @@ function resumeTorrents () { .forEach((x) => startTorrentingSummary(x)) } +// Updates a single property in the UNSAVED prefs +// For example: updatePreferences("foo.bar", "baz") +// Call savePreferences to save to config.json function updatePreferences (property, value) { var path = property.split('.') var key = state.unsaved.prefs @@ -554,6 +557,7 @@ function updatePreferences (property, value) { key[path[i]] = value } +// All unsaved prefs take effect atomically, and are saved to config.json function savePreferences () { state.saved.prefs = Object.assign(state.saved.prefs || {}, state.unsaved.prefs) saveState() diff --git a/renderer/views/preferences.js b/renderer/views/preferences.js index 5e482f8e..f9af1a62 100644 --- a/renderer/views/preferences.js +++ b/renderer/views/preferences.js @@ -1,6 +1,5 @@ module.exports = Preferences -var fs = require('fs-extra') var h = require('virtual-dom/h') var hyperx = require('hyperx') var hx = hyperx(h) @@ -9,46 +8,70 @@ var {dispatch} = require('../lib/dispatcher') var remote = require('electron').remote var dialog = remote.dialog -var prefState - function Preferences (state) { - prefState = state.unsaved.prefs - var definitions = getPreferenceDefinitions() - var sections = [] - - definitions.forEach(function (sectionDefinition) { - sections.push(renderSection(sectionDefinition)) - }) - return hx`