diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp
index 8e223cc8e499cc77e112723b57ef67e48c46bd11..38e4576cd1ba2d6c512f57e988289732f444e5ce 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp
@@ -110,6 +110,126 @@ void FormEditorGraphicsView::mouseReleaseEvent(QMouseEvent *event)
     }
 }
 
+void FormEditorGraphicsView::drawForeground(QPainter *painter, const QRectF &/*rect*/ )
+{
+    if (!m_feedbackNode.isValid())
+        return;
+
+    painter->save();
+
+    if (m_beginX != m_feedbackNode.instanceValue("x"))
+        painter->setPen(Qt::green);
+    else
+        painter->setPen(Qt::black);
+
+    painter->drawText(mapToScene(QPoint(2.0, 12.0)), QString("x: \t\t%1").arg(m_feedbackNode.instanceValue("x").toString()));
+
+
+    if (m_beginY != m_feedbackNode.instanceValue("y"))
+        painter->setPen(Qt::green);
+    else
+        painter->setPen(Qt::black);
+
+    painter->drawText(mapToScene(QPoint(2.0, 24.0)), QString("y: \t\t%1").arg(m_feedbackNode.instanceValue("y").toString()));
+
+
+    if (m_beginWidth != m_feedbackNode.instanceValue("width"))
+        painter->setPen(Qt::green);
+    else
+        painter->setPen(Qt::black);
+
+    painter->drawText(mapToScene(QPoint(2.0, 36.0)), QString("width: \t\t%1").arg(m_feedbackNode.instanceValue("width").toString()));
+
+
+    if (m_beginHeight != m_feedbackNode.instanceValue("height"))
+        painter->setPen(Qt::green);
+    else
+        painter->setPen(Qt::black);
+
+    painter->drawText(mapToScene(QPoint(2.0, 48.0)), QString("height:\t\t%1").arg(m_feedbackNode.instanceValue("height").toString()));
+
+    if (m_parentNode == m_feedbackNode.instanceParent()) {
+
+        if (m_feedbackNode.canReparent()) {
+            painter->setPen(Qt::black);
+            painter->drawText(mapToScene(QPoint(2.0, 60.0)), QString("Can reparent."));
+        } else {
+            painter->setPen(Qt::red);
+            painter->drawText(mapToScene(QPoint(2.0, 60.0)), QString("Cannot reparent."));
+        }
+    } else {
+        painter->setPen(Qt::yellow);
+        if (m_feedbackNode.instanceParent().id().isEmpty())
+            painter->drawText(mapToScene(QPoint(2.0, 60.0)), QString("Parent has changed."));
+        else
+            painter->drawText(mapToScene(QPoint(2.0, 60.0)), QString("Parent has changed to %1.").arg(m_feedbackNode.instanceParent().id()));
+    }
+
+
+    if (m_beginTopMargin != m_feedbackNode.instanceValue("anchors.leftMargin"))
+        painter->setPen(Qt::green);
+    else
+        painter->setPen(Qt::black);
+
+    painter->drawText(mapToScene(QPoint(2.0, 72.0)), QString("leftMargin: \t\t%1").arg(m_feedbackNode.instanceValue("anchors.leftMargin").toString()));
+
+    if (m_beginRightMargin != m_feedbackNode.instanceValue("anchors.rightMargin"))
+        painter->setPen(Qt::green);
+    else
+        painter->setPen(Qt::black);
+
+    painter->drawText(mapToScene(QPoint(2.0, 84.0)), QString("rightMargin: \t\t%1").arg(m_feedbackNode.instanceValue("anchors.rightMargin").toString()));
+
+
+
+    if (m_beginTopMargin != m_feedbackNode.instanceValue("anchors.topMargin"))
+        painter->setPen(Qt::green);
+    else
+        painter->setPen(Qt::black);
+
+    painter->drawText(mapToScene(QPoint(2.0, 96.0)), QString("topMargin: \t\t%1").arg(m_feedbackNode.instanceValue("anchors.topMargin").toString()));
+
+
+    if (m_beginBottomMargin != m_feedbackNode.instanceValue("anchors.bottomMargin"))
+        painter->setPen(Qt::green);
+    else
+        painter->setPen(Qt::black);
+
+    painter->drawText(mapToScene(QPoint(2.0, 108.0)), QString("bottomMargin: \t%1").arg(m_feedbackNode.instanceValue("anchors.bottomMargin").toString()));
+
+    painter->restore();
+}
+
+void FormEditorGraphicsView::setFeedbackNode(const QmlItemNode &node)
+{
+    if (node == m_feedbackNode)
+        return;
+
+    m_feedbackNode = node;
+
+    if (m_feedbackNode.isValid()) {
+        m_beginX = m_feedbackNode.instanceValue("x");
+        m_beginY = m_feedbackNode.instanceValue("y");
+        m_beginWidth = m_feedbackNode.instanceValue("width");
+        m_beginHeight = m_feedbackNode.instanceValue("height");
+        m_parentNode = m_feedbackNode.instanceParent();
+        m_beginLeftMargin = m_feedbackNode.instanceValue("anchors.leftMargin");
+        m_beginRightMargin = m_feedbackNode.instanceValue("anchors.rightMargin");
+        m_beginTopMargin = m_feedbackNode.instanceValue("anchors.topMargin");
+        m_beginBottomMargin = m_feedbackNode.instanceValue("anchors.bottomMargin");
+    } else {
+        m_beginX = QVariant();
+        m_beginY = QVariant();
+        m_beginWidth = QVariant();
+        m_beginHeight = QVariant();
+        m_parentNode = QmlObjectNode();
+        m_beginLeftMargin = QVariant();
+        m_beginRightMargin = QVariant();
+        m_beginTopMargin = QVariant();
+        m_beginBottomMargin = QVariant();
+    }
+}
+
 void FormEditorGraphicsView::drawBackground(QPainter *painter, const QRectF &rect)
 {
     painter->save();
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.h b/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.h
index 1caf1ac24bbf249cac1136da6a873b3f09d743a0..bb0706b4bfb7e9ff59b800269a9c8dffc15ea1eb 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.h
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.h
@@ -31,6 +31,7 @@
 #define FORMEDITORGRAPHICSVIEW_H
 
 #include <QGraphicsView>
+#include <qmlitemnode.h>
 
 namespace QmlDesigner {
 
@@ -40,12 +41,25 @@ Q_OBJECT
 public:
     explicit FormEditorGraphicsView(QWidget *parent = 0);
 
+    void setFeedbackNode(const QmlItemNode &node);
 
 protected:
+    void drawForeground(QPainter *painter, const QRectF &rect );
     void drawBackground(QPainter *painter, const QRectF &rect);
     void wheelEvent(QWheelEvent *event);
     void mouseMoveEvent(QMouseEvent *event);
     void mouseReleaseEvent(QMouseEvent *event);
+private:
+    QmlItemNode m_feedbackNode;
+    QmlObjectNode m_parentNode;
+    QVariant m_beginX;
+    QVariant m_beginY;
+    QVariant m_beginWidth;
+    QVariant m_beginHeight;
+    QVariant m_beginLeftMargin;
+    QVariant m_beginRightMargin;
+    QVariant m_beginTopMargin;
+    QVariant m_beginBottomMargin;
 };
 
 } // namespace QmlDesigner
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
index 02ae0dc29c76f3cee0e97b5e74d3a18096cf0d0a..b012e6f32004970265ad05495e354c4e6fa09a07 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
@@ -251,6 +251,11 @@ void FormEditorView::selectedNodesChanged(const QList<ModelNode> &selectedNodeLi
             item->update();
     }
 
