mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.25k stars 1.24k forks source link

Allow to quickly restore accidentally deleted cue point #13307

Open spotlesscoder opened 1 month ago

spotlesscoder commented 1 month ago

Feature Description

I wanted to delete a cue point but while holding shift on my DJ505, I accidentally hit the wrong hot cue and deleted the wrong cue point. I can not remember where that cue point was and now it's gone until I remeber.

This can be very annoying in a live situation Please implement an undo for cue point deletion

acolombier commented 1 month ago

I experienced a similar situation, when triggering a hot-cue while shifting on the S4Mk3.

An alternative could be a way to "lock" hotcues, so this can be toggles or enabled while performing live and prevent accidentally deleting hotcues

Swiftb0y commented 1 month ago

The undo request fits into the broader request of being able to undo ControlObject changes, which is something that's not very easy to implement currently.

ronso0 commented 1 month ago

I think for hotcues that's not too hard to implement, at least for cues deleted with hotcue_X_clear and immediate restore (similar to un-eject / un-replace): CueControl could very well store the deleted Cue, or its properties, in CueControl::hotcueClear. If you notice the mistake, hotcue_X_clear for any empty hotcue could try restore that cue exactly where it was (slot, position, length). For an immediate undo that could work okayish IMO.

If the slot is already occupied, choose the next free slot. For other scenarios it would be a bit more elaborate.

A more compound "cue undo" solution would have to be implemented in the Track class, Track::createAndAddCue() and Track::removeCue().