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

Replace RMB on FX grid slot with context menu #5613

Closed
mkruselj opened this issue Dec 10, 2021 · 7 comments · Fixed by #5929
Closed

Replace RMB on FX grid slot with context menu #5613

mkruselj opened this issue Dec 10, 2021 · 7 comments · Fixed by #5929
Labels
Feature Request New feature request UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc.
Milestone

Comments

@mkruselj
Copy link
Collaborator

mkruselj commented Dec 10, 2021

Currently we use right-click to toggle bypass of an effect slot in the FX grid. And we use double-click on waveshaper curve display and filter type icons. Inconsistent!

What's worse, in order to load an effect, you need to first select the slot you want, then move mouse down and pick an effect. Inefficient!

So for 1.1, replace RMB bypass on FX grid slot with a context menu (same as the FX preset menu, for simplicity), and add double-click to bypass. Easy!

@mkruselj mkruselj added Feature Request New feature request UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc. labels Dec 10, 2021
@mkruselj mkruselj added this to the After Surge XT 1.0 milestone Dec 10, 2021
mkruselj added a commit to mkruselj/surge that referenced this issue Dec 10, 2021
Add double click to toggle FX slot bypass. Addresses 50% of surge-synthesizer#5613.

Fix Spring Reverb default presets (Mix parameter wasn't loading correctly after Knock parameter was added)
baconpaul pushed a commit that referenced this issue Dec 10, 2021
Add double click to toggle FX slot bypass. Addresses 50% of #5613.

Fix Spring Reverb default presets (Mix parameter wasn't loading correctly after Knock parameter was added)
@baconpaul
Copy link
Collaborator

When we do this, do shift f10 for the menu also, don't forget.

@mkruselj mkruselj changed the title Replace RMB on FX grid slot with context menu, double-click to toggle bypass instead Replace RMB on FX grid slot with context menu Jan 10, 2022
@baconpaul
Copy link
Collaborator

baconpaul commented Jan 15, 2022

And an accessibility check
I can do that if someone else does the core feature of course but let’s not close this until we have both the menu and accesibility checked. Cool feature

@mkruselj mkruselj added the Code Hints Requested Someone would like to tackle this but wants a few pointers on how to start label Jan 15, 2022
@baconpaul
Copy link
Collaborator

What's the code hint needed here?

I think it really is just have RMB do control modifier clicked and then handle the menu in SurgeGUIValueEditorCallback::controlModifierClicked. Something else stuck on?

@baconpaul baconpaul removed the Code Hints Requested Someone would like to tackle this but wants a few pointers on how to start label Jan 15, 2022
@mkruselj
Copy link
Collaborator Author

The whole FX preset menu is created not in SGEVC but in XMLConfiiguredMenus, that's what trips me up.

@baconpaul
Copy link
Collaborator

Yeah but just ad a method to the menu which calls a method on fxmeny which then does the first listener of type on sge then calls a method on sge of your choosing.

@baconpaul
Copy link
Collaborator

Oh but I see you want the preset menu on the rmb menu of the effect widget right. Gnunk. Have to think about that one if so. Putting hints back on this issue

@baconpaul baconpaul added the Code Hints Requested Someone would like to tackle this but wants a few pointers on how to start label Jan 15, 2022
@mkruselj mkruselj removed the Code Hints Requested Someone would like to tackle this but wants a few pointers on how to start label Mar 4, 2022
@mkruselj
Copy link
Collaborator Author

mkruselj commented Mar 4, 2022

From baconpaul:

But what you actually want to do is call

FxMenu->menu.showMenuAsync

So how do you get the FxMenu? Well SurgeGUIEditor::fxMenu is a unique_ptr to it. If it is not null you can use the code

if (sge && sge->fxMenu)
   sge->fxMenu.menu.showMenuAsync()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request New feature request UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants