Add basic marker deleting and fix selection code
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -41,8 +41,6 @@ public:
|
||||
|
||||
void SetPlaybackCache(PlaybackCache* cache);
|
||||
|
||||
virtual void DeleteSelected() override;
|
||||
|
||||
protected:
|
||||
virtual void paintEvent(QPaintEvent* e) override;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user