diff options
author | Thomas Hartmann <Thomas.Hartmann@theqtcompany.com> | 2015-07-16 13:22:09 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@digia.com> | 2015-07-17 10:16:14 +0000 |
commit | 31964795d8825f3212f4d13b3b30afe37acf9006 (patch) | |
tree | 902ce55d6f23ab709346eb7be8f6d658ec66f937 /src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp | |
parent | 96196e24d6f194b87ad7981c7fc7e668ee76097d (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.cpp | 22 |
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); |