diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp index 13c8a105f52da90a8a7311cde6ae11927ec2ddbb..09e32ce33c8277d9d40b5421c9c51e0016125d27 100644 --- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp @@ -90,9 +90,6 @@ QmlGraphicsItemNodeInstance::Pointer QmlGraphicsItemNodeInstance::create(QObject instance->setHasContent(anyItemHasContent(qmlGraphicsItem)); qmlGraphicsItem->setFlag(QGraphicsItem::ItemHasNoContents, false); - if (qmlGraphicsItem->inherits("QDeclarativeText")) - instance->setResizable(false); - static_cast<QDeclarativeParserStatus*>(qmlGraphicsItem)->classBegin(); instance->populateResetValueHash(); @@ -107,93 +104,11 @@ bool QmlGraphicsItemNodeInstance::isQmlGraphicsItem() const QSizeF QmlGraphicsItemNodeInstance::size() const { - if (isValid()) { - double implicitWidth = qmlGraphicsItem()->implicitWidth(); - if (!m_hasWidth - && implicitWidth // WORKAROUND - && qmlGraphicsItem()->width() <= 0 - && implicitWidth != qmlGraphicsItem()->width() - && !hasBindingForProperty("width")) { - qmlGraphicsItem()->blockSignals(true); - qmlGraphicsItem()->setWidth(implicitWidth); - qmlGraphicsItem()->blockSignals(false); - } - - double implicitHeight = qmlGraphicsItem()->implicitHeight(); - if (!m_hasHeight - && implicitWidth // WORKAROUND - && qmlGraphicsItem()->height() <= 0 - && implicitHeight != qmlGraphicsItem()->height() - && !hasBindingForProperty("height")) { - qmlGraphicsItem()->blockSignals(true); - qmlGraphicsItem()->setHeight(implicitHeight); - qmlGraphicsItem()->blockSignals(false); - } - - } - - if (isRootNodeInstance()) { - if (!m_hasWidth) { - qmlGraphicsItem()->blockSignals(true); - if (qmlGraphicsItem()->width() < 10.) - qmlGraphicsItem()->setWidth(100.); - qmlGraphicsItem()->blockSignals(false); - } - - if (!m_hasHeight) { - qmlGraphicsItem()->blockSignals(true); - if (qmlGraphicsItem()->height() < 10.) - qmlGraphicsItem()->setHeight(100.); - qmlGraphicsItem()->blockSignals(false); - } - } - return QSizeF(qmlGraphicsItem()->width(), qmlGraphicsItem()->height()); } QRectF QmlGraphicsItemNodeInstance::boundingRect() const { - if (isValid()) { - double implicitWidth = qmlGraphicsItem()->implicitWidth(); - if (!m_hasWidth - && implicitWidth // WORKAROUND - && qmlGraphicsItem()->width() <= 0 - && implicitWidth != qmlGraphicsItem()->width() - && !hasBindingForProperty("width")) { - qmlGraphicsItem()->blockSignals(true); - qmlGraphicsItem()->setWidth(implicitWidth); - qmlGraphicsItem()->blockSignals(false); - } - - double implicitHeight = qmlGraphicsItem()->implicitHeight(); - if (!m_hasHeight - && implicitWidth // WORKAROUND - && qmlGraphicsItem()->height() <= 0 - && implicitHeight != qmlGraphicsItem()->height() - && !hasBindingForProperty("height")) { - qmlGraphicsItem()->blockSignals(true); - qmlGraphicsItem()->setHeight(implicitHeight); - qmlGraphicsItem()->blockSignals(false); - } - - } - - if (isRootNodeInstance()) { - if (!m_hasWidth) { - qmlGraphicsItem()->blockSignals(true); - if (qmlGraphicsItem()->width() < 10.) - qmlGraphicsItem()->setWidth(100.); - qmlGraphicsItem()->blockSignals(false); - } - - if (!m_hasHeight) { - qmlGraphicsItem()->blockSignals(true); - if (qmlGraphicsItem()->height() < 10.) - qmlGraphicsItem()->setHeight(100.); - qmlGraphicsItem()->blockSignals(false); - } - } - if (qmlGraphicsItem()) return qmlGraphicsItem()->boundingRect(); diff --git a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp index 8ea38a21b09a986f2e1af9639a358a41162aae50..bedfac68d9adf27634a4bbf14f88e13fdc1e3865 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp @@ -99,7 +99,7 @@ QRectF FormEditorItem::boundingRect() const void FormEditorItem::updateGeometry() { prepareGeometryChange(); - m_boundingRect = qmlItemNode().instanceBoundingRect().adjusted(0, 0, 1., 1.); + m_boundingRect = qmlItemNode().instancePaintedBoundingRect().adjusted(0, 0, 1., 1.); setTransform(qmlItemNode().instanceTransform()); setTransform(m_attentionTransform, true); //the property for zValue is called z in QGraphicsObject diff --git a/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp b/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp index c670b403068254f01df843debecd103d433f4398..1864bbafac4f5c6854c65d1ecf4f0fb69dadb2fc 100644 --- a/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp +++ b/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp @@ -518,21 +518,19 @@ bool ResizeManipulator::isActive() const void ResizeManipulator::setSize(QmlItemNode itemNode, const QSizeF &size) { - int penWidth = (itemNode.instancePenWidth() / 2) * 2; - if (!itemNode.hasBindingProperty("width")) - itemNode.setVariantProperty("width", qRound(size.width()) - penWidth); + itemNode.setVariantProperty("width", qRound(size.width())); if (!itemNode.hasBindingProperty("height")) - itemNode.setVariantProperty("height", qRound(size.height()) - penWidth); + itemNode.setVariantProperty("height", qRound(size.height())); } void ResizeManipulator::setPosition(QmlItemNode itemNode, const QPointF &position) { if (!itemNode.hasBindingProperty("x")) - itemNode.setVariantProperty("x", qRound(position.x()) + (itemNode.instancePenWidth() / 2)); + itemNode.setVariantProperty("x", qRound(position.x())); if (!itemNode.hasBindingProperty("y")) - itemNode.setVariantProperty("y", qRound(position.y()) + (itemNode.instancePenWidth() / 2)); + itemNode.setVariantProperty("y", qRound(position.y())); } } diff --git a/src/plugins/qmldesigner/designercore/include/qmlitemnode.h b/src/plugins/qmldesigner/designercore/include/qmlitemnode.h index df995186aebd5fcc8bb4d67bbb5fa31a5cfa79f6..68d8ba7b6fc52f320cfb65573e47fd901844e0e9 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlitemnode.h +++ b/src/plugins/qmldesigner/designercore/include/qmlitemnode.h @@ -76,6 +76,7 @@ public: bool instanceIsInPositioner() const; QRectF instanceBoundingRect() const; + QRectF instancePaintedBoundingRect() const; QTransform instanceTransform() const; QTransform instanceSceneTransform() const; QPointF instancePosition() const; diff --git a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp index bd539ba934047efc1d652da87d7aab5e2e098488..4b40789b0ab9837b5543a29a5106bda9c0e35b57 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp @@ -220,6 +220,11 @@ bool QmlItemNode::instanceIsInPositioner() const } QRectF QmlItemNode::instanceBoundingRect() const +{ + return QRectF(QPointF(0, 0), nodeInstance().size()); +} + +QRectF QmlItemNode::instancePaintedBoundingRect() const { return nodeInstance().boundingRect(); }