add event signaling a page reload is imminent

This commit is contained in:
Stewart Allen 2020-05-09 18:19:02 -04:00
commit b59cf7e909
2 changed files with 16 additions and 5 deletions

View file

@ -83,6 +83,7 @@ var gs_kiri_init = exports;
let control = settings().controller; let control = settings().controller;
let isCompact = control.compact; let isCompact = control.compact;
let isDark = control.dark; let isDark = control.dark;
let isReload = false;
control.expert = UI.expert.checked; control.expert = UI.expert.checked;
control.showOrigin = UI.showOrigin.checked; control.showOrigin = UI.showOrigin.checked;
control.autoLayout = UI.autoLayout.checked; control.autoLayout = UI.autoLayout.checked;
@ -98,13 +99,16 @@ var gs_kiri_init = exports;
// if compact mode changed, reload UI // if compact mode changed, reload UI
if (isCompact !== control.compact) { if (isCompact !== control.compact) {
UC.setDefaults(isCompact); UC.setDefaults(isCompact);
LOC.reload(); isReload = true;
} }
// if dark mode changed, reload UI // if dark mode changed, reload UI
if (isDark !== control.dark) { if (isDark !== control.dark) {
LOC.reload(); isReload = true;
} }
API.mode.set_expert(control.expert); API.mode.set_expert(control.expert);
if (isReload) {
API.space.reload();
}
} }
function onLayerToggle() { function onLayerToggle() {
@ -1511,11 +1515,11 @@ var gs_kiri_init = exports;
lp.appendChild(dlp); lp.appendChild(dlp);
elp.onclick = function() { elp.onclick = function() {
SDB.setItem('kiri-lang', 'en-us'); SDB.setItem('kiri-lang', 'en-us');
LOC.reload(); API.space.reload();
}; };
dlp.onclick = function() { dlp.onclick = function() {
SDB.setItem('kiri-lang', 'da-dk'); SDB.setItem('kiri-lang', 'da-dk');
LOC.reload(); API.space.reload();
}; };
SPACE.addEventHandlers(self, [ SPACE.addEventHandlers(self, [

View file

@ -247,6 +247,7 @@ self.kiri.copyright = exports.COPYRIGHT;
import: function() { UI.import.style.display = '' } import: function() { UI.import.style.display = '' }
}, },
space: { space: {
reload: reload,
restore: restoreWorkspace, restore: restoreWorkspace,
clear: clearWorkspace, clear: clearWorkspace,
save: saveWorkspace, save: saveWorkspace,
@ -269,6 +270,12 @@ self.kiri.copyright = exports.COPYRIGHT;
work: KIRI.work work: KIRI.work
}; };
function reload() {
API.event.emit('reload');
// allow time for async saves to complete
setTimeout(() => { LOC.reload() }, 50);
}
/** ****************************************************************** /** ******************************************************************
* Stats accumulator * Stats accumulator
******************************************************************* */ ******************************************************************* */
@ -1441,7 +1448,7 @@ self.kiri.copyright = exports.COPYRIGHT;
} }
settings = CONF.normalize(data.settings); settings = CONF.normalize(data.settings);
API.conf.save(); API.conf.save();
LOC.reload(); API.space.reload();
} }
function settingsExport() { function settingsExport() {