Skip to content

(feat) Show hotcue tooltip in library#15484

Draft
ronso0 wants to merge 8 commits into
mixxxdj:mainfrom
ronso0:hotcue-tooltip-in-library
Draft

(feat) Show hotcue tooltip in library#15484
ronso0 wants to merge 8 commits into
mixxxdj:mainfrom
ronso0:hotcue-tooltip-in-library

Conversation

@ronso0
Copy link
Copy Markdown
Member

@ronso0 ronso0 commented Oct 13, 2025

Continuation of #15471

Screenshot_2025-10-13_11-39-43

Looks good IMO, but I'm not sure about the final column order.
On the one hand it's good to see the type icon ▸ / / next to the hotcue number, then the position, then label.
Otoh it also makes sense to have the type icon followed by the range, but idk, maybe loop length / jump position are too much for the tooltip.
What do you think?

And my feeling is --if we decide to merge it-- that we should make the hotcue tooltip optional (opt out).
Yes, I understand it's nice helper for some, but others (me included) don't need it and may even be annoyed by it (it is currently installed for most text columns).

@ronso0 ronso0 changed the title (feat Show hotcue tooltip in library (feat) Show hotcue tooltip in library Oct 13, 2025
@mxmilkiib
Copy link
Copy Markdown
Contributor

I really think it needs beats; they are handy abstractions

imho, a few ways? beats from the start, from intro end, to the hotcue after, to the next hotcue with the label DROP, to the playhead, to outro start, to track end

if somehow a (generally) powers of two relationship could be displayed?

@ronso0
Copy link
Copy Markdown
Member Author

ronso0 commented Oct 13, 2025

If we decide to show beats (not m:ss.kkk like in the cue menu) we should count from the track start.

@ronso0 ronso0 force-pushed the hotcue-tooltip-in-library branch from 022007b to 7e09c86 Compare October 13, 2025 22:53
@ronso0
Copy link
Copy Markdown
Member Author

ronso0 commented Oct 13, 2025

This is how it looks with beats (if track has beats)
image

@Eve00000
Copy link
Copy Markdown
Contributor

Nice. thanks for adopting.
Good solution with the unicodes, did the original icons take too much cpu causing latency?

I agree with the preferences-idea: not everyone wants/needs it so we can't force people to use it (screen polution ;-) ).
IMO beats as startposition are meaningless, while they could be a helper as extra in loop duration.
I'm getting seesick from big/small windows popin' up (and choosing another place where they can get there size), in another PR I'm using a line of nonbreakingspaces to get a more/less fixed window width (Qt has it's own tooltips-ideas causing strange effects), the hotcuetable can use this too to set a width for icon - position - label - type - duration at eg 600

@ronso0
Copy link
Copy Markdown
Member Author

ronso0 commented Oct 14, 2025

IMO beats as startposition are meaningless, while they could be a helper as extra in loop duration.

Can you explain why?
IMO both beats and seconds are somewhat meaningless (or less meaningful) if the track duration is unknow.
And we don't want a full-blown track info tooltip, do we?

@ronso0
Copy link
Copy Markdown
Member Author

ronso0 commented Oct 14, 2025

Qt has it's own tooltips-ideas causing strange effects

What do you mean?
Afaict tooltips are adjusted to content dynamically, and at least with the hotcue table it's predictable and doesn't add extra linebreaks or something (as it does with long strings like for controls tooltips).

@Eve00000
Copy link
Copy Markdown
Contributor

Eve00000 commented Oct 14, 2025

I know of quite some tracks the points of interest approximately (MM:SS), I don't count beats.

full-blown
My opinion is certainly not representative of all users. ;-)

Depending on 'is there a label' / 'is there a loop with duration' ... the tooltipg changes width 'dynamically' ...

@ronso0
Copy link
Copy Markdown
Member Author

ronso0 commented Oct 14, 2025

Okay, so you'd prefer a fixed width like if there was a label and a loop or jump target?
Tbh I'd rather not hard-code such a width. Tooltips are supposed to be as big as necessary, as small as possible.
I suggest you stick to your custom mod.

@ronso0
Copy link
Copy Markdown
Member Author

ronso0 commented Oct 14, 2025

edit oh, I was confused. It's the centiseconds that make the strings so long.
Maybe we can round to m:ss.c.
IMO centiseconds are relevant only in the decks (for some users)

FWIW I'd like to trim leading zeros in the time strings, like we already do in the library:
00:17.124
03:49.377
would be
0:17.124
3:49.377

image

@Eve00000
Copy link
Copy Markdown
Contributor

I suggest you stick to your custom mod.

No prob, your ideas are correct, I wrote "My opinion is certainly not representative of all users" 😄

