mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-04-27 07:48:01 -07:00
* Have CardDatabase::getPreferredPrintingInfo respect card provider ID overrides (pinned printings)
Took 13 minutes
Took 37 seconds
Took 10 seconds
Took 10 seconds
# Commit time for manual adjustment:
# Took 30 seconds
Took 15 seconds
Took 8 minutes
Took 21 seconds
* Move settings cache and settings card preference provider out of libcockatrice_settings and into cockatrice
Took 52 minutes
Took 9 minutes
Took 1 minute
* Temp cache.
Took 16 minutes
* Dependency Injection for SettingsCache
* Turn SettingsCache into a QSharedPointer.
* Implement interfaces for settings that need it
Took 2 hours 38 minutes
* Adjust oracle.
Took 5 minutes
* Move abstract/noop interfaces to libcockatrice_interfaces so they can be linked against independently.
Took 52 minutes
* Clean up some links.
Took 3 minutes
* Cleanup two includes.
Took 3 minutes
* More fixes.
Took 7 minutes
* More includes that slipped past.
Took 3 minutes
* Stop mocking and start injecting for tests.
Took 15 minutes
* I don't know why remote_client was including main.
Took 4 minutes
* Include.
Took 3 minutes
* Lint.
Took 2 minutes
* Don't use Qt pointers.
Took 1 hour 7 minutes
* Make parser use CardSettingsInterface
Took 13 minutes
* Also adjust constructor lol.
Took 8 minutes
* Lint.
Took 32 minutes
* Revert "Lint."
This reverts commit ecb596c39e.
Took 3 minutes
* Test.
Took 3 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
85 lines
2.4 KiB
C++
85 lines
2.4 KiB
C++
#include "dlg_view_log.h"
|
|
|
|
#include "../../../client/settings/cache_settings.h"
|
|
#include "../../logger.h"
|
|
|
|
#include <QClipboard>
|
|
#include <QPlainTextEdit>
|
|
#include <QPushButton>
|
|
#include <QRegularExpression>
|
|
#include <QVBoxLayout>
|
|
|
|
DlgViewLog::DlgViewLog(QWidget *parent) : QDialog(parent)
|
|
{
|
|
logArea = new QPlainTextEdit;
|
|
logArea->setReadOnly(true);
|
|
|
|
auto *mainLayout = new QVBoxLayout;
|
|
mainLayout->setSpacing(3);
|
|
mainLayout->setContentsMargins(20, 20, 20, 6);
|
|
|
|
mainLayout->addWidget(logArea);
|
|
|
|
auto *bottomLayout = new QHBoxLayout;
|
|
|
|
coClearLog = new QCheckBox;
|
|
coClearLog->setText(tr("Clear log when closing"));
|
|
coClearLog->setChecked(SettingsCache::instance().servers().getClearDebugLogStatus(false));
|
|
connect(coClearLog, &QCheckBox::toggled, this, &DlgViewLog::actCheckBoxChanged);
|
|
|
|
copyToClipboardButton = new QPushButton;
|
|
copyToClipboardButton->setText(tr("Copy to clipboard"));
|
|
copyToClipboardButton->setAutoDefault(false);
|
|
connect(copyToClipboardButton, &QPushButton::clicked, this, &DlgViewLog::actCopyToClipboard);
|
|
|
|
bottomLayout->addWidget(coClearLog);
|
|
bottomLayout->addStretch();
|
|
bottomLayout->addWidget(copyToClipboardButton);
|
|
|
|
mainLayout->addLayout(bottomLayout);
|
|
|
|
setLayout(mainLayout);
|
|
|
|
setWindowTitle(tr("Debug Log"));
|
|
resize(800, 500);
|
|
|
|
loadInitialLogBuffer();
|
|
connect(&Logger::getInstance(), &Logger::logEntryAdded, this, &DlgViewLog::appendLogEntry);
|
|
}
|
|
|
|
void DlgViewLog::actCheckBoxChanged(bool abNewValue)
|
|
{
|
|
SettingsCache::instance().servers().setClearDebugLogStatus(abNewValue);
|
|
}
|
|
|
|
void DlgViewLog::actCopyToClipboard()
|
|
{
|
|
QApplication::clipboard()->setText(logArea->toPlainText());
|
|
}
|
|
|
|
void DlgViewLog::loadInitialLogBuffer()
|
|
{
|
|
QList<QString> logBuffer = Logger::getInstance().getLogBuffer();
|
|
for (const QString &message : logBuffer)
|
|
appendLogEntry(message);
|
|
}
|
|
|
|
void DlgViewLog::appendLogEntry(const QString &message)
|
|
{
|
|
static auto colorEscapeCodePattern = QRegularExpression("\033\\[\\d+m");
|
|
|
|
QString sanitizedMessage = message;
|
|
sanitizedMessage.replace(colorEscapeCodePattern, "");
|
|
|
|
logArea->appendPlainText(sanitizedMessage);
|
|
}
|
|
|
|
void DlgViewLog::closeEvent(QCloseEvent * /* event */)
|
|
{
|
|
if (coClearLog->isChecked()) {
|
|
logArea->clear();
|
|
|
|
logArea->appendPlainText(Logger::getInstance().getClientVersion());
|
|
logArea->appendPlainText(Logger::getInstance().getSystemArchitecture());
|
|
}
|
|
}
|