From 35f087fee9fb1954b4a114af7cc9d026b9a7c831 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Mon, 15 Mar 2021 21:57:54 -0300 Subject: combining log messages (currently only seek!) --- ui.js | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) (limited to 'ui.js') diff --git a/ui.js b/ui.js index 3952c38..c948080 100644 --- a/ui.js +++ b/ui.js @@ -547,8 +547,8 @@ class AppElement extends FocusElement { } } - handleLogMessage(text, isVerbose) { - this.log.newLogMessage(text, isVerbose) + handleLogMessage(messageInfo) { + this.log.newLogMessage(messageInfo) } async handlePlayingDetails(track, oldTrack, queuePlayer) { @@ -4591,12 +4591,27 @@ class Log extends ListScrollForm { super('vertical') } - newLogMessage(text, isVerbose = false) { + newLogMessage(messageInfo) { if (this.inputs.length === 10) { this.removeInput(this.inputs[0]) } - const logMessage = new LogMessage(text, isVerbose) + if (messageInfo.mayCombine) { + // If a message is specified to "combine", it'll replace an immediately + // previous message of the same code and sender. + const previous = this.inputs[this.inputs.length - 1] + if ( + previous && + previous.info.code === messageInfo.code && + previous.info.sender === messageInfo.sender + ) { + // If the code and sender match, just remove the previous message. + // It'll be replaced by the one we're about to add! + this.removeInput(previous) + } + } + + const logMessage = new LogMessage(messageInfo) this.addInput(logMessage) this.fixLayout() this.scrollToEnd() @@ -4606,9 +4621,16 @@ class Log extends ListScrollForm { } class LogMessage extends FocusElement { - constructor(text, isVerbose = false) { + constructor(info) { super() + this.info = info + + const { + text, + isVerbose = false + } = info + this.label = new LogMessageLabel(text, isVerbose) this.addChild(this.label) } -- cgit 1.3.0-6-gf8a5