Add basic marker deleting and fix selection code

This commit is contained in:
Thomas Wilshaw
2021-10-22 22:15:52 +01:00
parent 0044174f3d
commit c445dc46a9
6 changed files with 31 additions and 14 deletions
+8 -3
View File
@@ -47,6 +47,14 @@ void Marker::SetActive(bool active)
{
active_ = active;
// Feels very hacky, might it be better to write some access methods?
if (active) {
TimelineWidget *timeline = dynamic_cast<TimelineWidget *>(parent()->parent());
if (timeline) {
static_cast<TimelineWidget *>(parent()->parent())->DeselectAll();
}
}
update();
}
@@ -109,9 +117,6 @@ void Marker::mousePressEvent(QMouseEvent* e)
update();
}
// Feels very hacky, might it be better to write some access methods?
static_cast<TimelineWidget *>(parent()->parent())->DeselectAll();
}
void Marker::ShowContextMenu() {
@@ -475,6 +475,10 @@ void TimelineWidget::ReplaceBlocksWithGaps(const QVector<Block *> &blocks,
void TimelineWidget::DeleteSelected(bool ripple)
{
if (ruler()->GetActiveTimelineMarkers().size() > 0) {
ruler()->DeleteSelected();
return;
}
QVector<Block*> selected_list = GetSelectedBlocks();
QVector<Block*> blocks_to_delete;
+16
View File
@@ -69,6 +69,7 @@ void SeekableWidget::ConnectTimelinePoints(TimelinePoints *points)
connect(timeline_points_->markers(), &TimelineMarkerList::MarkerRemoved, this, static_cast<void (SeekableWidget::*)()>(&SeekableWidget::update));
connect(timeline_points_->markers(), &TimelineMarkerList::MarkerAdded, this, &SeekableWidget::addMarker);
connect(timeline_points_->markers(), &TimelineMarkerList::MarkerRemoved, this, &SeekableWidget::removeMarker);
}
if (timeline_points() && !timeline_points()->markers()->list().isEmpty()) {
@@ -89,6 +90,15 @@ void SeekableWidget::SetSnapService(SnapService *service)
snap_service_ = service;
}
void SeekableWidget::DeleteSelected() {
foreach (TimelineMarker *marker, GetActiveTimelineMarkers()) {
//marker_map_.value(marker)->deleteLater();
//marker_map_.take(marker);
timeline_points()->markers()->RemoveMarker(marker);
// GetActiveMarkers().value(marker)->deleteLater();
}
}
const int &SeekableWidget::GetScroll() const
{
return scroll_;
@@ -189,6 +199,12 @@ void SeekableWidget::addMarker(TimelineMarker* marker)
}
}
void SeekableWidget::removeMarker(TimelineMarker *marker)
{
marker_map_.value(marker)->deleteLater();
marker_map_.take(marker);
}
void SeekableWidget::SetMarkerColor(int c)
{
foreach(TimelineMarker* marker, GetActiveTimelineMarkers()) {
+3 -1
View File
@@ -53,7 +53,7 @@ public:
return dragging_;
}
virtual void DeleteSelected(){};
void DeleteSelected();
QVector<TimelineMarker*> GetActiveTimelineMarkers();
@@ -68,6 +68,8 @@ public slots:
void addMarker(TimelineMarker* marker);
void removeMarker(TimelineMarker* marker);
void updateMarkerPositions();
void SetMarkerColor(int c);
-8
View File
@@ -83,14 +83,6 @@ void TimeRuler::SetPlaybackCache(PlaybackCache *cache)
update();
}
void TimeRuler::DeleteSelected()
{
foreach(TimelineMarker* marker, GetActiveTimelineMarkers()) {
timeline_points()->markers()->RemoveMarker(marker);
//GetActiveMarkers().value(marker)->deleteLater();
}
}
void TimeRuler::paintEvent(QPaintEvent *)
{
// Nothing to paint if the timebase is invalid
-2
View File
@@ -41,8 +41,6 @@ public:
void SetPlaybackCache(PlaybackCache* cache);
virtual void DeleteSelected() override;
protected:
virtual void paintEvent(QPaintEvent* e) override;