timeline: handle users deleting tentative subtitle track

Fixes potential crash if users try to do this
This commit is contained in:
itsmattkc
2022-05-11 13:47:12 -07:00
parent 78d5314c0a
commit f17c119c29
6 changed files with 85 additions and 31 deletions
@@ -121,9 +121,13 @@ void TrackView::TrackHeightChanged(int index, int height)
void TrackView::InsertTrack(Track *track)
{
TrackViewItem *tvi = new TrackViewItem(track);
connect(tvi, &TrackViewItem::AboutToDeleteTrack, this, &TrackView::AboutToDeleteTrack);
splitter_->Insert(track->Index(),
track->GetTrackHeightInPixels(),
new TrackViewItem(track));
tvi);
}
void TrackView::RemoveTrack(Track *track)
@@ -40,6 +40,9 @@ public:
void ConnectTrackList(TrackList* list);
void DisconnectTrackList();
signals:
void AboutToDeleteTrack(Track *track);
protected:
virtual void resizeEvent(QResizeEvent *e) override;
@@ -145,6 +145,7 @@ void TrackViewItem::ShowContextMenu(const QPoint &p)
void TrackViewItem::DeleteTrack()
{
emit AboutToDeleteTrack(track_);
Core::instance()->undo_stack()->push(new TimelineRemoveTrackCommand(track_));
}
@@ -38,6 +38,9 @@ public:
TrackViewItem(Track* track,
QWidget* parent = nullptr);
signals:
void AboutToDeleteTrack(Track *track);
private:
QPushButton* CreateMSLButton(const QColor &checked_color) const;