shape: add rounded rectangle

This commit is contained in:
itsmattkc
2022-08-09 11:49:11 -07:00
parent cc7893e7bc
commit 920a294387
3 changed files with 82 additions and 17 deletions
+20 -1
View File
@@ -25,10 +25,14 @@ namespace olive {
#define super ShapeNodeBase
QString ShapeNode::kTypeInput = QStringLiteral("type_in");
QString ShapeNode::kRadiusInput = QStringLiteral("radius_in");
ShapeNode::ShapeNode()
{
PrependInput(kTypeInput, NodeValue::kCombo);
AddInput(kRadiusInput, NodeValue::kFloat, 20.0);
SetInputProperty(kRadiusInput, QStringLiteral("min"), 0.0);
}
QString ShapeNode::Name() const
@@ -56,9 +60,10 @@ void ShapeNode::Retranslate()
super::Retranslate();
SetInputName(kTypeInput, tr("Type"));
SetInputName(kRadiusInput, tr("Radius"));
// Coordinate with Type enum
SetComboBoxStrings(kTypeInput, {tr("Rectangle"), tr("Ellipse")});
SetComboBoxStrings(kTypeInput, {tr("Rectangle"), tr("Ellipse"), tr("Rounded Rectangle")});
}
ShaderCode ShapeNode::GetShaderCode(const ShaderRequest &request) const
@@ -81,4 +86,18 @@ void ShapeNode::Value(const NodeValueRow &value, const NodeGlobals &globals, Nod
PushMergableJob(value, QVariant::fromValue(job), table);
}
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);
}
super::InputValueChangedEvent(input, element);
}
}