5#include <private/qqmldebugserviceinterfaces_p.h>
6#include <private/qqmldebugservicefactory_p.h>
11#include <QtGui/QWindow>
36 QHash<QQuickWindow *, QWindow *> m_waitingWindows;
38 void messageFromClient(
const QByteArray &message);
42 QQmlInspectorService(1, parent), m_globalInspector(
nullptr)
44 connect(
this, &QQmlInspectorServiceImpl::scheduleMessage,
45 this, &QQmlInspectorServiceImpl::messageFromClient, Qt::QueuedConnection);
50 if (state() == Enabled) {
51 if (!m_globalInspector) {
52 m_globalInspector =
new QmlJSDebugger::GlobalInspector(
this);
53 connect(m_globalInspector, &QmlJSDebugger::GlobalInspector::messageToClient,
54 this, &QQmlDebugService::messageToClient);
55 for (QHash<QQuickWindow *, QWindow *>::ConstIterator i = m_waitingWindows.constBegin();
56 i != m_waitingWindows.constEnd(); ++i) {
61 m_waitingWindows.clear();
63 }
else if (m_globalInspector) {
64 delete m_globalInspector;
65 m_globalInspector =
nullptr;
67 return m_globalInspector;
75 m_waitingWindows.insert(window, 0);
83 m_waitingWindows.remove(window);
91 m_waitingWindows[window] = parent;
97 emit scheduleMessage(message);
103 inspector->processMessage(message);
109 Q_PLUGIN_METADATA(IID QQmlDebugServiceFactory_iid FILE
"qqmlinspectorservice.json")
116 return key == QQmlInspectorServiceImpl::s_key ?
new QQmlInspectorServiceImpl(
this) :
nullptr;
121#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)
Combined button and popup list for selecting options.