#pragma once #include #include #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) class WatchedLocker : public QMutexLocker { #else class WatchedLocker : public QMutexLocker { #endif public: WatchedLocker(QMutex *mutex, bool show = false, const char *func = nullptr) : QMutexLocker(mutex), showLock(show) { if (func) funcName = func; if (showLock) { std::cout << __FUNCTION__; if (funcName.length()) { std::cout << " : " << funcName; } std::cout << std::endl; } } ~WatchedLocker() { if (showLock) { std::cout << __FUNCTION__; if (funcName.length()) { std::cout << " : " << funcName; } std::cout << std::endl; } } protected: std::string funcName; bool showLock; };