aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/effectcomposer/uniform.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/effectcomposer/uniform.cpp')
-rw-r--r--src/plugins/effectcomposer/uniform.cpp29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/plugins/effectcomposer/uniform.cpp b/src/plugins/effectcomposer/uniform.cpp
index e8fd77d631..4c8b994388 100644
--- a/src/plugins/effectcomposer/uniform.cpp
+++ b/src/plugins/effectcomposer/uniform.cpp
@@ -22,6 +22,7 @@ Uniform::Uniform(const QString &effectName, const QJsonObject &propObj, const QS
m_name = propObj.value("name").toString();
m_description = propObj.value("description").toString();
m_type = Uniform::typeFromString(propObj.value("type").toString());
+ m_controlType = m_type;
defaultValue = propObj.value("defaultValue").toString();
m_displayName = propObj.value("displayName").toString();
@@ -44,6 +45,12 @@ Uniform::Uniform(const QString &effectName, const QJsonObject &propObj, const QS
g_propertyData[mipmapProperty] = m_enableMipmap;
}
+ if (m_type == Type::Define) {
+ QString controlType = propObj.value("controlType").toString();
+ if (!controlType.isEmpty())
+ m_controlType = Uniform::typeFromString(controlType);
+ }
+
m_customValue = propObj.value("customValue").toString();
m_useCustomValue = getBoolValue(propObj.value("useCustomValue"), false);
@@ -61,12 +68,22 @@ Uniform::Type Uniform::type() const
return m_type;
}
+Uniform::Type Uniform::controlType() const
+{
+ return m_controlType;
+}
+
// String representation of the type for qml
QString Uniform::typeName() const
{
return Uniform::stringFromType(m_type);
}
+QString Uniform::controlTypeName() const
+{
+ return Uniform::stringFromType(m_controlType);
+}
+
QVariant Uniform::value() const
{
return m_value;
@@ -216,6 +233,13 @@ QVariant Uniform::getInitializedVariant(bool maxValue)
return maxValue ? QVector4D(1.0, 1.0, 1.0, 1.0) : QVector4D(0.0, 0.0, 0.0, 0.0);
case Uniform::Type::Color:
return maxValue ? QColor::fromRgbF(1.0f, 1.0f, 1.0f, 1.0f) : QColor::fromRgbF(0.0f, 0.0f, 0.0f, 0.0f);
+ case Uniform::Type::Define:
+ if (m_controlType == Uniform::Type::Bool)
+ return maxValue ? true : false;
+ else if (m_controlType == Uniform::Type::Int)
+ return maxValue ? 100 : 0;
+ else
+ return QVariant();
default:
return QVariant();
}
@@ -262,7 +286,10 @@ QVariant Uniform::valueStringToVariant(const QString &value)
variant = value;
break;
case Uniform::Type::Define:
- variant = value;
+ if (m_controlType == Uniform::Type::Bool)
+ variant = (value == "true");
+ else
+ variant = value;
break;
}