add checkbox option to clear log (#2963)

This commit is contained in:
Zach H 2017-12-17 17:32:31 -05:00 committed by GitHub
parent 297f1f2555
commit 0eae4dbe54
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 48 additions and 8 deletions

View file

@ -1,18 +1,26 @@
#include "dlg_viewlog.h"
#include "logger.h"
#include "settingscache.h"
#include <QVBoxLayout>
#include <QPlainTextEdit>
DlgViewLog::DlgViewLog(QWidget *parent)
: QDialog(parent)
DlgViewLog::DlgViewLog(QWidget *parent) : QDialog(parent)
{
logArea = new QPlainTextEdit;
logArea->setReadOnly(true);
QVBoxLayout *mainLayout = new QVBoxLayout;
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"));
@ -22,6 +30,11 @@ DlgViewLog::DlgViewLog(QWidget *parent)
connect(&Logger::getInstance(), SIGNAL(logEntryAdded(QString)), this, SLOT(logEntryAdded(QString)));
}
void DlgViewLog::actCheckBoxChanged(bool abNewValue)
{
settingsCache->servers().setClearDebugLogStatus(abNewValue);
}
void DlgViewLog::loadInitialLogBuffer()
{
QList<QString> logBuffer = Logger::getInstance().getLogBuffer();
@ -36,6 +49,10 @@ void DlgViewLog::logEntryAdded(QString message)
void DlgViewLog::closeEvent(QCloseEvent * /* event */)
{
logArea->clear();
if (coClearLog->isChecked())
{
logArea->clear();
}
logArea->appendPlainText(Logger::getInstance().getClientVersion());
}

View file

@ -2,6 +2,7 @@
#define DLG_VIEWLOG_H
#include <QDialog>
#include <QCheckBox>
class QPlainTextEdit;
class QCloseEvent;
@ -13,11 +14,13 @@ public:
protected:
void closeEvent(QCloseEvent *event);
private:
QPlainTextEdit *logArea;
QPlainTextEdit *logArea;
QCheckBox *coClearLog;
void loadInitialLogBuffer();
void loadInitialLogBuffer();
void actCheckBoxChanged(bool abNewValue);
private slots:
void logEntryAdded(QString message);
void logEntryAdded(QString message);
};
#endif
#endif

View file

@ -21,9 +21,13 @@ Logger::~Logger()
void Logger::logToFile(bool enabled)
{
if (enabled)
{
openLogfileSession();
}
else
{
closeLogfileSession();
}
}
QString Logger::getClientVersion()
@ -34,7 +38,9 @@ QString Logger::getClientVersion()
void Logger::openLogfileSession()
{
if (logToFileEnabled)
{
return;
}
fileHandle.setFileName(LOGGER_FILENAME);
fileHandle.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text);

View file

@ -164,6 +164,17 @@ QString ServersSettings::getFPPlayerName(QString defaultName)
return name == QVariant() ? defaultName : name.toString();
}
void ServersSettings::setClearDebugLogStatus(bool abIsChecked)
{
setValue(abIsChecked, "save_debug_log", "server");
}
bool ServersSettings::getClearDebugLogStatus(bool abDefaultValue)
{
QVariant cbFlushLog = getValue("save_debug_log", "server");
return cbFlushLog == QVariant() ? abDefaultValue : cbFlushLog.toBool();
}
void ServersSettings::addNewServer(QString saveName, QString serv, QString port, QString username, QString password, bool savePassword)
{
if (updateExistingServer(saveName, serv, port, username, password, savePassword))

View file

@ -39,6 +39,9 @@ public:
void setFPPlayerName(QString playerName);
void addNewServer(QString saveName, QString serv, QString port, QString username, QString password, bool savePassword);
bool updateExistingServer(QString saveName, QString serv, QString port, QString username, QString password, bool savePassword);
void setClearDebugLogStatus(bool abIsChecked);
bool getClearDebugLogStatus(bool abDefaultValue);
signals:
public slots: