static void fixUrl(const QmlDesigner::ModelNode &modelNode, const QmlDesigner::PropertyName &name, QVariant *value) { if (modelNode.isValid() && modelNode.metaInfo().isValid() && (modelNode.metaInfo().propertyTypeName(name) == "QUrl" || modelNode.metaInfo().propertyTypeName(name) == "url")) { if (!value->isValid()) *value = QString(QLatin1String("")); } }
int GradientModel::rowCount(const QModelIndex & /*parent*/) const { if (m_itemNode.isValid()) { if (m_itemNode.modelNode().hasNodeProperty(gradientPropertyName().toUtf8())) { QmlDesigner::ModelNode gradientNode = m_itemNode.modelNode().nodeProperty(gradientPropertyName().toUtf8()).modelNode(); if (gradientNode.isValid() && gradientNode.hasNodeListProperty("stops")) return gradientNode.nodeListProperty("stops").toModelNodeList().count(); } } return 0; }
/* "red" is the same color as "#ff0000" To simplify editing we convert all explicit color names in the hash format */ static void fixAmbigousColorNames(const QmlDesigner::ModelNode &modelNode, const QString &name, QVariant *value) { if (modelNode.isValid() && modelNode.metaInfo().isValid() && (modelNode.metaInfo().propertyTypeName(name) == "QColor" || modelNode.metaInfo().propertyTypeName(name) == "color")) { if ((value->type() == QVariant::Color)) { QColor color = value->value<QColor>(); int alpha = color.alpha(); color = QColor(color.name()); color.setAlpha(alpha); *value = color; } else if (value->toString() != QLatin1String("transparent")) { *value = QColor(value->toString()).name(); } } }