@ronso0
Copy link
Copy Markdown
Member Author

ronso0 commented Oct 15, 2025

Okay, I guess that seconds for positions might be more suitable for most users as it 's more.. universal? than beats.
Will revert to seconds. The intermediate version with beats is 7e09c86, in case someone wants beats in his private build.

@mxmilkiib
Copy link
Copy Markdown
Contributor

mxmilkiib commented Oct 15, 2025

how about a combo? like

0:56 (0-128)
1:24 (0-192, +64)

edit: or I guess like

1:24 (192, +64)

@ronso0
Copy link
Copy Markdown
Member Author

ronso0 commented Oct 15, 2025

Hmm, that's even more noise IMHO

@mxmilkiib
Copy link
Copy Markdown
Contributor

if a piece of pertinent info isn't signal, I don't know what is :)

a sign of where through the track the hotcue* is

i mean, the brackets aren't signal; a more minimal way could be to ditch those for formatting;

.. 56 ... 128, +64
1:24 ... 192, +64
1:52 ... 256, +64

but with actual space in-between, n a smaller font

I'm sure working and calculating with either is seen as some kind of 'not right' by like the other half or such of folk

@ronso0
Copy link
Copy Markdown
Member Author

ronso0 commented Oct 16, 2025

Hmm, I'm not sure where this is going tbh.
I mean the tooltip should be a helper, not a full-blown hotcue widget (so IMO already loop size / jump distance/target is too much) -- which we once had as separate tab in the Track Info.

But it is what it is now, and there seems to be a demand for that info.
So, ideally we'd sort hotcues by position, like they are in the button grid and on the waveform.
Then we can reorder column
[#] [type icon] Label pos(sec/beats) [optional length/target]

@github-actions
Copy link
Copy Markdown

This PR is marked as stale because it has been open 90 days with no activity.

@github-actions github-actions Bot added the stale Stale issues that haven't been updated for a long time. label Jan 15, 2026
@daschuer daschuer removed the stale Stale issues that haven't been updated for a long time. label Jan 19, 2026
@daschuer
Copy link
Copy Markdown
Member

@ronso0 is this in a merge-able state?
@Eve00000 and @mxmilkiib are your use-case sufficiently covered?

@ronso0 ronso0 force-pushed the hotcue-tooltip-in-library branch from e469281 to 7ef66ef Compare January 20, 2026 13:03
@ronso0
Copy link
Copy Markdown
Member Author

ronso0 commented Jan 20, 2026

I think this is mergable, but it's debatable whether we should always show beats positions/lengths if beats are available.
IMO mm:ss:k is more appropriate for most users since you'd usually check the track duration in mm:ss when considering a track, and not in beats which, for requires to know the BPM as well if you want to guesstimate how usable the track is as follow-up. But that's just my opinion. I think we can merge with mm:ss first, then change to beats (or add an option) when there is a demand.
Currently you can test mm:ss by removing the track's beatgrid.

This is how it looks atm: loop length is in [ ] now, and for jumpcues I added the jump icon to the target field
m:ss:d Screenshot_2026-01-20_13-56-16 || beats: Screenshot_2026-01-20_13-55-18

@ronso0
Copy link
Copy Markdown
Member Author

ronso0 commented Jan 20, 2026

I alsothink we may show the hotcues tooltip for all columns, except those that have a special tooltip (which is only cover art and color)

edit na, we also have special handling for BPM, dates, ...
I'll try something.

@daschuer
Copy link
Copy Markdown
Member

We have also the use case that the full content of a cell is shown if it has been truncated due to limited column width.

@ronso0
Copy link
Copy Markdown
Member Author

ronso0 commented Jan 20, 2026

Sure. the hotcue table is just added below the original tooltip.

@Eve00000
Copy link
Copy Markdown
Contributor

Eve00000 commented Jan 21, 2026

@ronso0 is this in a merge-able state? @Eve00000 and @mxmilkiib are your use-case sufficiently covered?

IMO this gives users the needed hotcue info.
My opinion is certainly not representative, I'm using a 'full blown' tooltip appearing when changing the selected track (kb or controller) and only when the artist/title field is selected) and disappearing after 5 seconds. This delivers readable info at 1.5m and solved the need to change the tracktableviews again and again (column width, displayed fields).

@ronso0
Copy link
Copy Markdown
Member Author

ronso0 commented Jan 21, 2026

Yes, I also thought about a standalone hotcue widget, like the cover art, but actually for the decks.
I think Serato has something like this.
Can happen in QML, not the legacy skins.
(tbh I still don't fully understand the need for extensive hotcue info in the library, but that's just me)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants