aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@nokia.com>2011-07-27 14:46:12 +0200
committerMarco Bubke <marco.bubke@nokia.com>2011-07-27 15:18:43 +0200
commit8870c86ad5587c90fca331c5ceb5050076d9a27b (patch)
tree5e54de00a0e3281f56e45f4b5e11574fd57f9ab3 /share
parente4286b7dc2ee8440edcabeab8e36f2b86877bf93 (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.cpp41
-rw-r--r--share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4nodeinstanceserver.h6
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;