all repos — mgba @ 6e7851f6142a9657213de4714c3de453b229e8d7

mGBA Game Boy Advance Emulator

Qt: Attempt to reduce logging overhead
Jeffrey Pfau jeffrey@endrift.com
Wed, 20 Jan 2016 21:22:04 -0800
commit

6e7851f6142a9657213de4714c3de453b229e8d7

parent

0a9104113c077ad54a2a746ccb61f2c31e3db72e

2 files changed, 6 insertions(+), 7 deletions(-)

jump to
M src/platform/qt/LogView.cppsrc/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.hsrc/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;