From cb7665ed8fa76e876c035521d24ec5806475327e Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Tue, 18 Oct 2011 13:21:27 +0200 Subject: Debugger: Let inspector plugin compile again Change-Id: Ic1db404c0a62da7f8f9e31c7b400fba654e92979 Reviewed-by: Christiaan Janssen --- .../qmldbg_inspector/abstractviewinspector.cpp | 18 ++++------ .../qmldbg_inspector/abstractviewinspector.h | 4 ++- .../qmldbg_inspector/qdeclarativeviewinspector.cpp | 16 ++++++--- .../qmldbg_inspector/qdeclarativeviewinspector.h | 3 +- .../qmldbg_inspector/sgviewinspector.cpp | 39 ++++++++++++++++------ .../qmltooling/qmldbg_inspector/sgviewinspector.h | 3 +- src/plugins/qmltooling/qmltooling.pro | 3 +- 7 files changed, 54 insertions(+), 32 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.cpp b/src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.cpp index 6a157b9cf6..86a42c217c 100644 --- a/src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.cpp +++ b/src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.cpp @@ -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); diff --git a/src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.h b/src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.h index 14c592ed4c..7d9ad955dc 100644 --- a/src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.h +++ b/src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.h @@ -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; diff --git a/src/plugins/qmltooling/qmldbg_inspector/qdeclarativeviewinspector.cpp b/src/plugins/qmltooling/qmldbg_inspector/qdeclarativeviewinspector.cpp index f97ce010ba..4b284b7209 100644 --- a/src/plugins/qmltooling/qmldbg_inspector/qdeclarativeviewinspector.cpp +++ b/src/plugins/qmltooling/qmldbg_inspector/qdeclarativeviewinspector.cpp @@ -49,12 +49,7 @@ #include "editor/boundingrecthighlighter.h" #include -#include -#include -#include -#include #include -#include 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(AbstractViewInspector::currentTool()); diff --git a/src/plugins/qmltooling/qmldbg_inspector/qdeclarativeviewinspector.h b/src/plugins/qmltooling/qmldbg_inspector/qdeclarativeviewinspector.h index 1a1b167622..c769a956e8 100644 --- a/src/plugins/qmltooling/qmldbg_inspector/qdeclarativeviewinspector.h +++ b/src/plugins/qmltooling/qmldbg_inspector/qdeclarativeviewinspector.h @@ -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 items); diff --git a/src/plugins/qmltooling/qmldbg_inspector/sgviewinspector.cpp b/src/plugins/qmltooling/qmldbg_inspector/sgviewinspector.cpp index 497e51db4d..a6f405261d 100644 --- a/src/plugins/qmltooling/qmldbg_inspector/sgviewinspector.cpp +++ b/src/plugins/qmltooling/qmldbg_inspector/sgviewinspector.cpp @@ -45,12 +45,10 @@ #include "sghighlight.h" #include "sgselectiontool.h" -#include #include #include #include -#include #include @@ -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); } diff --git a/src/plugins/qmltooling/qmldbg_inspector/sgviewinspector.h b/src/plugins/qmltooling/qmldbg_inspector/sgviewinspector.h index 14a5bb1872..38271aa2d7 100644 --- a/src/plugins/qmltooling/qmldbg_inspector/sgviewinspector.h +++ b/src/plugins/qmltooling/qmldbg_inspector/sgviewinspector.h @@ -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; } diff --git a/src/plugins/qmltooling/qmltooling.pro b/src/plugins/qmltooling/qmltooling.pro index d400f741cc..b5c8eaf487 100644 --- a/src/plugins/qmltooling/qmltooling.pro +++ b/src/plugins/qmltooling/qmltooling.pro @@ -2,7 +2,6 @@ TEMPLATE = subdirs SUBDIRS = qmldbg_tcp -# ### refactor: -# SUBDIRS = qmldbg_inspector +SUBDIRS += qmldbg_inspector symbian:SUBDIRS += qmldbg_ost -- cgit v1.2.3