From c4a0b39068f7c0666be1c1ed6859e0c64c8afb2c Mon Sep 17 00:00:00 2001 From: dante ruiz Date: Wed, 10 Jul 2019 17:56:54 -0700 Subject: [PATCH] requested changes --- interface/src/ui/InteractiveWindow.cpp | 30 +++++++++++++++++--------- interface/src/ui/InteractiveWindow.h | 23 ++++++++++++++++++++ 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/interface/src/ui/InteractiveWindow.cpp b/interface/src/ui/InteractiveWindow.cpp index c85d7bc301..84094a2500 100644 --- a/interface/src/ui/InteractiveWindow.cpp +++ b/interface/src/ui/InteractiveWindow.cpp @@ -51,6 +51,26 @@ static const QStringList KNOWN_SCHEMES = QStringList() << "http" << "https" << " static const int DEFAULT_HEIGHT = 60; +QmlWindowProxy::QmlWindowProxy(QObject* qmlObject, QObject* parent) : QmlWrapper(qmlObject, parent) { + _qmlWindow = qmlObject; +} + +void QmlWindowProxy::updateInteractiveWindowPositionForMode() { +} + +void QmlWindowProxy::setPosition(const glm::vec2& position) { +} + +glm::vec2 QmlWindowProxy::getPosition() const { +} + +void QmlWindowProxy::setSize(const glm::vec2& size) { +} + +glm::vec2 QmlWindowProxy::getSize() const { +} + +void QmlWindowProxy::setTitle(const QString& title static void dockWidgetDeleter(DockWidget* dockWidget) { dockWidget->deleteLater(); } @@ -296,11 +316,6 @@ void InteractiveWindow::qmlToScript(const QVariant& message) { } void InteractiveWindow::setVisible(bool visible) { - if (QThread::currentThread() != thread()) { - QMetaObject::invokeMethod(this, "setVisible", Q_ARG(bool, visible)); - return; - } - if (!_qmlWindow.isNull()) { QMetaObject::invokeMethod(_qmlWindow, "setProperty", Q_ARG(const char*, INTERACTIVE_WINDOW_VISIBLE_PROPERTY), Q_ARG(bool, visible)); @@ -324,11 +339,6 @@ glm::vec2 InteractiveWindow::getPosition() const { } void InteractiveWindow::setPosition(const glm::vec2& position) { - if (QThread::currentThread() != thread()) { - QMetaObject::invokeMethod(this, "setPosition", Q_ARG(const glm::vec2&, position)); - return; - } - if (!_qmlWindow.isNull()) { QMetaObject::invokeMethod(_qmlWindow, "setProperty", Q_ARG(const char*, INTERACTIVE_WINDOW_POSITION_PROPERTY), Q_ARG(QPointF, QPointF(position.x, position.y))); diff --git a/interface/src/ui/InteractiveWindow.h b/interface/src/ui/InteractiveWindow.h index c7b3631dde..d9886bd138 100644 --- a/interface/src/ui/InteractiveWindow.h +++ b/interface/src/ui/InteractiveWindow.h @@ -18,10 +18,33 @@ #include #include #include +#include #include #include +class QmlWindowProxy : QmlWrapper { + Q_OBJECT + +public: + QmlWindowProxy(QObject* qmlObject, QObject* parent = nullptr); + + Q_INVOKABLE void updateInteractiveWindowPositionForMode(); + + Q_INVOKABLE void setPosition(const glm::vec2& position); + glm::vec2 getPositiion() const; + + Q_INVOKABLE void setSize(const glm::vec2& size); + glm::vec2 getSize() const; + + Q_INVOKABLE void setTitle(const QString& title); + QString getTitle() const; +private: + QObject* _qmlWindow; + +}; + + namespace InteractiveWindowEnums { Q_NAMESPACE