forked from qt-creator/qt-creator
QmlDesigner: Remove repeating gradient code
Change-Id: I46ab46fb5a96c9c62933c845936d3ddba3d4bdc8 Reviewed-by: Aleksei German <aleksei.german@qt.io>
This commit is contained in:
@@ -180,6 +180,16 @@ const ShapeGradientPropertyData *getDefaultGradientData(const QmlDesigner::Prope
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void prepareGradient(const T &array,
|
||||||
|
const QmlDesigner::ModelNode &gradient,
|
||||||
|
const QmlDesigner::QmlItemNode &node)
|
||||||
|
{
|
||||||
|
std::for_each(std::begin(array), std::end(array), [&](auto &a) {
|
||||||
|
gradient.variantProperty(a.name.toByteArray()).setValue(a.getDefaultValue(node));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
GradientModel::GradientModel(QObject *parent) :
|
GradientModel::GradientModel(QObject *parent) :
|
||||||
QAbstractListModel(parent)
|
QAbstractListModel(parent)
|
||||||
{
|
{
|
||||||
@@ -583,26 +593,11 @@ void GradientModel::setupGradientProperties(const QmlDesigner::ModelNode &gradie
|
|||||||
if (m_gradientTypeName == u"Gradient") {
|
if (m_gradientTypeName == u"Gradient") {
|
||||||
gradient.variantProperty("orientation").setEnumeration("Gradient.Vertical");
|
gradient.variantProperty("orientation").setEnumeration("Gradient.Vertical");
|
||||||
} else if (m_gradientTypeName == u"LinearGradient") {
|
} else if (m_gradientTypeName == u"LinearGradient") {
|
||||||
std::for_each(std::begin(defaultLinearShapeGradients),
|
prepareGradient(defaultLinearShapeGradients, gradient, m_itemNode);
|
||||||
std::end(defaultLinearShapeGradients),
|
|
||||||
[&](auto &a) {
|
|
||||||
gradient.variantProperty(a.name.toByteArray())
|
|
||||||
.setValue(a.getDefaultValue(m_itemNode));
|
|
||||||
});
|
|
||||||
} else if (m_gradientTypeName == u"RadialGradient") {
|
} else if (m_gradientTypeName == u"RadialGradient") {
|
||||||
std::for_each(std::begin(defaultRadialShapeGradients),
|
prepareGradient(defaultRadialShapeGradients, gradient, m_itemNode);
|
||||||
std::end(defaultRadialShapeGradients),
|
|
||||||
[&](auto &a) {
|
|
||||||
gradient.variantProperty(a.name.toByteArray())
|
|
||||||
.setValue(a.getDefaultValue(m_itemNode));
|
|
||||||
});
|
|
||||||
} else if (m_gradientTypeName == u"ConicalGradient") {
|
} else if (m_gradientTypeName == u"ConicalGradient") {
|
||||||
std::for_each(std::begin(defaultConicalShapeGradients),
|
prepareGradient(defaultConicalShapeGradients, gradient, m_itemNode);
|
||||||
std::end(defaultConicalShapeGradients),
|
|
||||||
[&](auto &a) {
|
|
||||||
gradient.variantProperty(a.name.toByteArray())
|
|
||||||
.setValue(a.getDefaultValue(m_itemNode));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user