X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Flogging.cpp;h=e42a9e54e94add49cb46b34f3a5ab216650e6c3f;hp=377011b68c928a40cf1cf14c590a220ea9ac6ece;hb=HEAD;hpb=1f2082e20445966624f6172ebefd53fb1a021164
diff --git a/pv/logging.cpp b/pv/logging.cpp
index 377011b6..7dab545d 100644
--- a/pv/logging.cpp
+++ b/pv/logging.cpp
@@ -52,11 +52,13 @@ static void *prev_srd_log_cb_data;
Logging::~Logging()
{
qInstallMessageHandler(nullptr);
- sr_log_callback_set(prev_sr_log_cb, prev_sr_log_cb_data);
+ if (prev_sr_log_cb)
+ sr_log_callback_set(prev_sr_log_cb, prev_sr_log_cb_data);
prev_sr_log_cb = nullptr;
prev_sr_log_cb_data = nullptr;
#ifdef ENABLE_DECODE
- srd_log_callback_set(prev_srd_log_cb, prev_srd_log_cb_data);
+ if (prev_srd_log_cb)
+ srd_log_callback_set(prev_srd_log_cb, prev_srd_log_cb_data);
prev_srd_log_cb = nullptr;
prev_srd_log_cb_data = nullptr;
#endif
@@ -124,10 +126,10 @@ void Logging::log(const QString &text, int source)
switch (source) {
case LogSource_pv:
- s = QString("pv: ") + text; // black is default color
+ s = QString("pv: %1").arg(text);
break;
case LogSource_sr:
- s = QString("sr: %1").arg(text);
+ s = QString("sr: %1").arg(text);
break;
case LogSource_srd:
s = QString("srd: %1").arg(text);
@@ -187,7 +189,15 @@ int Logging::log_srd(void *cb_data, int loglevel, const char *format, va_list ar
va_end(args2);
char *text = g_strdup_vprintf(format, args);
- logging.log(QString::fromUtf8(text), LogSource_srd);
+
+ QString s = QString::fromUtf8(text);
+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
+ for (QString& substring : s.split("\n", Qt::SkipEmptyParts))
+ logging.log(substring, LogSource_srd);
+#else
+ for (QString& substring : s.split("\n", QString::SkipEmptyParts))
+ logging.log(substring, LogSource_srd);
+#endif
g_free(text);
return SR_OK;