7#include <private/qqmldebugconnector_p.h>
8#include <private/qversionedpacket_p.h>
12using QQmlDebugPacket = QVersionedPacket<QQmlDebugConnector>;
18 service->sendDebugMessage(type, ctxt, buf);
22 QDebugMessageService(2, parent), oldMsgHandler(
nullptr),
23 prevState(QQmlDebugService::NotConnected)
26 QMutexLocker lock(&initMutex);
28 if (state() == Enabled) {
29 oldMsgHandler = qInstallMessageHandler(DebugMessageHandler);
37 restoreOldMessageHandler();
41 const QMessageLogContext &ctxt,
48 ws << QByteArray(
"MESSAGE") <<
int(type) << buf.toUtf8();
49 ws << QByteArray(ctxt.file) << ctxt.line << QByteArray(ctxt.function);
50 ws << QByteArray(ctxt.category) << timer.nsecsElapsed();
52 emit messageToClient(name(), ws.data());
54 (*oldMsgHandler)(type, ctxt, buf);
59 QMutexLocker lock(&initMutex);
61 if (state != Enabled && prevState == Enabled)
62 restoreOldMessageHandler();
63 else if (state == Enabled && prevState != Enabled)
64 oldMsgHandler = qInstallMessageHandler(DebugMessageHandler);
71 QtMessageHandler handler = qInstallMessageHandler(oldMsgHandler);
75 if (handler == DebugMessageHandler)
76 oldMsgHandler =
nullptr;
78 qInstallMessageHandler(handler);
83 QMutexLocker lock(&initMutex);
89#include "moc_qdebugmessageservice.cpp"
void synchronizeTime(const QElapsedTimer &otherTimer) override
void sendDebugMessage(QtMsgType type, const QMessageLogContext &ctxt, const QString &buf)
~QDebugMessageServiceImpl()
void stateChanged(State) override
Combined button and popup list for selecting options.
void DebugMessageHandler(QtMsgType type, const QMessageLogContext &ctxt, const QString &buf)