diff options
author | Marco Bubke <marco.bubke@nokia.com> | 2011-07-27 14:46:12 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@nokia.com> | 2011-07-27 15:18:43 +0200 |
commit | 8870c86ad5587c90fca331c5ceb5050076d9a27b (patch) | |
tree | 5e54de00a0e3281f56e45f4b5e11574fd57f9ab3 /share | |
parent | e4286b7dc2ee8440edcabeab8e36f2b86877bf93 (diff) |
QmlDesigner.NodeInstance: Update the screen object if the root item size changed
Change-Id: Ifc06131f4a57a30ab9b20687372150b23c8416cb
Reviewed-on: http://codereview.qt.nokia.com/2285
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Diffstat (limited to 'share')
-rw-r--r-- | share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.cpp | 41 | ||||
-rw-r--r-- | share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.h | 6 |
2 files changed, 47 insertions, 0 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.cpp index 7354f2303ee..ff6e32eda4f 100644 --- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.cpp +++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.cpp @@ -146,4 +146,45 @@ void Qt4NodeInstanceServer::refreshBindings() engine()->rootContext()->setContextProperty(QString("__%1").arg(counter++), 0); // refreshing bindings } +void Qt4NodeInstanceServer::changeAuxiliaryValues(const ChangeAuxiliaryCommand &command) +{ + NodeInstanceServer::changeAuxiliaryValues(command); + + refreshScreenObject(); +} + +void Qt4NodeInstanceServer::changePropertyValues(const ChangeValuesCommand &command) +{ + NodeInstanceServer::changePropertyValues(command); + + refreshScreenObject(); +} + +void Qt4NodeInstanceServer::changePropertyBindings(const ChangeBindingsCommand &command) +{ + NodeInstanceServer::changePropertyBindings(command); + + refreshScreenObject(); +} + +void Qt4NodeInstanceServer::removeProperties(const RemovePropertiesCommand &command) +{ + NodeInstanceServer::removeProperties(command); + + refreshScreenObject(); +} + +void Qt4NodeInstanceServer::refreshScreenObject() +{ + if (declarativeView()) { + QObject *screen = rootContext()->contextProperty("screen").value<QObject*>(); + if (screen) { + screen->metaObject()->invokeMethod(screen, + "privateSetDisplay", + Q_ARG(int, rootNodeInstance().size().width()), + Q_ARG(int, rootNodeInstance().size().height()), + Q_ARG(qreal, 210)); // TODO: dpi should be setable + } + } +} } // QmlDesigner diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.h b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.h index 67ee32102e9..06bc8081a71 100644 --- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.h +++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.h @@ -53,12 +53,18 @@ public: QDeclarativeEngine *engine() const; void refreshBindings(); + void changeAuxiliaryValues(const ChangeAuxiliaryCommand &command); + void changePropertyValues(const ChangeValuesCommand &command); + void changePropertyBindings(const ChangeBindingsCommand &command); + void removeProperties(const RemovePropertiesCommand &command); + protected: void initializeView(const QVector<AddImportContainer> &importVector); void resizeCanvasSizeToRootItemSize(); void resetAllItems(); bool nonInstanceChildIsDirty(QGraphicsObject *graphicsObject) const; QList<ServerNodeInstance> setupScene(const CreateSceneCommand &command); + void refreshScreenObject(); private: QWeakPointer<QDeclarativeView> m_declarativeView; |