4#include <private/qqmldebugserviceinterfaces_p.h>
5#include <private/qqmldebugservicefactory_p.h>
10#include <QtGui/QWindow>
35 QHash<QQuickWindow *, QWindow *> m_waitingWindows;
37 void messageFromClient(
const QByteArray &message);
41 QQmlInspectorService(1, parent), m_globalInspector(
nullptr)
43 connect(
this, &QQmlInspectorServiceImpl::scheduleMessage,
44 this, &QQmlInspectorServiceImpl::messageFromClient, Qt::QueuedConnection);
49 if (state() == Enabled) {
50 if (!m_globalInspector) {
51 m_globalInspector =
new QmlJSDebugger::GlobalInspector(
this);
52 connect(m_globalInspector, &QmlJSDebugger::GlobalInspector::messageToClient,
53 this, &QQmlDebugService::messageToClient);
54 for (QHash<QQuickWindow *, QWindow *>::ConstIterator i = m_waitingWindows.constBegin();
55 i != m_waitingWindows.constEnd(); ++i) {
60 m_waitingWindows.clear();
62 }
else if (m_globalInspector) {
63 delete m_globalInspector;
64 m_globalInspector =
nullptr;
66 return m_globalInspector;
74 m_waitingWindows.insert(window, 0);
82 m_waitingWindows.remove(window);
90 m_waitingWindows[window] = parent;
96 emit scheduleMessage(message);
102 inspector->processMessage(message);
108 Q_PLUGIN_METADATA(IID QQmlDebugServiceFactory_iid FILE
"qqmlinspectorservice.json")
115 return key == QQmlInspectorServiceImpl::s_key ?
new QQmlInspectorServiceImpl(
this) :
nullptr;
120#include "qqmlinspectorservice.moc"
void setParentWindow(QQuickWindow *window, QWindow *parent) override
void messageReceived(const QByteArray &) override
void removeWindow(QQuickWindow *window) override
void addWindow(QQuickWindow *window) override
void setParentWindow(QQuickWindow *window, QWindow *parentWindow)
void removeWindow(QQuickWindow *window)
void addWindow(QQuickWindow *window)