Age | Commit message (Collapse) | Author |
|
This also tidies up the logic for changing the selected element from
context menus to the menubar, fixing a bug where the menubar forgets
which element was selected before it, and not re-introducing the bug
which the complex logic fixed in the first place (which was the menubar
seeing the context menu as the previously selected element, when the
menu will be destroyed by the time the menubar restores its selection).
|
|
So pressing a/c (:33) in the menubar will now cause a rerender.
|
|
|
|
Please don't ever let me stay up until 29:57 again. Future me will thank
you in advance.
|
|
The download code doesn't actually really depend on state, besides
having access to the record for the track, which we can pass in from
anywhere.
|
|
Currently uses meta+(c, x, n, p, up, down) keys as the only interaction
method, but that'll change soon!
|
|
I _love_ the KeyboardSelector tool.
|
|
Currently bug-free and doesn't change anything about existing mtui
behavior! Meta N to create a new player, meta up/down to switch between
which one you're interacting with. Each player has its own queue.
Eventually (soon(TM)) there'll be much better UI to go with all this!
|
|
...in reveal(). This fixes the bug where the revealed track would always
be positioned at the bottom of the screen, which happened because
reloading the listing reset the scroll index back to the top.
|
|
|
|
The progress label that shows when mtui is processing metadata will
update the screen now.
|
|
This makes the pause indicator (next to the time remaining in the queue)
work again.
|
|
|
|
|
|
|
|
No more <kbd> formatting, which is arguably more accessible but a pain
to read and edit in plain text.
|
|
|
|
Although we don't have any context menu options which start with the
letter G yet, if we did, the keyboard selector would (intentionally)
take priority and focus that element instead of doing jump to start/
bottom behavior. However, pressing Home/End will always work (once it's
implemented).
|
|
|
|
This means we can basically guarantee 0% CPU usage when nothing on the
screen is changing! There may still be some kinks to work out, but I've
tested most features and fixed any apparent bugs (including an unrelated
bug in the suspend feature which made it crash when resuming the process).
|
|
Also make it caseless: q = Q. See todo.txt (which also has a large new
note regarding duplicates in the selection system).
|
|
|
|
Now /that/ was hard to fit in the commit line length. (:
|
|
I'd forgotten to pass the reprocess flag through!
|
|
|
|
I didn't end up using this.
|
|
...by default.
|
|
|
|
|
|
...a single one. This is working towards letting multiple context menus
be open at once.
|
|
|
|
Maybe there'll be a better key than L for isFocusLabels later. We'll
see!
|
|
Dragging works too, as implemented earlier.
|
|
...instead of shift+up/down, which I'm going to make select items in
listings (ala graphical file browsers).
|
|
I.e, fix a reference to the now nonexistant playNextTrack. This fixes a
crash that happens when "Play later" is selected on the currently
playing track (since doing so is meant to skip to the next song in queue
before moving the play-later'd track).
|
|
|
|
|
|
|
|
This takes the place of the number of direct children items (opting to
show just the total number of tracks).
|
|
...into its own function. To be used to get the total duration string of
a grouplike.
(This is stored on the backend instead of a more general playlist-utils
function because it requires access to the metadata code specific to
mtui.)
|
|
|
|
|
|
|
|
|
|
|
|
I.e, provide access to all options when multiple tracks are selected in
the queue.
|
|
|
|
|
|
|
|
|