diff --git a/app/node/input.cpp b/app/node/input.cpp index d21bedee3..cdea0d1ed 100644 --- a/app/node/input.cpp +++ b/app/node/input.cpp @@ -37,38 +37,27 @@ OLIVE_NAMESPACE_ENTER -NodeInput::NodeInput(const QString& id, const DataType &type, const QVariant &default_value) : - NodeParam(id), - data_type_(type), - keyframable_(true), - keyframing_(false) +NodeInput::NodeInput(const QString& id, const DataType &type, const QVector &default_value) : + NodeParam(id) { - int track_size; + Init(type); - switch (data_type_) { - case kVec2: - track_size = 2; - break; - case kVec3: - track_size = 3; - break; - case kVec4: - case kColor: - track_size = 4; - break; - default: - track_size = 1; + if (!default_value.isEmpty()) { + SetDefaultValue(default_value); } +} - keyframe_tracks_.resize(track_size); +NodeInput::NodeInput(const QString &id, const NodeParam::DataType &type, const QVariant &default_value) : + NodeParam(id) +{ + Init(type); + SetDefaultValue(split_normal_value_into_track_values(default_value)); +} - if (!default_value.isNull()) { - standard_value_ = split_normal_value_into_track_values(default_value); - - Q_ASSERT(standard_value_.size() == track_size); - } else { - standard_value_.resize(track_size); - } +NodeInput::NodeInput(const QString &id, const NodeParam::DataType &type) : + NodeParam(id) +{ + Init(type); } bool NodeInput::IsArray() @@ -299,6 +288,40 @@ void NodeInput::SaveInternal(QXmlStreamWriter*) const { } +void NodeInput::Init(DataType type) +{ + keyframable_ = true; + keyframing_ = false; + data_type_ = type; + + int track_size; + + switch (data_type_) { + case kVec2: + track_size = 2; + break; + case kVec3: + track_size = 3; + break; + case kVec4: + case kColor: + track_size = 4; + break; + default: + track_size = 1; + } + + keyframe_tracks_.resize(track_size); + standard_value_.resize(track_size); +} + +void NodeInput::SetDefaultValue(const QVector &default_value) +{ + for (int i=0;i& default_value); + NodeInput(const QString &id, const DataType& type, const QVariant& default_value); + NodeInput(const QString &id, const DataType& type); virtual bool IsArray(); @@ -285,6 +287,10 @@ protected: virtual void SaveInternal(QXmlStreamWriter* writer) const; private: + void Init(NodeParam::DataType type); + + void SetDefaultValue(const QVector &default_value); + QString ValueToString(const QVariant& value) const; QVariant StringToValue(const QString &string, QList &footage_connections); diff --git a/app/node/metareader.cpp b/app/node/metareader.cpp index 41e9dec09..b88b3d2e1 100644 --- a/app/node/metareader.cpp +++ b/app/node/metareader.cpp @@ -231,7 +231,7 @@ void NodeMetaReader::XMLReadParam(QXmlStreamReader *reader) return; } - QVariant default_val; + QVector default_val; QHash properties; LanguageMap param_names; QList combo_names; @@ -249,7 +249,13 @@ void NodeMetaReader::XMLReadParam(QXmlStreamReader *reader) } else if (reader->name() == QStringLiteral("default")) { // Reads the default value - default_val = NodeInput::StringToValue(param_type, reader->readElementText()); + while (XMLReadNextStartElement(reader)) { + if (reader->name() == QStringLiteral("value")) { + default_val.append(NodeInput::StringToValue(param_type, reader->readElementText())); + } else { + reader->skipCurrentElement(); + } + } } else if (reader->name() == QStringLiteral("option")) { diff --git a/app/shaders/blur.xml b/app/shaders/blur.xml index 320d23395..2d49a43b6 100644 --- a/app/shaders/blur.xml +++ b/app/shaders/blur.xml @@ -33,25 +33,33 @@ Radius 0 - 10 + + 10 + Horizontal - 1 + + 1 + Vertical - 1 + + 1 + Repeat Edge Pixels - 0 + + 0 + diff --git a/app/shaders/dropshadow.xml b/app/shaders/dropshadow.xml index 5a35a66ef..20e77fb84 100644 --- a/app/shaders/dropshadow.xml +++ b/app/shaders/dropshadow.xml @@ -27,14 +27,18 @@ Softness 0 - 10 + + 10 + Opacity 0 - 80 + + 80 + 100 @@ -42,13 +46,17 @@ Distance 0 - 10 + + 10 + Direction - 45 + + 45 + diff --git a/app/shaders/solid.xml b/app/shaders/solid.xml index 2c10d6a6f..d45fef56f 100644 --- a/app/shaders/solid.xml +++ b/app/shaders/solid.xml @@ -18,7 +18,12 @@ Color Colour - 1.0:0.0:0.0:1.0 + + 1.0 + 0.0 + 0.0 + 1.0 + diff --git a/app/shaders/stroke.xml b/app/shaders/stroke.xml index bb9c7aebc..1f562eef0 100644 --- a/app/shaders/stroke.xml +++ b/app/shaders/stroke.xml @@ -27,21 +27,27 @@ Radius 0 - 10 + + 10 + Opacity 0 - 100 + + 100 + 100 Inner - false + + false +