From 3369bb53f9d38dedf54dc847618261b933aa7da2 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 3 Jan 2020 21:14:27 +1100 Subject: [PATCH] implement double clicking a sequence in the project explorer to open it --- app/core.cpp | 2 +- app/panel/project/project.cpp | 4 +++- app/project/item/sequence/sequence.cpp | 4 ++-- app/project/item/sequence/sequence.h | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/core.cpp b/app/core.cpp index 426d0eab1..e85f6e26e 100644 --- a/app/core.cpp +++ b/app/core.cpp @@ -337,7 +337,7 @@ void Core::CreateNewSequence() Core::instance()->undo_stack()->push(aic); - Sequence::Open(new_sequence); + Sequence::Open(new_sequence.get()); } } diff --git a/app/panel/project/project.cpp b/app/panel/project/project.cpp index 7d17b8e27..813a8e38b 100644 --- a/app/panel/project/project.cpp +++ b/app/panel/project/project.cpp @@ -26,6 +26,7 @@ #include "core.h" #include "panel/footageviewer/footageviewer.h" #include "panel/panelmanager.h" +#include "project/item/sequence/sequence.h" #include "widget/menu/menushared.h" #include "widget/projecttoolbar/projecttoolbar.h" @@ -127,7 +128,8 @@ void ProjectPanel::ItemDoubleClickSlot(Item *item) // Open this footage in a FootageViewer PanelManager::instance()->MostRecentlyFocused()->SetFootage(static_cast(item)); } else if (item->type() == Item::kSequence) { - // FIXME: Open this sequence in the Timeline + // Open this sequence in the Timeline + Sequence::Open(static_cast(item)); } } diff --git a/app/project/item/sequence/sequence.cpp b/app/project/item/sequence/sequence.cpp index b917c9860..45d55be55 100644 --- a/app/project/item/sequence/sequence.cpp +++ b/app/project/item/sequence/sequence.cpp @@ -39,7 +39,7 @@ Sequence::Sequence() : { } -void Sequence::Open(SequencePtr sequence) +void Sequence::Open(Sequence* sequence) { // FIXME: This is fairly "hardcoded" behavior and doesn't support infinite panels @@ -49,7 +49,7 @@ void Sequence::Open(SequencePtr sequence) viewer_panel->ConnectViewerNode(sequence->viewer_output_); timeline_panel->ConnectTimelineNode(sequence->timeline_output_); - node_panel->SetGraph(sequence.get()); + node_panel->SetGraph(sequence); } void Sequence::add_default_nodes() diff --git a/app/project/item/sequence/sequence.h b/app/project/item/sequence/sequence.h index 208ca53c4..f191c5b2b 100644 --- a/app/project/item/sequence/sequence.h +++ b/app/project/item/sequence/sequence.h @@ -39,7 +39,7 @@ class Sequence : public Item, public NodeGraph public: Sequence(); - static void Open(SequencePtr sequence); + static void Open(Sequence *sequence); void add_default_nodes();