40QQmlDebugService::QQmlDebugService(
const QString &name,
float version, QObject *parent)
41 : QObject(*(
new QQmlDebugServicePrivate(name, version)), parent)
43 Q_D(QQmlDebugService);
44 QQmlDebugConnector *server = QQmlDebugConnector::instance();
49 if (server->service(d->name)) {
50 qWarning() <<
"QQmlDebugService: Conflicting plugin name" << d->name;
52 server->addService(d->name,
this);
56QQmlDebugService::~QQmlDebugService()
58 QThread *currentThread = QThread::currentThread();
59 QThread *mainThread = thread();
60 if (currentThread != mainThread) {
61 qFatal(
"Qml debugging framework was cleaned up from wrong thread. Did you leak your "
64 Q_D(QQmlDebugService);
65 QQmlDebugConnector *server = QQmlDebugConnector::instance();
70 if (server->service(d->name) !=
this)
71 qWarning() <<
"QQmlDebugService: Plugin" << d->name <<
"is not registered.";
73 server->removeService(d->name);
131int QQmlDebugService::idForObject(QObject *object)
136 ObjectReferenceHash *hash = objectReferenceHash();
137 auto iter = hash->objects.constFind(object);
139 if (iter == hash->objects.cend()) {
140 int id = hash->nextId++;
141 hash->ids.insert(id, object);
142 iter = hash->objects.insert(object, id);
143 connect(object, &QObject::destroyed, hash, &ObjectReferenceHash::remove);