From a6315a780d878cdd7d0c8e96be65042497f9b61b Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 2 Oct 2022 12:25:01 -0700 Subject: [PATCH] timeline: started implementation of multicam function --- app/widget/timelinewidget/timelinewidget.cpp | 39 ++++++++++++++++++++ app/widget/timelinewidget/timelinewidget.h | 3 ++ 2 files changed, 42 insertions(+) diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index e53d77f0d..9941d061a 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -1234,6 +1234,31 @@ void TimelineWidget::ShowContextMenu() QAction *reveal_in_project = menu.addAction(tr("Reveal in Project")); reveal_in_project->setData(reinterpret_cast(clip->connected_viewer())); connect(reveal_in_project, &QAction::triggered, this, &TimelineWidget::RevealInProject); + + /*if (Sequence *sequence = dynamic_cast(clip->connected_viewer())) { + Menu *multicam_menu = new Menu(tr("Multi-Cam"), &menu); + menu.addMenu(multicam_menu); + + QAction *multicam_enabled = multicam_menu->addAction(tr("Enabled")); + multicam_enabled->setCheckable(true); + + auto mcn = sequence->FindOutputNode(); + multicam_enabled->setChecked(!mcn.empty()); + + multicam_menu->addSeparator(); + + QAction *multicam_update = multicam_menu->addAction(tr("Update")); + multicam_update->setEnabled(!mcn.empty()); + + if (!mcn.empty()) { + auto n = mcn.first(); + multicam_enabled->setProperty("multicam", Node::PtrToValue(n)); + multicam_update->setProperty("multicam", Node::PtrToValue(n)); + } + + connect(multicam_enabled, &QAction::triggered, this, &TimelineWidget::MulticamEnabledTriggered); + connect(multicam_update, &QAction::triggered, this, &TimelineWidget::MulticamUpdateTriggered); + }*/ } } @@ -1465,6 +1490,20 @@ void TimelineWidget::CacheDiscard() } } +void TimelineWidget::MulticamEnabledTriggered(bool e) +{ + if (e) { + // Add multicam node + } else if (MultiCamNode *m = Node::ValueToPtr(sender()->property("multicam"))) { + // Remove multicam node + } +} + +void TimelineWidget::MulticamUpdateTriggered() +{ + // Update multicam node +} + void TimelineWidget::AddGhost(TimelineViewGhostItem *ghost) { ghost_items_.append(ghost); diff --git a/app/widget/timelinewidget/timelinewidget.h b/app/widget/timelinewidget/timelinewidget.h index dd081af0f..998e56869 100644 --- a/app/widget/timelinewidget/timelinewidget.h +++ b/app/widget/timelinewidget/timelinewidget.h @@ -446,6 +446,9 @@ private slots: void CacheClipsInOut(); void CacheDiscard(); + void MulticamEnabledTriggered(bool e); + void MulticamUpdateTriggered(); + }; }