Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: simplify waveform combobox #13220

Merged
merged 19 commits into from
May 31, 2024

Conversation

acolombier
Copy link
Member

@acolombier acolombier commented May 7, 2024

This addresses #6428 #13226

This current uses RGB only and the RGB L/R is unused.

By default, it prioritises the GL version if AllShader isn't available, is that the best approach?

Kooha-2024-05-08-18-15-40-10MB.mp4

@JoergAtGithub
Copy link
Member

The idea is to merge #13151 and than retire all classic GL and GLSL waveforms.

Since #12994 we have also first waveform type specific sub options, I could imagine, that we use such an aub option for L/R support as well.

@acolombier
Copy link
Member Author

acolombier commented May 8, 2024

Are we planning to remove MIXXX_USE_QOPENGL in this case?
I guess that doesn't not invalidate this PR, since this is already decoupling the rendering backend complexity away from the waveform type.
When it comes to RGB L/R, is it really something that people use? On LateNight default colour scheme, it just make the waveform even more rainbow looking and hard to follow. We could add a check box when RGB is selected, but since this task is to simplify the UX, I'm wondering if this is really necessary


Joerg replied

When it comes to RGB L/R, is it really something that people use?

Yes, we had the discussion already, this is why it got implemented. The old GLSL waveforms had this (but looking different), and to deprecated them requires feature-equality.

@acolombier
Copy link
Member Author

(not sure why you edited my message?)
It doesn't quite make sense as of why there will be two separate waveform renderer tho. Arguably, if this is used, the same option should be done for the HSV waveform.
Anyway, I'm going to add another checkbox.

@github-actions github-actions bot added the build label May 8, 2024
@acolombier
Copy link
Member Author

I have merged the RGB L/R and RGB in a single renderer, and introduced rendering option, which can be reused with HSV in the future, giving slip mode renderer as a free bonus. Happy to move this commit in a dedicated PR. Would be great if @m0dB could have a quick look on that section!

@acolombier acolombier force-pushed the feat/simplify-waveform-combobox branch from 5c47786 to abd6302 Compare May 8, 2024 17:17
@acolombier
Copy link
Member Author

Right, I think this is pretty much ready. The only outstanding question I have is, should I hide the Acceleration checkbox is not available/only available? Since I do the following for the L/R option, it might keep it consistent

@JoergAtGithub
Copy link
Member

JoergAtGithub commented May 8, 2024

(not sure why you edited my message?)

I did not edit it intentional - sorry - I just intended to reply

@acolombier acolombier force-pushed the feat/simplify-waveform-combobox branch from abd6302 to 0907c2e Compare May 9, 2024 14:02
@acolombier
Copy link
Member Author

Right, that should be ready for review now.
Once #13151 (and #12641) are in, it should be straight forward to retire the legacy waveforms.

@acolombier acolombier marked this pull request as ready for review May 9, 2024 14:04
@ywwg
Copy link
Member

ywwg commented May 9, 2024

this is a great quality-of-life fix! thank you

@acolombier acolombier marked this pull request as draft May 10, 2024 19:37
@m0dB
Copy link
Contributor

m0dB commented May 11, 2024

This is nice.

@acolombier acolombier force-pushed the feat/simplify-waveform-combobox branch from 8077ed0 to 10c4e51 Compare May 12, 2024 16:00
@acolombier
Copy link
Member Author

acolombier commented May 12, 2024

I've updated the UI and behaviour according to what #13226 mentioned. @m0dB I have already added the High details option so hopefully will make the integration with #13151 seamless.

Code is a bit dirty in some places, especially in the factory, but hopefully with your help, we can make it good enough.

Here is the demo:

Kooha-2024-05-12-16-58-50.mp4

@acolombier acolombier marked this pull request as ready for review May 12, 2024 16:03
@acolombier acolombier force-pushed the feat/simplify-waveform-combobox branch from 264bb21 to 1352d7b Compare May 14, 2024 11:23
@acolombier
Copy link
Member Author

I think we got everything in order now

Copy link
Member

@Swiftb0y Swiftb0y left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Any1 else wanting to take a look (just in case I missed any grave errors, not for trivial stuff like I nitpicked in this round)?