+    if (selectedNodeList.count() == 1)
+        m_formEditorWidget->setFeedbackNode(QmlItemNode(selectedNodeList.first()));
+    else
+        m_formEditorWidget->setFeedbackNode(QmlItemNode());
+
     m_scene->update();
 }
 
@@ -482,6 +487,8 @@ void FormEditorView::transformChanged(const QmlObjectNode &qmlObjectNode)
         m_scene->synchronizeTransformation(itemNode);
         m_currentTool->formEditorItemsChanged(QList<FormEditorItem*>() << m_scene->itemForQmlItemNode(itemNode));
     }
+
+    scene()->update();
 }
 
 void FormEditorView::parentChanged(const QmlObjectNode &qmlObjectNode)
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp
index e7bb9953374c42c6708927e0e1092821c68a518f..e8ded838265b30ee33bfcbe1cc5417d7f9a3b530 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp
@@ -284,6 +284,11 @@ double FormEditorWidget::margins() const
     return m_snappingMarginAction->currentValue().toDouble();
 }
 
+void FormEditorWidget::setFeedbackNode(const QmlItemNode &node)
+{
+    m_graphicsView->setFeedbackNode(node);
+}
+
 }
 
 
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.h b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.h
index 20cda56723aefc9cd9001394e9f5d8442c002a48..688ef5839385b9b12a790b37d5e3af6d2be3b8aa 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.h
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.h
@@ -42,6 +42,8 @@ class FormEditorScene;
 class FormEditorGraphicsView;
 class ToolBox;
 class NumberSeriesAction;
+class QmlItemNode;
+
 
 class FormEditorWidget : public QWidget
 {
@@ -63,6 +65,8 @@ public:
     double spacing() const;
     double margins() const;
 
+    void setFeedbackNode(const QmlItemNode &node);
+
 
 protected:
     void enterEvent(QEvent *event);