aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@theqtcompany.com>2015-07-16 13:22:09 +0200
committerThomas Hartmann <Thomas.Hartmann@digia.com>2015-07-17 10:16:14 +0000
commit31964795d8825f3212f4d13b3b30afe37acf9006 (patch)
tree902ce55d6f23ab709346eb7be8f6d658ec66f937 /src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
parent96196e24d6f194b87ad7981c7fc7e668ee76097d (diff)
QmlDesigner.FormEditor: Adding FormEditorItem::selectionWeigth
Change-Id: I79e62ed497cca2a0c82ccc6bafa8c1ae77245fff Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
Diffstat (limited to 'src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp')
-rw-r--r--src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
index ac23d75f08..2993d17832 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
@@ -171,6 +171,28 @@ void FormEditorItem::setFormEditorVisible(bool isVisible)
setVisible(isVisible);
}
+QPointF FormEditorItem::center() const
+{
+ return mapToScene(qmlItemNode().instanceBoundingRect().center());
+}
+
+qreal FormEditorItem::selectionWeigth(const QPointF &point, int iteration)
+{
+ if (!qmlItemNode().isValid())
+ return 100000;
+
+ QRectF boundingRect = mapRectToScene(qmlItemNode().instanceBoundingRect());
+
+ float weight = point.x()- boundingRect.left()
+ + point.y() - boundingRect.top()
+ + boundingRect.right()- point.x()
+ + boundingRect.bottom() - point.y()
+ + (center() - point).manhattanLength()
+ + sqrt(boundingRect.width() * boundingRect.height()) / 2 * iteration;
+
+ return weight;
+}
+
FormEditorItem::~FormEditorItem()
{
scene()->removeItemFromHash(this);