diff options
4 files changed, 24 insertions, 13 deletions
diff --git a/src/plugins/qmltooling/qmldbg_qtquick2/qquickviewinspector.cpp b/src/plugins/qmltooling/qmldbg_qtquick2/qquickviewinspector.cpp index a42663eda0..37a8997927 100644 --- a/src/plugins/qmltooling/qmldbg_qtquick2/qquickviewinspector.cpp +++ b/src/plugins/qmltooling/qmldbg_qtquick2/qquickviewinspector.cpp @@ -339,6 +339,14 @@ void QQuickViewInspector::reloadQmlFile(const QHash<QString, QByteArray> &change view()->setSource(view()->source()); } +void QQuickViewInspector::setShowAppOnTop(bool appOnTop) +{ + m_appOnTop = appOnTop; + // Hack for QTCREATORBUG-6295. + // TODO: The root cause to be identified and fixed later. + QTimer::singleShot(100, this, SLOT(applyAppOnTop())); +} + void QQuickViewInspector::onViewStatus(QQuickView::Status status) { bool success = false; @@ -362,5 +370,16 @@ void QQuickViewInspector::onViewStatus(QQuickView::Status status) } } +void QQuickViewInspector::applyAppOnTop() +{ + Qt::WindowFlags flags = windowFlags(); + if (m_appOnTop) + flags |= Qt::WindowStaysOnTopHint; + else + flags &= ~Qt::WindowStaysOnTopHint; + + setWindowFlags(flags); +} + } // namespace QtQuick2 } // namespace QmlJSDebugger diff --git a/src/plugins/qmltooling/qmldbg_qtquick2/qquickviewinspector.h b/src/plugins/qmltooling/qmldbg_qtquick2/qquickviewinspector.h index d687d6ba0e..5d7880928d 100644 --- a/src/plugins/qmltooling/qmldbg_qtquick2/qquickviewinspector.h +++ b/src/plugins/qmltooling/qmldbg_qtquick2/qquickviewinspector.h @@ -91,9 +91,12 @@ protected: bool mouseMoveEvent(QMouseEvent *); + void setShowAppOnTop(bool appOnTop); + private slots: void removeFromSelectedItems(QObject *); void onViewStatus(QQuickView::Status status); + void applyAppOnTop(); private: bool syncSelectedItems(const QList<QQuickItem*> &items); @@ -106,6 +109,7 @@ private: QList<QPointer<QQuickItem> > m_selectedItems; QHash<QQuickItem*, SelectionHighlight*> m_highlightItems; bool m_sendQmlReloadedMessage; + bool m_appOnTop; }; } // namespace QtQuick2 diff --git a/src/plugins/qmltooling/shared/abstractviewinspector.cpp b/src/plugins/qmltooling/shared/abstractviewinspector.cpp index d4c41b5084..4c53243745 100644 --- a/src/plugins/qmltooling/shared/abstractviewinspector.cpp +++ b/src/plugins/qmltooling/shared/abstractviewinspector.cpp @@ -139,17 +139,6 @@ void AbstractViewInspector::setAnimationSpeed(qreal slowDownFactor) QUnifiedTimer::instance()->setSlowdownFactor(slowDownFactor); } -void AbstractViewInspector::setShowAppOnTop(bool appOnTop) -{ - Qt::WindowFlags flags = windowFlags(); - if (appOnTop) - flags |= Qt::WindowStaysOnTopHint; - else - flags &= ~Qt::WindowStaysOnTopHint; - - setWindowFlags(flags); -} - bool AbstractViewInspector::eventFilter(QObject *obj, QEvent *event) { if (!enabled()) diff --git a/src/plugins/qmltooling/shared/abstractviewinspector.h b/src/plugins/qmltooling/shared/abstractviewinspector.h index 8eeb640e4e..b531ea193e 100644 --- a/src/plugins/qmltooling/shared/abstractviewinspector.h +++ b/src/plugins/qmltooling/shared/abstractviewinspector.h @@ -109,6 +109,7 @@ protected: virtual bool mouseDoubleClickEvent(QMouseEvent *event); virtual bool wheelEvent(QWheelEvent *event); virtual bool touchEvent(QTouchEvent *event); + virtual void setShowAppOnTop(bool) = 0; private slots: void onQmlObjectDestroyed(QObject *object); @@ -116,8 +117,6 @@ private slots: private: void setEnabled(bool value); - void setShowAppOnTop(bool appOnTop); - void setAnimationSpeed(qreal factor); bool m_enabled; |