diff options
author | (quasar) nebula <towerofnix@gmail.com> | 2021-03-15 21:57:54 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2024-05-16 19:15:01 -0300 |
commit | ee6960dac5c11641cb1568643782158d85f15f59 (patch) | |
tree | 2ddabce31e5cce310647be18262ebcde8fc82f4a /ui.js | |
parent | 7ce9093c6a4623f5b87dd01989ebaa0f58a84649 (diff) |
combining log messages (currently only seek!)
Diffstat (limited to 'ui.js')
-rw-r--r-- | ui.js | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/ui.js b/ui.js index 7ed9b57..65ca2d1 100644 --- a/ui.js +++ b/ui.js @@ -576,8 +576,8 @@ export default class AppElement extends FocusElement { this.updateQueueLengthLabel() } - handleLogMessage(text, isVerbose) { - this.log.newLogMessage(text, isVerbose) + handleLogMessage(messageInfo) { + this.log.newLogMessage(messageInfo) } async handlePlayingDetails(track, oldTrack, startTime, queuePlayer) { @@ -5535,12 +5535,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() @@ -5550,9 +5565,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) } |