Debugger: Let inspector plugin compile again
authorKai Koehne <kai.koehne@nokia.com>
Tue, 18 Oct 2011 11:21:27 +0000 (13:21 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 18 Oct 2011 14:23:20 +0000 (16:23 +0200)
Change-Id: Ic1db404c0a62da7f8f9e31c7b400fba654e92979
Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>

src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.cpp
src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.h
src/plugins/qmltooling/qmldbg_inspector/qdeclarativeviewinspector.cpp
src/plugins/qmltooling/qmldbg_inspector/qdeclarativeviewinspector.h
src/plugins/qmltooling/qmldbg_inspector/sgviewinspector.cpp
src/plugins/qmltooling/qmldbg_inspector/sgviewinspector.h
src/plugins/qmltooling/qmltooling.pro

index 6a157b9..86a42c2 100644 (file)
@@ -154,17 +154,13 @@ void AbstractViewInspector::animationPausedChangeRequested(bool paused)
 
 void AbstractViewInspector::setShowAppOnTop(bool appOnTop)
 {
-    if (viewWidget()) {
-        QWidget *window = viewWidget()->window();
-        Qt::WindowFlags flags = window->windowFlags();
-        if (appOnTop)
-            flags |= Qt::WindowStaysOnTopHint;
-        else
-            flags &= ~Qt::WindowStaysOnTopHint;
-
-        window->setWindowFlags(flags);
-        window->show();
-    }
+    Qt::WindowFlags flags = windowFlags();
+    if (appOnTop)
+        flags |= Qt::WindowStaysOnTopHint;
+    else
+        flags &= ~Qt::WindowStaysOnTopHint;
+
+    setWindowFlags(flags);
 
     m_showAppOnTop = appOnTop;
     sendShowAppOnTop(appOnTop);
index 14c592e..7d9ad95 100644 (file)
@@ -87,7 +87,9 @@ public:
 
     void clearComponentCache();
 
-    virtual QWidget *viewWidget() const = 0;
+    virtual Qt::WindowFlags windowFlags() const = 0;
+    virtual void setWindowFlags(Qt::WindowFlags flags) = 0;
+
     virtual QDeclarativeEngine *declarativeEngine() const = 0;
 
 
index f97ce01..4b284b7 100644 (file)
 #include "editor/boundingrecthighlighter.h"
 
 #include <QtQuick1/QDeclarativeItem>
-#include <QtDeclarative/QDeclarativeEngine>
-#include <QtDeclarative/QDeclarativeContext>
-#include <QtDeclarative/QDeclarativeExpression>
-#include <QtWidgets/QWidget>
 #include <QtGui/QMouseEvent>
-#include <QtWidgets/QGraphicsObject>
 
 namespace QmlJSDebugger {
 
@@ -141,6 +136,17 @@ void QDeclarativeViewInspector::changeTool(InspectorProtocol::Tool tool)
     }
 }
 
+Qt::WindowFlags QDeclarativeViewInspector::windowFlags() const
+{
+    return declarativeView()->window()->windowFlags();
+}
+
+void QDeclarativeViewInspector::setWindowFlags(Qt::WindowFlags flags)
+{
+    declarativeView()->window()->setWindowFlags(flags);
+    declarativeView()->window()->show();
+}
+
 AbstractLiveEditTool *QDeclarativeViewInspector::currentTool() const
 {
     return static_cast<AbstractLiveEditTool*>(AbstractViewInspector::currentTool());
index 1a1b167..c769a95 100644 (file)
@@ -68,7 +68,8 @@ public:
     void reloadView();
     void reparentQmlObject(QObject *object, QObject *newParent);
     void changeTool(InspectorProtocol::Tool tool);
-    QWidget *viewWidget() const { return declarativeView(); }
+    Qt::WindowFlags windowFlags() const;
+    void setWindowFlags(Qt::WindowFlags flags);
     QDeclarativeEngine *declarativeEngine() const;
 
     void setSelectedItems(QList<QGraphicsItem *> items);
index 497e51d..a6f4052 100644 (file)
 #include "sghighlight.h"
 #include "sgselectiontool.h"
 
-#include <QtDeclarative/private/qdeclarativeinspectorservice_p.h>
 #include <QtDeclarative/private/qsgitem_p.h>
 
 #include <QtDeclarative/QSGView>
 #include <QtDeclarative/QSGItem>
-#include <QtGui/QMouseEvent>
 
 #include <cfloat>
 
@@ -126,8 +124,9 @@ SGViewInspector::SGViewInspector(QSGView *view, QObject *parent) :
     // Try to make sure the overlay is always on top
     m_overlay->setZ(FLT_MAX);
 
+    // TODO
     // Make sure mouse hover events are received
-    m_view->setMouseTracking(true);
+//    m_view->setMouseTracking(true);
 
     if (QSGItem *root = view->rootItem())
         m_overlay->setParentItem(root);
@@ -186,14 +185,31 @@ void SGViewInspector::changeTool(InspectorProtocol::Tool tool)
     }
 }
 
-QDeclarativeEngine *SGViewInspector::declarativeEngine() const
+QWindow *getMasterWindow(QWindow *w)
 {
-    return m_view->engine();
+    QWindow *p = w->parent();
+    while (p) {
+        w = p;
+        p = p->parent();
+    }
+    return w;
+}
+
+Qt::WindowFlags SGViewInspector::windowFlags() const
+{
+    return getMasterWindow(m_view)->windowFlags();
 }
 
-QWidget *SGViewInspector::viewWidget() const
+void SGViewInspector::setWindowFlags(Qt::WindowFlags flags)
 {
-    return m_view;
+    QWindow *w = getMasterWindow(m_view);
+    w->setWindowFlags(flags);
+    w->show();
+}
+
+QDeclarativeEngine *SGViewInspector::declarativeEngine() const
+{
+    return m_view->engine();
 }
 
 QSGItem *SGViewInspector::topVisibleItemAt(const QPointF &pos) const
@@ -281,10 +297,11 @@ bool SGViewInspector::eventFilter(QObject *obj, QEvent *event)
 
 bool SGViewInspector::mouseMoveEvent(QMouseEvent *event)
 {
-    if (QSGItem *item = topVisibleItemAt(event->pos()))
-        m_view->setToolTip(titleForItem(item));
-    else
-        m_view->setToolTip(QString());
+    // TODO
+//    if (QSGItem *item = topVisibleItemAt(event->pos()))
+//        m_view->setToolTip(titleForItem(item));
+//    else
+//        m_view->setToolTip(QString());
 
     return AbstractViewInspector::mouseMoveEvent(event);
 }
index 14a5bb1..38271aa 100644 (file)
@@ -68,7 +68,8 @@ public:
     void reloadView();
     void reparentQmlObject(QObject *object, QObject *newParent);
     void changeTool(InspectorProtocol::Tool tool);
-    QWidget *viewWidget() const;
+    Qt::WindowFlags windowFlags() const;
+    void setWindowFlags(Qt::WindowFlags flags);
     QDeclarativeEngine *declarativeEngine() const;
 
     QSGView *view() const { return m_view; }
index d400f74..b5c8eaf 100644 (file)
@@ -2,7 +2,6 @@ TEMPLATE = subdirs
 
 SUBDIRS = qmldbg_tcp
 
-#  ### refactor:
-# SUBDIRS = qmldbg_inspector
+SUBDIRS += qmldbg_inspector
 
 symbian:SUBDIRS += qmldbg_ost