Qt: Attempt to reduce logging overhead

This commit is contained in:
Jeffrey Pfau 2016-01-20 21:22:04 -08:00
parent 0a9104113c
commit 6e7851f614
2 changed files with 6 additions and 7 deletions

View File

@ -70,15 +70,13 @@ LogView::LogView(LogController* log, QWidget* parent)
void LogView::postLog(int level, const QString& log) { void LogView::postLog(int level, const QString& log) {
QString line = QString("%1:\t%2").arg(LogController::toString(level)).arg(log); QString line = QString("%1:\t%2").arg(LogController::toString(level)).arg(log);
if (isVisible()) { // TODO: Log to file
m_ui.view->appendPlainText(line);
} else {
m_pendingLines.enqueue(line); m_pendingLines.enqueue(line);
}
++m_lines; ++m_lines;
if (m_lines > m_lineLimit) { if (m_lines > m_lineLimit) {
clearLine(); clearLine();
} }
update();
} }
void LogView::clear() { void LogView::clear() {
@ -145,10 +143,11 @@ void LogView::setMaxLines(int limit) {
} }
} }
void LogView::showEvent(QShowEvent*) { void LogView::paintEvent(QPaintEvent* event) {
while (!m_pendingLines.isEmpty()) { while (!m_pendingLines.isEmpty()) {
m_ui.view->appendPlainText(m_pendingLines.dequeue()); m_ui.view->appendPlainText(m_pendingLines.dequeue());
} }
QWidget::paintEvent(event);
} }
void LogView::clearLine() { void LogView::clearLine() {

View File

@ -38,7 +38,7 @@ private slots:
void setMaxLines(int); void setMaxLines(int);
protected: protected:
virtual void showEvent(QShowEvent*) override; virtual void paintEvent(QPaintEvent*) override;
private: private:
static const int DEFAULT_LINE_LIMIT = 1000; static const int DEFAULT_LINE_LIMIT = 1000;