Add and implement an autoscroll setting

This commit is contained in:
chylex 2016-10-25 15:32:13 +02:00
parent 21f02b826a
commit 4bde931eca
3 changed files with 30 additions and 1 deletions

View File

@ -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 = [
"<label><input id='dht-cfg-autoscroll' type='checkbox'> Autoscroll</label>"
].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(){

View File

@ -23,6 +23,7 @@ var STATE = (function(){
* Internal settings class constructor.
*/
var SETTINGS = function(){
defineTriggeringProperty(this, "setting", "autoscroll");
};
/*

View File

@ -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();