From f2c145b2fc9d6ffce838398e06f7aa583d05887d Mon Sep 17 00:00:00 2001 From: LostDragonist Date: Sat, 5 Jan 2019 16:34:10 -0600 Subject: Change qPrintable to qUtf8Printable to better support non-ASCII text --- src/logbuffer.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/logbuffer.cpp') diff --git a/src/logbuffer.cpp b/src/logbuffer.cpp index 522ce3c8..485e27db 100644 --- a/src/logbuffer.cpp +++ b/src/logbuffer.cpp @@ -127,7 +127,7 @@ void LogBuffer::log(QtMsgType type, const QMessageLogContext &context, { // QMutexLocker doesn't support timeout... if (!s_Mutex.tryLock(100)) { - fprintf(stderr, "failed to log: %s", qPrintable(message)); + fprintf(stderr, "failed to log: %s", qUtf8Printable(message)); return; } ON_BLOCK_EXIT([]() { s_Mutex.unlock(); }); @@ -137,17 +137,17 @@ void LogBuffer::log(QtMsgType type, const QMessageLogContext &context, } if (type == QtDebugMsg) { - fprintf(stdout, "%s [%c] %s\n", qPrintable(QTime::currentTime().toString()), - msgTypeID(type), qPrintable(message)); + fprintf(stdout, "%s [%c] %s\n", qUtf8Printable(QTime::currentTime().toString()), + msgTypeID(type), qUtf8Printable(message)); } else { if (context.line != 0) { fprintf(stdout, "%s [%c] (%s:%u) %s\n", - qPrintable(QTime::currentTime().toString()), msgTypeID(type), - context.file, context.line, qPrintable(message)); + qUtf8Printable(QTime::currentTime().toString()), msgTypeID(type), + context.file, context.line, qUtf8Printable(message)); } else { fprintf(stdout, "%s [%c] %s\n", - qPrintable(QTime::currentTime().toString()), msgTypeID(type), - qPrintable(message)); + qUtf8Printable(QTime::currentTime().toString()), msgTypeID(type), + qUtf8Printable(message)); } } fflush(stdout); -- cgit v1.3.1 From 6c0f5202ce06fd22143b34f3a9d06a83f661e6c8 Mon Sep 17 00:00:00 2001 From: LostDragonist Date: Thu, 7 Mar 2019 08:37:38 -0600 Subject: Support log messages with newlines --- src/logbuffer.cpp | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) (limited to 'src/logbuffer.cpp') diff --git a/src/logbuffer.cpp b/src/logbuffer.cpp index 485e27db..b7fd7eae 100644 --- a/src/logbuffer.cpp +++ b/src/logbuffer.cpp @@ -51,21 +51,24 @@ LogBuffer::~LogBuffer() void LogBuffer::logMessage(QtMsgType type, const QString &message) { if (type >= m_MinMsgType) { - Message msg = {type, QTime::currentTime(), message}; - if (m_NumMessages < m_Messages.size()) { - beginInsertRows(QModelIndex(), static_cast(m_NumMessages), - static_cast(m_NumMessages) + 1); - } - m_Messages.at(m_NumMessages % m_Messages.size()) = msg; - if (m_NumMessages < m_Messages.size()) { - endInsertRows(); - } else { - emit dataChanged(createIndex(0, 0), - createIndex(static_cast(m_Messages.size()), 0)); - } - ++m_NumMessages; - if (type >= QtCriticalMsg) { - write(); + QStringList messagelist = message.split("\n"); + for (auto split_message : messagelist) { + Message msg = {type, QTime::currentTime(), split_message}; + if (m_NumMessages < m_Messages.size()) { + beginInsertRows(QModelIndex(), static_cast(m_NumMessages), + static_cast(m_NumMessages) + 1); + } + m_Messages.at(m_NumMessages % m_Messages.size()) = msg; + if (m_NumMessages < m_Messages.size()) { + endInsertRows(); + } else { + emit dataChanged(createIndex(0, 0), + createIndex(static_cast(m_Messages.size()), 0)); + } + ++m_NumMessages; + if (type >= QtCriticalMsg) { + write(); + } } } } -- cgit v1.3.1 From d14125835790fe2d660acddf78e313affde0ee29 Mon Sep 17 00:00:00 2001 From: LostDragonist Date: Fri, 22 Mar 2019 17:16:08 -0500 Subject: Add support for info log messages --- src/logbuffer.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/logbuffer.cpp') diff --git a/src/logbuffer.cpp b/src/logbuffer.cpp index b7fd7eae..7314624f 100644 --- a/src/logbuffer.cpp +++ b/src/logbuffer.cpp @@ -114,6 +114,8 @@ char LogBuffer::msgTypeID(QtMsgType type) switch (type) { case QtDebugMsg: return 'D'; + case QtInfoMsg: + return 'I'; case QtWarningMsg: return 'W'; case QtCriticalMsg: @@ -203,6 +205,7 @@ QVariant LogBuffer::data(const QModelIndex &index, int role) const if (index.column() == 1) { switch (m_Messages[msgIndex].type) { case QtDebugMsg: + case QtInfoMsg: return QIcon(":/MO/gui/information"); case QtWarningMsg: return QIcon(":/MO/gui/warning"); @@ -218,6 +221,8 @@ QVariant LogBuffer::data(const QModelIndex &index, int role) const switch (m_Messages[msgIndex].type) { case QtDebugMsg: return "D"; + case QtInfoMsg: + return "I"; case QtWarningMsg: return "W"; case QtCriticalMsg: -- cgit v1.3.1