diff options
author | Dominik Holland <dominik.holland@pelagicore.com> | 2015-08-06 13:15:52 +0200 |
---|---|---|
committer | Dominik Holland <dominik.holland@pelagicore.com> | 2015-08-06 13:16:34 +0200 |
commit | 69d6850fe13b80703fec6f34d04623491a132d71 (patch) | |
tree | 19bc8ddca75721f2b797c7e60995daf79aec82b8 /src/geniviextras/qdltregistration.cpp | |
parent | 553203a4b4d65405d69dc6951ad7016f4f1c28b8 (diff) |
Added a logLevelChanged signal to QDltRegistration
This enables the Developer to react on log level changes.
Diffstat (limited to 'src/geniviextras/qdltregistration.cpp')
-rw-r--r-- | src/geniviextras/qdltregistration.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/geniviextras/qdltregistration.cpp b/src/geniviextras/qdltregistration.cpp index 742ffaa..724328d 100644 --- a/src/geniviextras/qdltregistration.cpp +++ b/src/geniviextras/qdltregistration.cpp @@ -51,8 +51,9 @@ QDltRegistration *globalDltRegistration() return dltRegistration(); } -QDltRegistrationPrivate::QDltRegistrationPrivate() - : m_defaultContext(nullptr) +QDltRegistrationPrivate::QDltRegistrationPrivate(QDltRegistration *parent) + : q_ptr(parent) + , m_defaultContext(nullptr) { } @@ -81,6 +82,7 @@ DltContext *QDltRegistrationPrivate::context(const char *categoryName) void QDltRegistrationPrivate::dltLogLevelChanged(char context_id[], uint8_t log_level, uint8_t trace_status) { + Q_Q(QDltRegistration); Q_UNUSED(trace_status) const QString contextName = QString::fromLatin1(context_id); @@ -121,13 +123,18 @@ void QDltRegistrationPrivate::dltLogLevelChanged(char context_id[], uint8_t log_ bool enabled = true; if (!msgTypes.contains(type)) enabled = !enabled; - m_ctxName2Category.value(contextName)->setEnabled(type, enabled); + QLoggingCategory* category = m_ctxName2Category.value(contextName); + if (category->isEnabled(type) != enabled) + { + category->setEnabled(type, enabled); + q->logLevelChanged(category); + } } } } QDltRegistration::QDltRegistration() - : d_ptr(new QDltRegistrationPrivate()) + : d_ptr(new QDltRegistrationPrivate(this)) { } |