#include "dlg_viewlog.h" #include "logger.h" #include "settingscache.h" #include #include DlgViewLog::DlgViewLog(QWidget *parent) : QDialog(parent) { logArea = new QPlainTextEdit; logArea->setReadOnly(true); auto *mainLayout = new QVBoxLayout; mainLayout->addWidget(logArea); coClearLog = new QCheckBox; coClearLog->setText(tr("Clear log when closing")); coClearLog->setChecked(settingsCache->servers().getClearDebugLogStatus(true)); connect(coClearLog, SIGNAL(toggled(bool)), this, SLOT(actCheckBoxChanged(bool))); mainLayout->addWidget(coClearLog); setLayout(mainLayout); setWindowTitle(tr("Debug Log")); resize(800, 500); loadInitialLogBuffer(); connect(&Logger::getInstance(), SIGNAL(logEntryAdded(QString)), this, SLOT(logEntryAdded(QString))); } void DlgViewLog::actCheckBoxChanged(bool abNewValue) { settingsCache->servers().setClearDebugLogStatus(abNewValue); } void DlgViewLog::loadInitialLogBuffer() { QList logBuffer = Logger::getInstance().getLogBuffer(); foreach (QString message, logBuffer) logEntryAdded(message); } void DlgViewLog::logEntryAdded(QString message) { logArea->appendPlainText(message); } void DlgViewLog::closeEvent(QCloseEvent * /* event */) { if (coClearLog->isChecked()) { logArea->clear(); } logArea->appendPlainText(Logger::getInstance().getClientVersion()); logArea->appendPlainText(Logger::getInstance().getSystemArchitecture()); }