diff options
-rw-r--r-- | src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp index 9f880c453b5..d1fec2cd4af 100644 --- a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp +++ b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp @@ -198,9 +198,13 @@ void toFront(const SelectionContext &selectionState) try { QmlItemNode node = selectionState.firstSelectedModelNode(); if (node.isValid()) { - signed int maximumZ = getMaxZValue(siblingsForNode(node)); - maximumZ++; - node.setVariantProperty("z", maximumZ); + ModelNode modelNode = selectionState.currentSingleSelectedNode(); + NodeListProperty parentProperty = modelNode.parentProperty().toNodeListProperty(); + const int index = parentProperty.indexOf(modelNode); + const int lastIndex = parentProperty.count() - 1; + + if (index != lastIndex) + parentProperty.slide(index, lastIndex); } } catch (const RewritingException &e) { //better save then sorry e.showException(); @@ -215,9 +219,12 @@ void toBack(const SelectionContext &selectionState) try { QmlItemNode node = selectionState.firstSelectedModelNode(); if (node.isValid()) { - signed int minimumZ = getMinZValue(siblingsForNode(node)); - minimumZ--; - node.setVariantProperty("z", minimumZ); + ModelNode modelNode = selectionState.currentSingleSelectedNode(); + NodeListProperty parentProperty = modelNode.parentProperty().toNodeListProperty(); + const int index = parentProperty.indexOf(modelNode); + + if (index != 0) + parentProperty.slide(index, 0); } } catch (const RewritingException &e) { //better save then sorry |