src/preferences/upgrade.cpp Outdated Show resolved Hide resolved
src/preferences/upgrade.cpp Outdated Show resolved Hide resolved
src/preferences/upgrade.cpp Show resolved Hide resolved
src/preferences/upgrade.cpp Show resolved Hide resolved
@ronso0
Copy link
Member

ronso0 commented May 25, 2024

I didn't look into the ui file in detail, just want to share a few thoughts on the UI/UX:

  • I think it'd look better if Acceleration, Stereo and High Details are in one row
  • the label "This function requires ..." should only be shown if waveforms are enabled and acceleration is disabled
  • for consistency, all waveform-related options should be greyed out (end-of-track, play position, ...)
  • while working on allow changing the waveform overview type without reloading the skin #13273 I noticed we should move the overview options into their own section, because if we do disable all waveform options, the overview options are in between those disabled options which is a bit confusing IMO
    Maybe move the Overview options to the top so they're more discoverable than below the Waveform option?
    Maybe use QGroupBoxes for waveform and overview?

I'll check if I can provide some demo commits tomorrow.

@acolombier
Copy link
Member Author

Thanks for your input @ronso0
Are you okay with this being improved in a follow up PR?

@ronso0
Copy link
Member

ronso0 commented May 25, 2024

Sure.

@Swiftb0y
Copy link
Member

@acolombier do you have time to update the upgrade.cpp code? Then we can merge.

@Swiftb0y
Copy link
Member

also @ywwg please double check your review and approve/dismiss so we can get this cleared formally.

@acolombier
Copy link
Member Author

I should get the time sometime today or tomorrow hopefully.

@ronso0
Copy link
Member

ronso0 commented May 30, 2024

This has really finally been bumped to 2.6?
I though there was the goal to clean this up for 2.5

@acolombier
Copy link
Member Author

This has really finally been bumped to 2.6? I though there was the goal to clean this up for 2.5

This is only the first part of the clean up, more is to come. I'm afraid it might not be ready in time and we probably don't want to delay 2.5 for that

Copy link
Member

@ywwg ywwg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm!

@ywwg
Copy link
Member

ywwg commented May 30, 2024

(I am not sure if we have to explicitly wait for @m0dB and @ronso0 since they did not make must-address comments? I am still unsure how we handle multi-reviewer PRs. It sounded like Ronso0 was lgtm)

@acolombier
Copy link
Member Author

Ideally, I just would like confirmation that this is fine from @m0dB. Alternatively, I think it is small enough to be fixed in later PRs if it isn't.

@Swiftb0y
Copy link
Member

I think as long as they aren't requests for changes its fine. I think thats the only justification anyways for there being a difference between "Comment" and "Request Changes" anyways

@acolombier acolombier force-pushed the feat/simplify-waveform-combobox branch from e0232a2 to 06c2015 Compare May 30, 2024 18:35
Copy link
Member

@Swiftb0y Swiftb0y left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah. so all the additional refactorings here leave this in a difficult state. The software fallback waveforms of course work, but the hardware waveforms sometimes crash my gnome-shell completely. That has already been the case previously (with the legacy GLSL waveforms IIRC), but now it has become more difficult to tell when this happens. also the Stacked and the Simple waveforms don't work at all (though not producing any crashes).

This is on fedora 39.

@acolombier
Copy link
Member Author

Could you provide more information? How to reproduce? What is the crash? Message log? Are you able to reproduce this on main using the same allshader waveform?

@Swiftb0y
Copy link
Member

Whoops. I'm sorry for the false alarm. I did some more digging and I'm pretty sure I suffered from https://gitlab.gnome.org/GNOME/mutter/-/issues/3462. After carefully ensuring I've upgraded to gnome 46.2 all the waveforms work again (at least without crashes and other regressions).

Copy link
Member

@Swiftb0y Swiftb0y left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did some tests, now that mutter fixed the issue, it works well

@Swiftb0y Swiftb0y merged commit 4d9db3e into mixxxdj:main May 31, 2024
13 checks passed
@Swiftb0y
Copy link
Member

Swiftb0y commented May 31, 2024

Thank you for your continued efforts and sticking around enough to get this huge PR merged btw @acolombier
Also thank you for your simplification PRs @m0dB

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.

6 participants