Allow markers to be selected

This commit is contained in:
Thomas Wilshaw
2021-10-22 22:15:51 +01:00
parent ca807b7b66
commit 853dbc0066
11 changed files with 94 additions and 2 deletions
+23
View File
@@ -150,6 +150,18 @@ void SeekableWidget::SetScroll(int s)
update();
}
QMap<TimelineMarker *, Marker *> SeekableWidget::GetActiveMarkers() {
QMap<TimelineMarker *, Marker *> active_markers;
foreach(TimelineMarker* marker, marker_map_.keys()) {
if (marker_map_.value(marker)->active()) {
active_markers.insert(marker, marker_map_.value(marker));
}
}
return active_markers;
}
void SeekableWidget::addMarker(TimelineMarker* marker)
{
if (!marker_map_.contains(marker)) {
@@ -158,6 +170,7 @@ void SeekableWidget::addMarker(TimelineMarker* marker)
connect(marker_widget, &Marker::ColorChanged, marker, &TimelineMarker::set_color);
connect(marker, &TimelineMarker::ColorChanged, marker_widget, &Marker::SetColor);
connect(marker_widget, &Marker::markerSelected, this, &SeekableWidget::markerSelected);
marker_widget->move(TimeToScreen(marker->time().in()), 20);
marker_widget->SetColor(marker->color());
@@ -173,6 +186,16 @@ void SeekableWidget::updateMarkerPositions()
}
}
void SeekableWidget::markerSelected(Marker* marker)
{
foreach(Marker * marker_widget, marker_map_.values()) {
if (marker_widget != marker) {
marker_widget->set_active(false);
marker_widget->update();
}
}
}
int SeekableWidget::TimeToScreen(const rational &time) const
{
return qFloor(TimeToScene(time)) - scroll_;