mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.

Home Page:http://mixxx.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 of WOverview::mousePressEvent and WOverview::mouseReleaseEvent
    • if (e->button() == Qt::LeftButton) branches of WWaveformViewer::mousePressEvent and WWaveformViewer::mouseReleaseEvent
    • WWaveformViewer::wheelEvent
commented

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!