diff --git a/src/core/canvas.cpp b/src/core/canvas.cpp index 4b934bd04..2e032e620 100644 --- a/src/core/canvas.cpp +++ b/src/core/canvas.cpp @@ -487,6 +487,12 @@ const std::vector > Canvas::getMarkers() return mMarkers; } +void Canvas::clearMarkers() +{ + mMarkers.clear(); + emit newFrameRange(mRange); +} + stdsptr Canvas::createRenderData() { return enve::make_shared(this); } diff --git a/src/core/canvas.h b/src/core/canvas.h index c09cb5594..7e498cc1c 100644 --- a/src/core/canvas.h +++ b/src/core/canvas.h @@ -365,6 +365,7 @@ class CORE_EXPORT Canvas : public CanvasBase bool hasMarker(const int frame, const bool removeExists = false); const std::vector> getMarkers(); + void clearMarkers(); ColorAnimator *getBgColorAnimator() { diff --git a/src/ui/widgets/framescrollbar.cpp b/src/ui/widgets/framescrollbar.cpp index 9623a7925..3f588403b 100644 --- a/src/ui/widgets/framescrollbar.cpp +++ b/src/ui/widgets/framescrollbar.cpp @@ -285,12 +285,15 @@ void FrameScrollBar::mousePressEvent(QMouseEvent *event) const auto setFrameOutAct = new QAction(tr("Set Frame Out"), this); const auto clearFrameOutAct = new QAction(tr("Clear Frame In/Out"), this); const auto setMarkerAct = new QAction(tr(hasMarker ? "Remove Marker" : "Add Marker"), this); + const auto clearMarkersAct = new QAction(tr("Clear Markers"), this); menu.addSeparator(); menu.addAction(setFrameInAct); menu.addAction(setFrameOutAct); menu.addAction(clearFrameOutAct); + menu.addSeparator(); menu.addAction(setMarkerAct); + menu.addAction(clearMarkersAct); QAction* selectedAction = menu.exec(event->globalPos()); if (selectedAction) { @@ -337,6 +340,10 @@ void FrameScrollBar::mousePressEvent(QMouseEvent *event) if (mCurrentCanvas) { mCurrentCanvas->setMarker(tr("Marker"), mCurrentCanvas->getCurrentFrame()); } + } else if (selectedAction == clearMarkersAct) { + if (mCurrentCanvas) { + mCurrentCanvas->clearMarkers(); + } } } return;