Qt: Attempt to reduce logging overhead
Jeffrey Pfau jeffrey@endrift.com
Wed, 20 Jan 2016 21:22:04 -0800
2 files changed,
6 insertions(+),
7 deletions(-)
M
src/platform/qt/LogView.cpp
→
src/platform/qt/LogView.cpp
@@ -70,15 +70,13 @@ }
void LogView::postLog(int level, const QString& log) { QString line = QString("%1:\t%2").arg(LogController::toString(level)).arg(log); - if (isVisible()) { - m_ui.view->appendPlainText(line); - } else { - m_pendingLines.enqueue(line); - } + // TODO: Log to file + m_pendingLines.enqueue(line); ++m_lines; if (m_lines > m_lineLimit) { clearLine(); } + update(); } void LogView::clear() {@@ -145,10 +143,11 @@ clearLine();
} } -void LogView::showEvent(QShowEvent*) { +void LogView::paintEvent(QPaintEvent* event) { while (!m_pendingLines.isEmpty()) { m_ui.view->appendPlainText(m_pendingLines.dequeue()); } + QWidget::paintEvent(event); } void LogView::clearLine() {
M
src/platform/qt/LogView.h
→
src/platform/qt/LogView.h
@@ -38,7 +38,7 @@ private slots:
void setMaxLines(int); protected: - virtual void showEvent(QShowEvent*) override; + virtual void paintEvent(QPaintEvent*) override; private: static const int DEFAULT_LINE_LIMIT = 1000;