forked from qt-creator/qt-creator
QmlDesigner.propertyEditor: fix gradient editing
This fixes some glitches that were introduced by refactoring the code.
This commit is contained in:
@@ -54,8 +54,6 @@ void GradientLine::setGradient(const QLinearGradient &gradient)
|
|||||||
m_gradient = gradient;
|
m_gradient = gradient;
|
||||||
m_useGradient = true;
|
m_useGradient = true;
|
||||||
readGradient();
|
readGradient();
|
||||||
emit gradientChanged();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline QColor invertColor(const QColor color)
|
static inline QColor invertColor(const QColor color)
|
||||||
@@ -106,6 +104,8 @@ void GradientLine::setActiveColor(const QColor &newColor)
|
|||||||
m_colorList.removeAt(currentColorIndex());
|
m_colorList.removeAt(currentColorIndex());
|
||||||
m_colorList.insert(currentColorIndex(), m_activeColor);
|
m_colorList.insert(currentColorIndex(), m_activeColor);
|
||||||
updateGradient();
|
updateGradient();
|
||||||
|
emit gradientChanged();
|
||||||
|
emit activeColorChanged();
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,6 +141,7 @@ void GradientLine::keyPressEvent(QKeyEvent * event)
|
|||||||
m_stops.removeAt(currentColorIndex());
|
m_stops.removeAt(currentColorIndex());
|
||||||
m_colorList.removeAt(currentColorIndex());
|
m_colorList.removeAt(currentColorIndex());
|
||||||
updateGradient();
|
updateGradient();
|
||||||
|
emit gradientChanged();
|
||||||
setCurrentIndex(0);
|
setCurrentIndex(0);
|
||||||
//delete item
|
//delete item
|
||||||
}
|
}
|
||||||
@@ -271,6 +272,7 @@ void GradientLine::mouseReleaseEvent(QMouseEvent *event)
|
|||||||
m_stops.removeAt(currentColorIndex());
|
m_stops.removeAt(currentColorIndex());
|
||||||
m_colorList.removeAt(currentColorIndex());
|
m_colorList.removeAt(currentColorIndex());
|
||||||
updateGradient();
|
updateGradient();
|
||||||
|
emit gradientChanged();
|
||||||
setCurrentIndex(0);
|
setCurrentIndex(0);
|
||||||
//delete item
|
//delete item
|
||||||
}
|
}
|
||||||
@@ -293,6 +295,7 @@ void GradientLine::mouseReleaseEvent(QMouseEvent *event)
|
|||||||
m_dragActive = false;
|
m_dragActive = false;
|
||||||
m_yOffset = 0;
|
m_yOffset = 0;
|
||||||
updateGradient();
|
updateGradient();
|
||||||
|
emit gradientChanged();
|
||||||
update();
|
update();
|
||||||
setFocus(Qt::MouseFocusReason);
|
setFocus(Qt::MouseFocusReason);
|
||||||
}
|
}
|
||||||
@@ -349,7 +352,6 @@ void GradientLine::updateGradient()
|
|||||||
stops.append(QPair<qreal, QColor>(m_stops.at(i), m_colorList.at(i)));
|
stops.append(QPair<qreal, QColor>(m_stops.at(i), m_colorList.at(i)));
|
||||||
}
|
}
|
||||||
m_gradient.setStops(stops);
|
m_gradient.setStops(stops);
|
||||||
emit gradientChanged();
|
|
||||||
} else {
|
} else {
|
||||||
if (!active())
|
if (!active())
|
||||||
return;
|
return;
|
||||||
|
@@ -94,8 +94,8 @@ void GradientLineQmlAdaptor::setupGradient()
|
|||||||
foreach (const ModelNode &stopNode, stopList) {
|
foreach (const ModelNode &stopNode, stopList) {
|
||||||
QmlObjectNode stopObjectNode = stopNode;
|
QmlObjectNode stopObjectNode = stopNode;
|
||||||
if (stopObjectNode.isValid()) {
|
if (stopObjectNode.isValid()) {
|
||||||
qreal position = stopNode.variantProperty("position").value().toReal();
|
qreal position = stopObjectNode.modelValue("position").toReal();
|
||||||
QColor color = stopNode.variantProperty("color").value().value<QColor>();
|
QColor color = stopObjectNode.modelValue("color").value<QColor>();
|
||||||
stops.append( QPair<qreal, QColor>(position, color));
|
stops.append( QPair<qreal, QColor>(position, color));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -119,8 +119,6 @@ void GradientLineQmlAdaptor::writeGradient()
|
|||||||
if (!m_itemNode.modelNode().metaInfo().hasProperty(gradientName()))
|
if (!m_itemNode.modelNode().metaInfo().hasProperty(gradientName()))
|
||||||
return;
|
return;
|
||||||
try {
|
try {
|
||||||
RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction();
|
|
||||||
|
|
||||||
ModelNode modelNode = m_itemNode.modelNode();
|
ModelNode modelNode = m_itemNode.modelNode();
|
||||||
|
|
||||||
QString oldId;
|
QString oldId;
|
||||||
@@ -132,6 +130,9 @@ void GradientLineQmlAdaptor::writeGradient()
|
|||||||
}
|
}
|
||||||
|
|
||||||
ModelNode gradientNode = modelNode.view()->createModelNode("QtQuick.Gradient", 1, 0);
|
ModelNode gradientNode = modelNode.view()->createModelNode("QtQuick.Gradient", 1, 0);
|
||||||
|
modelNode.nodeProperty(gradientName()).reparentHere(gradientNode);
|
||||||
|
|
||||||
|
RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction();
|
||||||
|
|
||||||
if (!oldId.isNull())
|
if (!oldId.isNull())
|
||||||
gradientNode.setId(oldId);
|
gradientNode.setId(oldId);
|
||||||
@@ -142,7 +143,6 @@ void GradientLineQmlAdaptor::writeGradient()
|
|||||||
gradientStopNode.variantProperty("color") = normalizeColor(stops.at(i).second);
|
gradientStopNode.variantProperty("color") = normalizeColor(stops.at(i).second);
|
||||||
gradientNode.nodeListProperty("stops").reparentHere(gradientStopNode);
|
gradientNode.nodeListProperty("stops").reparentHere(gradientStopNode);
|
||||||
}
|
}
|
||||||
modelNode.nodeProperty(gradientName()).reparentHere(gradientNode);
|
|
||||||
} else { //state
|
} else { //state
|
||||||
if (!modelNode.hasProperty(gradientName())) {
|
if (!modelNode.hasProperty(gradientName())) {
|
||||||
qWarning(" GradientLine::updateGradient: no gradient in state");
|
qWarning(" GradientLine::updateGradient: no gradient in state");
|
||||||
|
Reference in New Issue
Block a user