Changes for "App on Top"
authorSimjees Abraham <simjees.abraham@nokia.com>
Fri, 1 Jun 2012 09:49:21 +0000 (11:49 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 5 Jun 2012 13:34:21 +0000 (15:34 +0200)
Changes made such that the App is on Top at startup if the option was
set in creator.

Task-number: QTCREATORBUG-6295
Change-Id: I218a619805d9091049ba51ac6da2f64049d5185d
Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>
src/plugins/qmltooling/qmldbg_qtquick2/qquickviewinspector.cpp
src/plugins/qmltooling/qmldbg_qtquick2/qquickviewinspector.h
src/plugins/qmltooling/shared/abstractviewinspector.cpp
src/plugins/qmltooling/shared/abstractviewinspector.h

index a42663e..37a8997 100644 (file)
@@ -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
index d687d6b..5d78809 100644 (file)
@@ -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
index d4c41b5..4c53243 100644 (file)
@@ -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())
index 8eeb640..b531ea1 100644 (file)
@@ -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;