aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp')
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp b/src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp
index 0d516a0ce5..f0a9629528 100644
--- a/src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp
+++ b/src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp
@@ -213,7 +213,29 @@ void GraphicsScene::addCurveItem(CurveItem *item)
item->setDirty(false);
item->connect(this);
addItem(item);
- m_curves.push_back(item);
+
+ if (item->locked())
+ m_curves.push_front(item);
+ else
+ m_curves.push_back(item);
+
+ resetZValues();
+}
+
+void GraphicsScene::moveToBottom(CurveItem *item)
+{
+ if (m_curves.removeAll(item) > 0) {
+ m_curves.push_front(item);
+ resetZValues();
+ }
+}
+
+void GraphicsScene::moveToTop(CurveItem *item)
+{
+ if (m_curves.removeAll(item) > 0) {
+ m_curves.push_back(item);
+ resetZValues();
+ }
}
void GraphicsScene::setComponentTransform(const QTransform &transform)
@@ -384,4 +406,13 @@ QRectF GraphicsScene::limits() const
return m_limits;
}
+void GraphicsScene::resetZValues()
+{
+ qreal z = 0.0;
+ for (auto *curve : curves()) {
+ curve->setZValue(z);
+ z += 1.0;
+ }
+}
+
} // End namespace DesignTools.