#pragma once #include #include #include class QProcess; class SignalDumper : public QObject { Q_OBJECT public: static void dumpStr(QString str); explicit SignalDumper(QObject* parent); virtual ~SignalDumper(); void startDump(); void endDump(); private: static SignalDumper* Dumper; void dump(QString str); QProcess* displayProc = nullptr; QFile* fifo = nullptr; }; // declaration of "hidden" qt features #define registerCall _Z32qt_register_signal_spy_callbacksP21QSignalSpyCallbackSet QT_BEGIN_NAMESPACE struct QSignalSpyCallbackSet { typedef void (*BeginCallback)(QObject* caller, int signal_or_method_index, void** argv); typedef void (*EndCallback)(QObject* caller, int signal_or_method_index); BeginCallback signal_begin_callback, slot_begin_callback; EndCallback signal_end_callback, slot_end_callback; }; // from qcoreapplication.cpp:263 : qt_register_signal_spy_callbacks // or qobject_p.h:82 extern "C" void Q_CORE_EXPORT _Z32qt_register_signal_spy_callbacksP21QSignalSpyCallbackSet(const QSignalSpyCallbackSet &callback_set); struct QMetaObjectPrivate { Q_CORE_EXPORT static QMetaMethod signal(const QMetaObject* m, int signal_index); }; QT_END_NAMESPACE