From 21165cb2ff8d83122e642720eae934cab37f4c1c Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 19 Dec 2021 13:19:31 -0800 Subject: [PATCH] implemented node flags --- app/node/block/block.cpp | 2 ++ app/node/math/merge/merge.cpp | 2 ++ app/node/node.cpp | 3 ++- app/node/node.h | 17 +++++++++++++++++ app/node/output/viewer/viewer.cpp | 2 ++ app/widget/nodeparamview/nodeparamview.cpp | 14 +++++++++++--- 6 files changed, 36 insertions(+), 4 deletions(-) diff --git a/app/node/block/block.cpp b/app/node/block/block.cpp index 34f87b2e1..a726d6b0f 100644 --- a/app/node/block/block.cpp +++ b/app/node/block/block.cpp @@ -47,6 +47,8 @@ Block::Block() : IgnoreHashingFrom(kLengthInput); AddInput(kEnabledInput, NodeValue::kBoolean, true, InputFlags(kInputFlagNotConnectable | kInputFlagNotKeyframable)); + + SetFlags(kDontShowInParamView); } QVector Block::Category() const diff --git a/app/node/math/merge/merge.cpp b/app/node/math/merge/merge.cpp index f5bd9ed0d..5b1582c84 100644 --- a/app/node/math/merge/merge.cpp +++ b/app/node/math/merge/merge.cpp @@ -32,6 +32,8 @@ MergeNode::MergeNode() AddInput(kBaseIn, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); AddInput(kBlendIn, NodeValue::kTexture, InputFlags(kInputFlagNotKeyframable)); + + SetFlags(kDontShowInParamView); } Node *MergeNode::copy() const diff --git a/app/node/node.cpp b/app/node/node.cpp index ad406a8bb..e76ece9e5 100644 --- a/app/node/node.cpp +++ b/app/node/node.cpp @@ -47,7 +47,8 @@ Node::Node() : override_color_(-1), folder_(nullptr), operation_stack_(0), - cache_result_(false) + cache_result_(false), + flags_(kNone) { uuid_ = QUuid::createUuid(); } diff --git a/app/node/node.h b/app/node/node.h index 92d06e63f..299e9b5ae 100644 --- a/app/node/node.h +++ b/app/node/node.h @@ -94,6 +94,11 @@ public: kCategoryCount }; + enum Flag { + kNone = 0, + kDontShowInParamView = 0x1 + }; + Node(); virtual ~Node() override; @@ -116,6 +121,11 @@ public: const QUuid &GetUUID() const {return uuid_;} void SetUUID(const QUuid &uuid) {uuid_ = uuid;} + const uint64_t &GetFlags() const + { + return flags_; + } + /** * @brief Clear current node variables and replace them with */ @@ -1036,6 +1046,11 @@ protected: tooltip_ = s; } + void SetFlags(const uint64_t &f) + { + flags_ = f; + } + signals: /** * @brief Signal emitted when SetLabel() is called @@ -1315,6 +1330,8 @@ private: QUuid uuid_; + uint64_t flags_; + private slots: /** * @brief Slot when a keyframe's time changes to keep the keyframes correctly sorted by time diff --git a/app/node/output/viewer/viewer.cpp b/app/node/output/viewer/viewer.cpp index 8e257f6e9..82e5acdc6 100644 --- a/app/node/output/viewer/viewer.cpp +++ b/app/node/output/viewer/viewer.cpp @@ -66,6 +66,8 @@ ViewerOutput::ViewerOutput(bool create_buffer_inputs, bool create_default_stream AddStream(Track::kAudio, QVariant()); set_default_parameters(); } + + SetFlags(kDontShowInParamView); } Node *ViewerOutput::copy() const diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index f4dee8b7c..268bf4af0 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -76,8 +76,16 @@ NodeParamView::NodeParamView(bool create_keyframe_view, QWidget *parent) : for (int i=0; isetVisible(false); - static_cast(c->titleBarWidget())->SetAddEffectButtonVisible(i == Track::kVideo || i == Track::kAudio); - static_cast(c->titleBarWidget())->SetText(Footage::GetStreamTypeName(static_cast(i))); + + NodeParamViewItemTitleBar *title_bar = static_cast(c->titleBarWidget()); + + if (i == Track::kVideo || i == Track::kAudio) { + title_bar->SetAddEffectButtonVisible(true); + title_bar->SetText(tr("%1 Nodes").arg(Footage::GetStreamTypeName(static_cast(i)))); + } else { + title_bar->SetText(tr("Other")); + } + context_items_[i] = c; param_widget_area_->AddItem(c); } @@ -259,7 +267,7 @@ void NodeParamView::SetContexts(const QVector &contexts) item->setVisible(true); for (auto it=ctx->GetContextPositions().cbegin(); it!=ctx->GetContextPositions().cend(); it++) { - if (!dynamic_cast(it.key()) && !dynamic_cast(it.key())) { + if (!(it.key()->GetFlags() & Node::kDontShowInParamView)) { AddNode(it.key(), item); } }