Allow to disable mouse interactivity with waveforms
spotlesscoder opened this issue · comments
Feature Description
During a live performance I want to prevent accidentally pausing a track by accidentally clicking the touchpad while the mouse is over a waveform
Also I want to prevent accidentally seeking back and forth a playing track with the mouse when accidentally pressing the touchpad
Add an option to the "Waveforms" settings section that disables mouse interaction with the waveforms
For anyone who wants to work on this:
- the Waveforms preferences need a new option: disable mouse interaction
- read that config setting in
if (e->button() == Qt::LeftButton)
branches ofWOverview::mousePressEvent
andWOverview::mouseReleaseEvent
if (e->button() == Qt::LeftButton)
branches ofWWaveformViewer::mousePressEvent
andWWaveformViewer::mouseReleaseEvent
WWaveformViewer::wheelEvent
Do you think a preference is the way to go? Isn't that something that you might want to toggle quickly? Another issue I see with a preference is that it is a bit too hidden. I can imagine myself panicking "the waveform interaction is broken!" when I forget I turned mouse interaction off.
Yeah I also was thinking about have a "perform" button in the main UI that when clicked enables a live performance mode that changes some of the default behaviour of mixxx with just a single click
These, then temporary preference overrides, might be pre-configured in the preferences window.
For example, the user also might to opt-in to automatically record performances when the perform button was pressed etc. etc.
Wdyt about essentially having a "scratch" button as on most controllers. So if "scratch" is enabled, the waveform would work exactly as it does right now, if its disabled, dragging the waveform only causes a slight tempo change. This doesn't completely disable the behavior, but accidentally touching the waveform results in a much less severe effect. The new behavior would also be a nice extra feature and it would justify adding the extra button to the UI (while I don't think it would be justified for simply disabling the interaction).
That sounds good!