summaryrefslogtreecommitdiff
path: root/src/settingsdialogdiagnostics.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-09-09 01:25:01 -0400
committerGitHub <noreply@github.com>2019-09-09 01:25:01 -0400
commit99fdbb2539227cec4fab534efc7420cfc5ca1a92 (patch)
tree4fe70561a85d86b65cc4c6725541767684af09a7 /src/settingsdialogdiagnostics.cpp
parent73626b297904d50507bb7d5d1342120040e655e8 (diff)
parentd863e62c6e2f3c0daa50e16a0206f59558a7bb7e (diff)
Merge pull request #830 from isanae/settings-interface
Settings interface
Diffstat (limited to 'src/settingsdialogdiagnostics.cpp')
-rw-r--r--src/settingsdialogdiagnostics.cpp47
1 files changed, 39 insertions, 8 deletions
diff --git a/src/settingsdialogdiagnostics.cpp b/src/settingsdialogdiagnostics.cpp
index daf81d5c..386c7425 100644
--- a/src/settingsdialogdiagnostics.cpp
+++ b/src/settingsdialogdiagnostics.cpp
@@ -6,14 +6,17 @@
using namespace MOBase;
-DiagnosticsSettingsTab::DiagnosticsSettingsTab(Settings *m_parent, SettingsDialog &m_dialog)
- : SettingsTab(m_parent, m_dialog)
+DiagnosticsSettingsTab::DiagnosticsSettingsTab(Settings& s, SettingsDialog& d)
+ : SettingsTab(s, d)
{
setLevelsBox();
- ui->dumpsTypeBox->setCurrentIndex(m_parent->crashDumpsType());
- ui->dumpsMaxEdit->setValue(m_parent->crashDumpsMax());
+ setCrashDumpTypesBox();
+
+ ui->dumpsMaxEdit->setValue(settings().diagnostics().crashDumpsMax());
+
QString logsPath = qApp->property("dataPath").toString()
+ "/" + QString::fromStdWString(AppConfig::logPath());
+
ui->diagnosticsExplainedLabel->setText(
ui->diagnosticsExplainedLabel->text()
.replace("LOGS_FULL_PATH", logsPath)
@@ -33,16 +36,44 @@ void DiagnosticsSettingsTab::setLevelsBox()
ui->logLevelBox->addItem(QObject::tr("Error"), log::Error);
for (int i=0; i<ui->logLevelBox->count(); ++i) {
- if (ui->logLevelBox->itemData(i) == m_parent->logLevel()) {
+ if (ui->logLevelBox->itemData(i) == settings().diagnostics().logLevel()) {
ui->logLevelBox->setCurrentIndex(i);
break;
}
}
}
+void DiagnosticsSettingsTab::setCrashDumpTypesBox()
+{
+ ui->dumpsTypeBox->clear();
+
+ auto add = [&](auto&& text, auto&& type) {
+ ui->dumpsTypeBox->addItem(text, static_cast<int>(type));
+ };
+
+ add(QObject::tr("None"), CrashDumpsType::None);
+ add(QObject::tr("Mini (recommended)"), CrashDumpsType::Mini);
+ add(QObject::tr("Data"), CrashDumpsType::Data);
+ add(QObject::tr("Full"), CrashDumpsType::Full);
+
+ const auto current = static_cast<int>(
+ settings().diagnostics().crashDumpsType());
+
+ for (int i=0; i<ui->dumpsTypeBox->count(); ++i) {
+ if (ui->dumpsTypeBox->itemData(i) == current) {
+ ui->dumpsTypeBox->setCurrentIndex(i);
+ break;
+ }
+ }
+}
+
void DiagnosticsSettingsTab::update()
{
- m_Settings.setValue("Settings/log_level", ui->logLevelBox->currentData().toInt());
- m_Settings.setValue("Settings/crash_dumps_type", ui->dumpsTypeBox->currentIndex());
- m_Settings.setValue("Settings/crash_dumps_max", ui->dumpsMaxEdit->value());
+ settings().diagnostics().setLogLevel(
+ static_cast<log::Levels>(ui->logLevelBox->currentData().toInt()));
+
+ settings().diagnostics().setCrashDumpsType(
+ static_cast<CrashDumpsType>(ui->dumpsTypeBox->currentData().toInt()));
+
+ settings().diagnostics().setCrashDumpsMax(ui->dumpsMaxEdit->value());
}