timeline: handle users deleting tentative subtitle track
Fixes potential crash if users try to do this
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user