6#include "commands/set_clip_loop_points_command.h"
7#include "dsp/tick_types.h"
8#include "structure/arrangement/clip.h"
9#include "undo/undo_stack.h"
10#include "utils/iobject_registry.h"
12#include <QtQmlIntegration/qqmlintegration.h>
14namespace zrythm::actions
30class ClipOperator :
public QObject
37 QML_UNCREATABLE (
"One instance per project")
43 QObject * parent =
nullptr);
47 Q_SIGNAL
void clipChanged ();
57 double clipStartTicks,
58 double loopStartTicks,
72 bool drag_active_{
false };
Q_INVOKABLE void beginClipLoopPointsDrag()
Begin a loop-points drag gesture.
Q_INVOKABLE void updateClipLoopPointsDrag(double clipStartTicks, double loopStartTicks, double loopEndTicks)
Live-update the clip's loop points to the given content-tick positions for visual feedback.
Q_INVOKABLE void abortClipLoopPointsDrag()
Revert the live preview to the pre-drag state without pushing a command.
Q_INVOKABLE void endClipLoopPointsDrag()
Commit the drag: push one SetClipLoopPointsCommand capturing the before/after states.
Intermediate base class for all clip types.
Abstract interface for a UUID-keyed object registry.
Snapshot of the three loop positions plus the track-bounds flag.