diff --git a/src/tracker/gui.js b/src/tracker/gui.js index dd08465..ac4ae09 100644 --- a/src/tracker/gui.js +++ b/src/tracker/gui.js @@ -14,6 +14,10 @@ var GUI = (function(){ controller.ui.btnToggleTracking.innerHTML = STATE.isTracking() ? "Pause Tracking" : "Start Tracking"; } } + + if (settings && type === "gui" && detail === "settings"){ + settings.ui.cbAutoscroll.checked = STATE.settings.autoscroll; + } }; var registeredEvent = false; @@ -155,9 +159,23 @@ var GUI = (function(){ settings.ele = DOM.createElement("div", document.body); settings.ele.id = "dht-cfg"; + settings.ele.innerHTML = [ + "" + ].join(""); + + // elements + + settings.ui = { + cbAutoscroll: DOM.id("dht-cfg-autoscroll") + }; + // events - stateChangedEvent("gui", "settings"); + settings.ui.cbAutoscroll.addEventListener("change", () => { + STATE.settings.autoscroll = settings.ui.cbAutoscroll.checked; + }); + + setupStateChanged("settings"); }, hideSettings: function(){ diff --git a/src/tracker/state.js b/src/tracker/state.js index b2da978..ba767dd 100644 --- a/src/tracker/state.js +++ b/src/tracker/state.js @@ -23,6 +23,7 @@ var STATE = (function(){ * Internal settings class constructor. */ var SETTINGS = function(){ + defineTriggeringProperty(this, "setting", "autoscroll"); }; /* diff --git a/src/tracker/Σ.js b/src/tracker/Σ.js index 0850266..63c21fc 100644 --- a/src/tracker/Σ.js +++ b/src/tracker/Σ.js @@ -5,9 +5,19 @@ DISCORD.setupMessageRequestHook((channel, messages) => { if (info.id == channel){ // Discord has a bug where the message request may be sent without switching channels STATE.addDiscordChannel(info.server, info.type, channel, info.channel); STATE.addDiscordMessages(channel, messages); + + if (STATE.settings.autoscroll){ + DOM.setTimer(() => DISCORD.loadOlderMessages(), 0); + } } } }); +STATE.onStateChanged((type, detail) => { + if (type === "tracking" && detail && STATE.settings.autoscroll){ + DISCORD.loadOlderMessages(); + } +}); + GUI.showController(); GUI.showSettings();