Fix a crash in gui.js caused by accessing STATE too early

This commit is contained in:
chylex 2016-10-25 15:31:08 +02:00
parent 4e110da654
commit bc81581f94

View File

@ -3,9 +3,9 @@ var GUI = (function(){
var settings; var settings;
var stateChangedEvent = (type, detail) => { var stateChangedEvent = (type, detail) => {
var force = type === "gui";
if (controller){ if (controller){
var force = type === "gui" && detail === "controller";
if (type === "data" || force){ if (type === "data" || force){
controller.ui.btnDownload.disabled = controller.ui.btnReset.disabled = !STATE.hasSavedData(); controller.ui.btnDownload.disabled = controller.ui.btnReset.disabled = !STATE.hasSavedData();
} }
@ -16,7 +16,16 @@ var GUI = (function(){
} }
}; };
var registeredEvent = false;
var setupStateChanged = function(detail){
if (!registeredEvent){
STATE.onStateChanged(stateChangedEvent); STATE.onStateChanged(stateChangedEvent);
registeredEvent = true;
}
stateChangedEvent("gui", detail);
};
var root = { var root = {
showController: function(){ showController: function(){
@ -111,7 +120,7 @@ var GUI = (function(){
controller.ui.inputUpload.value = null; controller.ui.inputUpload.value = null;
}); });
stateChangedEvent("gui", "controller"); setupStateChanged("controller");
}, },
hideController: function(){ hideController: function(){