From 7382798b6a20a47a1edf18a1c37fd3e264ad5d3c Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 23 Apr 2019 14:33:42 +0200 Subject: [PATCH] Move setting the dragged-to position to its own function. [CURA-6478] --- resources/qml/ExpandableComponent.qml | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index b30ef70189..0f2f30fe39 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -214,6 +214,19 @@ Item border.color: UM.Theme.getColor("lining") radius: UM.Theme.getSize("default_radius").width + function trySetPosition(posNewX, posNewY) + { + var margin = UM.Theme.getSize("narrow_margin"); + var minPt = base.mapFromItem(null, margin.width, margin.height); + var maxPt = base.mapFromItem(null, + CuraApplication.appWidth() - (contentContainer.width + margin.width), + CuraApplication.appHeight() - (contentContainer.height + margin.height)); + var initialY = background.height + base.shadowOffset + margin.height; + + contentContainer.x = Math.min(maxPt.x, Math.max(minPt.x, posNewX)); + contentContainer.y = Math.min(maxPt.y, Math.max(initialY, posNewY)); + } + ExpandableComponentHeader { id: contentHeader @@ -247,15 +260,7 @@ Item var delta = Qt.point(mouse.x - clickPos.x, mouse.y - clickPos.y); if (delta.x !== 0 || delta.y !== 0) { - var margin = UM.Theme.getSize("narrow_margin"); - var minPt = base.mapFromItem(null, margin.width, margin.height); - var maxPt = base.mapFromItem(null, - CuraApplication.appWidth() - (contentContainer.width + margin.width), - CuraApplication.appHeight() - (contentContainer.height + margin.width)); - var initialY = background.height + base.shadowOffset + margin.height; - - contentContainer.x = Math.min(maxPt.x, Math.max(minPt.x, contentContainer.x + delta.x)); - contentContainer.y = Math.min(maxPt.y, Math.max(initialY, contentContainer.y + delta.y)); + contentContainer.trySetPosition(contentContainer.x + delta.x, contentContainer.y + delta.y); } } }