From 6b13d806c692ad6f91c516e137102e4d1e326d33 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Fri, 10 Jun 2022 11:44:12 -0700 Subject: [PATCH] nodeparamview: correctly show video and audio node options --- app/widget/nodeparamview/nodeparamview.cpp | 1 + .../nodeparamview/nodeparamviewcontext.cpp | 22 +++++++++++++++++-- .../nodeparamview/nodeparamviewcontext.h | 4 ++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 99a4cd95f..c3ab8be03 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -85,6 +85,7 @@ NodeParamView::NodeParamView(bool create_keyframe_view, QWidget *parent) : NodeParamViewItemTitleBar *title_bar = static_cast(c->titleBarWidget()); if (i == Track::kVideo || i == Track::kAudio) { + c->SetEffectType(static_cast(i)); title_bar->SetAddEffectButtonVisible(true); title_bar->SetText(tr("%1 Nodes").arg(Footage::GetStreamTypeName(static_cast(i)))); } else { diff --git a/app/widget/nodeparamview/nodeparamviewcontext.cpp b/app/widget/nodeparamview/nodeparamviewcontext.cpp index 6e83a617b..1d3a22253 100644 --- a/app/widget/nodeparamview/nodeparamviewcontext.cpp +++ b/app/widget/nodeparamview/nodeparamviewcontext.cpp @@ -31,7 +31,8 @@ namespace olive { #define super NodeParamViewItemBase NodeParamViewContext::NodeParamViewContext(QWidget *parent) : - super(parent) + super(parent), + type_(Track::kNone) { QWidget *body = new QWidget(); QHBoxLayout *body_layout = new QHBoxLayout(body); @@ -126,13 +127,30 @@ void NodeParamViewContext::SetTime(const rational &time) } } +void NodeParamViewContext::SetEffectType(Track::Type type) +{ + type_ = type; +} + void NodeParamViewContext::Retranslate() { } void NodeParamViewContext::AddEffectButtonClicked() { - Menu *m = NodeFactory::CreateMenu(this, false, Node::kCategoryUnknown, Node::kVideoEffect); + Node::Flag flag = Node::kNone; + + if (type_ == Track::kVideo) { + flag = Node::kVideoEffect; + } else { + flag = Node::kAudioEffect; + } + + if (flag == Node::kNone) { + return; + } + + Menu *m = NodeFactory::CreateMenu(this, false, Node::kCategoryUnknown, flag); connect(m, &Menu::triggered, this, &NodeParamViewContext::AddEffectMenuItemTriggered); m->exec(QCursor::pos()); delete m; diff --git a/app/widget/nodeparamview/nodeparamviewcontext.h b/app/widget/nodeparamview/nodeparamviewcontext.h index 256f772aa..11574e2a5 100644 --- a/app/widget/nodeparamview/nodeparamviewcontext.h +++ b/app/widget/nodeparamview/nodeparamviewcontext.h @@ -64,6 +64,8 @@ public: void SetTime(const rational &time); + void SetEffectType(Track::Type type); + signals: void AboutToDeleteItem(NodeParamViewItem *item); @@ -88,6 +90,8 @@ private: QVector items_; + Track::Type type_; + private slots: void AddEffectButtonClicked();