diff options
Diffstat (limited to 'src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp')
-rw-r--r-- | src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp | 33 |
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. |