From 7eae6a85f8af28ed8d853ab35344dbcaa35a7d8d Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 2 Jan 2020 05:59:37 +1100 Subject: [PATCH] fixed bug that wouldn't clear TrackViewItems when a new sequence was opened --- app/project/item/sequence/sequence.cpp | 15 --------------- app/widget/timelinewidget/trackview/trackview.cpp | 4 +++- app/window/mainwindow/mainwindow.cpp | 13 +++++++++++++ 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/project/item/sequence/sequence.cpp b/app/project/item/sequence/sequence.cpp index c379f4e0f..b917c9860 100644 --- a/app/project/item/sequence/sequence.cpp +++ b/app/project/item/sequence/sequence.cpp @@ -46,25 +46,10 @@ void Sequence::Open(SequencePtr sequence) ViewerPanel* viewer_panel = PanelManager::instance()->MostRecentlyFocused(); TimelinePanel* timeline_panel = PanelManager::instance()->MostRecentlyFocused(); NodePanel* node_panel = PanelManager::instance()->MostRecentlyFocused(); - ParamPanel* param_panel = PanelManager::instance()->MostRecentlyFocused(); - CurvePanel* curve_panel = PanelManager::instance()->MostRecentlyFocused(); viewer_panel->ConnectViewerNode(sequence->viewer_output_); timeline_panel->ConnectTimelineNode(sequence->timeline_output_); node_panel->SetGraph(sequence.get()); - - connect(timeline_panel, &TimelinePanel::TimeChanged, param_panel, &ParamPanel::SetTime); - connect(timeline_panel, &TimelinePanel::TimeChanged, viewer_panel, &ViewerPanel::SetTime); - connect(timeline_panel, &TimelinePanel::TimeChanged, curve_panel, &CurvePanel::SetTime); - connect(viewer_panel, &ViewerPanel::TimeChanged, param_panel, &ParamPanel::SetTime); - connect(viewer_panel, &ViewerPanel::TimeChanged, timeline_panel, &TimelinePanel::SetTime); - connect(viewer_panel, &ViewerPanel::TimeChanged, curve_panel, &CurvePanel::SetTime); - connect(param_panel, &ParamPanel::TimeChanged, viewer_panel, &ViewerPanel::SetTime); - connect(param_panel, &ParamPanel::TimeChanged, timeline_panel, &TimelinePanel::SetTime); - connect(param_panel, &ParamPanel::TimeChanged, curve_panel, &CurvePanel::SetTime); - connect(curve_panel, &CurvePanel::TimeChanged, viewer_panel, &ViewerPanel::SetTime); - connect(curve_panel, &CurvePanel::TimeChanged, timeline_panel, &TimelinePanel::SetTime); - connect(curve_panel, &CurvePanel::TimeChanged, param_panel, &ParamPanel::SetTime); } void Sequence::add_default_nodes() diff --git a/app/widget/timelinewidget/trackview/trackview.cpp b/app/widget/timelinewidget/trackview/trackview.cpp index a4fcea2dd..077d45606 100644 --- a/app/widget/timelinewidget/trackview/trackview.cpp +++ b/app/widget/timelinewidget/trackview/trackview.cpp @@ -60,7 +60,9 @@ void TrackView::ConnectTrackList(TrackList *list) if (list_ != nullptr) { foreach (TrackOutput* track, list_->Tracks()) { - splitter_->Insert(track->Index(), track->GetTrackHeight(), new TrackViewItem(track)); + TrackViewItem* item = new TrackViewItem(track); + items_.append(item); + splitter_->Insert(track->Index(), track->GetTrackHeight(), item); } connect(list_, SIGNAL(TrackHeightChanged(int, int)), splitter_, SLOT(SetTrackHeight(int, int))); diff --git a/app/window/mainwindow/mainwindow.cpp b/app/window/mainwindow/mainwindow.cpp index 5351b9c67..c69ea445c 100644 --- a/app/window/mainwindow/mainwindow.cpp +++ b/app/window/mainwindow/mainwindow.cpp @@ -74,9 +74,22 @@ MainWindow::MainWindow(QWidget *parent) : curve_panel_ = PanelManager::instance()->CreatePanel(this); addDockWidget(Qt::BottomDockWidgetArea, curve_panel_); + // FIXME: This is fairly "hardcoded" behavior and doesn't support infinite panels connect(node_panel_, &NodePanel::SelectionChanged, param_panel_, &ParamPanel::SetNodes); connect(param_panel_, &ParamPanel::SelectedInputChanged, curve_panel_, &CurvePanel::SetInput); connect(param_panel_, &ParamPanel::TimebaseChanged, curve_panel_, &CurvePanel::SetTimebase); + connect(timeline_panel_, &TimelinePanel::TimeChanged, param_panel_, &ParamPanel::SetTime); + connect(timeline_panel_, &TimelinePanel::TimeChanged, viewer_panel_, &ViewerPanel::SetTime); + connect(timeline_panel_, &TimelinePanel::TimeChanged, curve_panel_, &CurvePanel::SetTime); + connect(viewer_panel_, &ViewerPanel::TimeChanged, param_panel_, &ParamPanel::SetTime); + connect(viewer_panel_, &ViewerPanel::TimeChanged, timeline_panel_, &TimelinePanel::SetTime); + connect(viewer_panel_, &ViewerPanel::TimeChanged, curve_panel_, &CurvePanel::SetTime); + connect(param_panel_, &ParamPanel::TimeChanged, viewer_panel_, &ViewerPanel::SetTime); + connect(param_panel_, &ParamPanel::TimeChanged, timeline_panel_, &TimelinePanel::SetTime); + connect(param_panel_, &ParamPanel::TimeChanged, curve_panel_, &CurvePanel::SetTime); + connect(curve_panel_, &CurvePanel::TimeChanged, viewer_panel_, &ViewerPanel::SetTime); + connect(curve_panel_, &CurvePanel::TimeChanged, timeline_panel_, &TimelinePanel::SetTime); + connect(curve_panel_, &CurvePanel::TimeChanged, param_panel_, &ParamPanel::SetTime); } void MainWindow::SetFullscreen(bool fullscreen)