« get me outta code hell

Label showing # of items / total items in menu - mtui - Music Text User Interface - user-friendly command line music player
about summary refs log tree commit diff
path: root/ui.js
diff options
context:
space:
mode:
authorFlorrie <towerofnix@gmail.com>2018-12-15 11:50:46 -0400
committerFlorrie <towerofnix@gmail.com>2018-12-15 11:50:46 -0400
commitc4fdc7792286090c631f29ebac66a813ecba7ddc (patch)
tree1cfbc65578f8fed7edd46467400a9f54f0d7f68a /ui.js
parent2e8038264af755d10f19af39461c2880ed48dc73 (diff)
Label showing # of items / total items in menu
Diffstat (limited to 'ui.js')
-rw-r--r--ui.js15
1 files changed, 14 insertions, 1 deletions
diff --git a/ui.js b/ui.js
index c3962d5..c4c0bae 100644
--- a/ui.js
+++ b/ui.js
@@ -1,7 +1,7 @@
 const { getAllCrawlersForArg } = require('./crawlers')
 const { getDownloaderFor } = require('./downloaders')
 const { getPlayer } = require('./players')
-const { parentSymbol, isGroup, isTrack, getItemPath, getItemPathString, flattenGrouplike, cloneGrouplike } = require('./playlist-utils')
+const { parentSymbol, isGroup, isTrack, getItemPath, getItemPathString, flattenGrouplike, countTotalItems, cloneGrouplike } = require('./playlist-utils')
 const { shuffleArray } = require('./general-util')
 const processSmartPlaylist = require('./smart-playlist')
 const UndoManager = require('./undo-manager')
@@ -1051,6 +1051,11 @@ class BasicGrouplikeItemElement extends Button {
       this.emit('pressed')
     }
   }
+
+  clicked(button) {
+    super.clicked(button)
+    return false
+  }
 }
 
 class InteractiveGrouplikeItemElement extends BasicGrouplikeItemElement {
@@ -1111,6 +1116,14 @@ class InteractiveGrouplikeItemElement extends BasicGrouplikeItemElement {
       x: this.absLeft,
       y: this.absTop + 1,
       items: [
+        // A label that just shows some brief information about the item.
+        this.isGroup && {label:
+          `("${this.item.name}" -` +
+          ` ${this.item.items.length} item${this.item.items.length === 1 ? '' : 's'}` +
+          `, ${countTotalItems(this.item)} total` +
+          ')'},
+
+        // The actual controls!
         editMode && {label: this.isMarked ? 'Unmark' : 'Mark', action: () => this.emit('mark')},
         anyMarked && {label: 'Paste (above)', action: () => this.emit('paste', {where: 'above'})},
         anyMarked && {label: 'Paste (below)', action: () => this.emit('paste', {where: 'below'})},