node: make convenient input flag setter
This commit is contained in:
@@ -44,7 +44,8 @@ Block::Block() :
|
||||
SetInputProperty(kLengthInput, QStringLiteral("view"), RationalSlider::kTime);
|
||||
SetInputProperty(kLengthInput, QStringLiteral("viewlock"), true);
|
||||
|
||||
SetInputFlags(kEnabledInput, InputFlags(GetInputFlags(kEnabledInput) | kInputFlagNotConnectable | kInputFlagNotKeyframable));
|
||||
SetInputFlag(kEnabledInput, kInputFlagNotConnectable);
|
||||
SetInputFlag(kEnabledInput, kInputFlagNotKeyframable);
|
||||
|
||||
SetFlag(kDontShowInParamView);
|
||||
}
|
||||
|
||||
@@ -30,12 +30,12 @@ SubtitleBlock::SubtitleBlock()
|
||||
{
|
||||
AddInput(kTextIn, NodeValue::kText, InputFlags(kInputFlagNotConnectable | kInputFlagNotKeyframable));
|
||||
|
||||
SetInputFlags(kBufferIn, InputFlags(GetInputFlags(kBufferIn) | kInputFlagHidden));
|
||||
SetInputFlags(kLengthInput, InputFlags(GetInputFlags(kLengthInput) | kInputFlagHidden));
|
||||
SetInputFlags(kMediaInInput, InputFlags(GetInputFlags(kMediaInInput) | kInputFlagHidden));
|
||||
SetInputFlags(kSpeedInput, InputFlags(GetInputFlags(kSpeedInput) | kInputFlagHidden));
|
||||
SetInputFlags(kReverseInput, InputFlags(GetInputFlags(kReverseInput) | kInputFlagHidden));
|
||||
SetInputFlags(kMaintainAudioPitchInput, InputFlags(GetInputFlags(kMaintainAudioPitchInput) | kInputFlagHidden));
|
||||
SetInputFlag(kBufferIn, kInputFlagHidden);
|
||||
SetInputFlag(kLengthInput, kInputFlagHidden);
|
||||
SetInputFlag(kMediaInInput, kInputFlagHidden);
|
||||
SetInputFlag(kSpeedInput, kInputFlagHidden);
|
||||
SetInputFlag(kReverseInput, kInputFlagHidden);
|
||||
SetInputFlag(kMaintainAudioPitchInput, kInputFlagHidden);
|
||||
|
||||
// Undo block flag that hides in param view
|
||||
SetFlag(kDontShowInParamView, false);
|
||||
|
||||
@@ -32,7 +32,7 @@ const QString MaskDistortNode::kInvertInput = QStringLiteral("invert_in");
|
||||
MaskDistortNode::MaskDistortNode()
|
||||
{
|
||||
// Mask should always be (1.0, 1.0, 1.0) for multiply to work correctly
|
||||
SetInputFlags(kColorInput, InputFlags(GetInputFlags(kColorInput) | kInputFlagHidden));
|
||||
SetInputFlag(kColorInput, kInputFlagHidden);
|
||||
|
||||
AddInput(kInvertInput, NodeValue::kBoolean, false);
|
||||
|
||||
|
||||
@@ -209,10 +209,10 @@ void BlurFilterNode::InputValueChangedEvent(const QString &input, int element)
|
||||
|
||||
void BlurFilterNode::UpdateInputs(Method method)
|
||||
{
|
||||
SetInputFlags(kHorizInput, (method == kBox || method == kGaussian) ? InputFlags() : InputFlags(kInputFlagHidden));
|
||||
SetInputFlags(kVertInput, (method == kBox || method == kGaussian) ? InputFlags() : InputFlags(kInputFlagHidden));
|
||||
SetInputFlags(kDirectionalDegreesInput, (method == kDirectional) ? InputFlags() : InputFlags(kInputFlagHidden));
|
||||
SetInputFlags(kRadialCenterInput, (method == kRadial) ? InputFlags() : InputFlags(kInputFlagHidden));
|
||||
SetInputFlag(kHorizInput, kInputFlagHidden, !(method == kBox || method == kGaussian));
|
||||
SetInputFlag(kVertInput, kInputFlagHidden, !(method == kBox || method == kGaussian));
|
||||
SetInputFlag(kDirectionalDegreesInput, kInputFlagHidden, !(method == kDirectional));
|
||||
SetInputFlag(kRadialCenterInput, kInputFlagHidden, !(method == kRadial));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -90,13 +90,7 @@ void ShapeNode::Value(const NodeValueRow &value, const NodeGlobals &globals, Nod
|
||||
void ShapeNode::InputValueChangedEvent(const QString &input, int element)
|
||||
{
|
||||
if (input == kTypeInput) {
|
||||
InputFlags i = GetInputFlags(kRadiusInput);
|
||||
if (GetStandardValue(kTypeInput).toInt() == kRoundedRectangle) {
|
||||
i &= InputFlag(~kInputFlagHidden);
|
||||
} else {
|
||||
i |= kInputFlagHidden;
|
||||
}
|
||||
SetInputFlags(kRadiusInput, i);
|
||||
SetInputFlag(kRadiusInput, kInputFlagHidden, (GetStandardValue(kTypeInput).toInt() != kRoundedRectangle));
|
||||
}
|
||||
super::InputValueChangedEvent(input, element);
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ void MultiCamNode::InputConnectedEvent(const QString &input, int element, Node *
|
||||
{
|
||||
if (input == kSequenceInput) {
|
||||
if (Sequence *s = dynamic_cast<Sequence*>(output)) {
|
||||
SetInputFlags(kSequenceTypeInput, GetInputFlags(kSequenceTypeInput) & InputFlag(~kInputFlagHidden));
|
||||
SetInputFlag(kSequenceTypeInput, kInputFlagHidden, false);
|
||||
sequence_ = s;
|
||||
}
|
||||
}
|
||||
@@ -112,7 +112,7 @@ void MultiCamNode::InputConnectedEvent(const QString &input, int element, Node *
|
||||
void MultiCamNode::InputDisconnectedEvent(const QString &input, int element, Node *output)
|
||||
{
|
||||
if (input == kSequenceInput) {
|
||||
SetInputFlags(kSequenceTypeInput, GetInputFlags(kSequenceTypeInput) | kInputFlagHidden);
|
||||
SetInputFlag(kSequenceTypeInput, kInputFlagHidden, true);
|
||||
sequence_ = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
+6
-2
@@ -903,12 +903,16 @@ InputFlags Node::GetInputFlags(const QString &input) const
|
||||
}
|
||||
}
|
||||
|
||||
void Node::SetInputFlags(const QString &input, const InputFlags &f)
|
||||
void Node::SetInputFlag(const QString &input, InputFlag f, bool on)
|
||||
{
|
||||
Input* i = GetInternalInputData(input);
|
||||
|
||||
if (i) {
|
||||
i->flags = f;
|
||||
if (on) {
|
||||
i->flags |= f;
|
||||
} else {
|
||||
i->flags &= ~f;
|
||||
}
|
||||
emit InputFlagsChanged(input, i->flags);
|
||||
} else {
|
||||
ReportInvalidInput("set flags of", input, -1);
|
||||
|
||||
+1
-1
@@ -947,7 +947,7 @@ public:
|
||||
}
|
||||
|
||||
InputFlags GetInputFlags(const QString& input) const;
|
||||
void SetInputFlags(const QString &input, const InputFlags &f);
|
||||
void SetInputFlag(const QString &input, InputFlag f, bool on = true);
|
||||
|
||||
virtual void LoadFinishedEvent(){}
|
||||
virtual void ConnectedToPreviewEvent(){}
|
||||
|
||||
+39
-13
@@ -30,7 +30,7 @@ namespace olive {
|
||||
class Node;
|
||||
class NodeKeyframe;
|
||||
|
||||
enum InputFlag {
|
||||
enum InputFlag : uint64_t {
|
||||
/// By default, inputs are keyframable, connectable, and NOT arrays
|
||||
kInputFlagNormal = 0x0,
|
||||
kInputFlagArray = 0x1,
|
||||
@@ -61,12 +61,6 @@ public:
|
||||
return i;
|
||||
}
|
||||
|
||||
InputFlags &operator|=(const InputFlags &f)
|
||||
{
|
||||
f_ |= f.f_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
InputFlags operator|(const InputFlag &f) const
|
||||
{
|
||||
InputFlags i = *this;
|
||||
@@ -74,12 +68,31 @@ public:
|
||||
return i;
|
||||
}
|
||||
|
||||
InputFlags operator|(const uint64_t &f) const
|
||||
{
|
||||
InputFlags i = *this;
|
||||
i |= f;
|
||||
return i;
|
||||
}
|
||||
|
||||
InputFlags &operator|=(const InputFlags &f)
|
||||
{
|
||||
f_ |= f.f_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
InputFlags &operator|=(const InputFlag &f)
|
||||
{
|
||||
f_ |= f;
|
||||
return *this;
|
||||
}
|
||||
|
||||
InputFlags &operator|=(const uint64_t &f)
|
||||
{
|
||||
f_ |= f;
|
||||
return *this;
|
||||
}
|
||||
|
||||
InputFlags operator&(const InputFlags &f) const
|
||||
{
|
||||
InputFlags i = *this;
|
||||
@@ -87,12 +100,6 @@ public:
|
||||
return i;
|
||||
}
|
||||
|
||||
InputFlags &operator&=(const InputFlags &f)
|
||||
{
|
||||
f_ &= f.f_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
InputFlags operator&(const InputFlag &f) const
|
||||
{
|
||||
InputFlags i = *this;
|
||||
@@ -100,12 +107,31 @@ public:
|
||||
return i;
|
||||
}
|
||||
|
||||
InputFlags operator&(const uint64_t &f) const
|
||||
{
|
||||
InputFlags i = *this;
|
||||
i &= f;
|
||||
return i;
|
||||
}
|
||||
|
||||
InputFlags &operator&=(const InputFlags &f)
|
||||
{
|
||||
f_ &= f.f_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
InputFlags &operator&=(const InputFlag &f)
|
||||
{
|
||||
f_ &= f;
|
||||
return *this;
|
||||
}
|
||||
|
||||
InputFlags &operator&=(const uint64_t &f)
|
||||
{
|
||||
f_ &= f;
|
||||
return *this;
|
||||
}
|
||||
|
||||
InputFlags operator~() const
|
||||
{
|
||||
InputFlags i = *this;
|
||||
|
||||
@@ -1003,7 +1003,7 @@ void ProjectSerializer220403::PostConnect(const XMLNodeData &xml_node_data) cons
|
||||
|
||||
l.group->AddInputPassthrough(resolved, l.passthrough_id);
|
||||
|
||||
l.group->SetInputFlags(l.passthrough_id, resolved.GetFlags() | l.custom_flags);
|
||||
l.group->SetInputFlag(l.passthrough_id, InputFlag(l.custom_flags.value()));
|
||||
|
||||
if (!l.custom_name.isEmpty()) {
|
||||
l.group->SetInputName(l.passthrough_id, l.custom_name);
|
||||
|
||||
Reference in New Issue
Block a user