41QQmlDebugService::QQmlDebugService(
const QString &name,
float version, QObject *parent)
42 : QObject(*(
new QQmlDebugServicePrivate(name, version)), parent)
44 Q_D(QQmlDebugService);
45 QQmlDebugConnector *server = QQmlDebugConnector::instance();
50 if (server->service(d->name)) {
51 qWarning() <<
"QQmlDebugService: Conflicting plugin name" << d->name;
53 server->addService(d->name,
this);
57QQmlDebugService::~QQmlDebugService()
59 QThread *currentThread = QThread::currentThread();
60 QThread *mainThread = thread();
61 if (currentThread != mainThread) {
62 qFatal(
"Qml debugging framework was cleaned up from wrong thread. Did you leak your "
65 Q_D(QQmlDebugService);
66 QQmlDebugConnector *server = QQmlDebugConnector::instance();
71 if (server->service(d->name) !=
this)
72 qWarning() <<
"QQmlDebugService: Plugin" << d->name <<
"is not registered.";
74 server->removeService(d->name);
132int QQmlDebugService::idForObject(QObject *object)
137 ObjectReferenceHash *hash = objectReferenceHash();
138 auto iter = hash->objects.constFind(object);
140 if (iter == hash->objects.cend()) {
141 int id = hash->nextId++;
142 hash->ids.insert(id, object);
143 iter = hash->objects.insert(object, id);
144 connect(object, &QObject::destroyed, hash, &ObjectReferenceHash::remove);