X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=src%2Fdefault-map-settings-dialog.cpp;fp=src%2Fdefault-map-settings-dialog.cpp;h=f5c80c712189c80afb126af12a643df876faa770;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=0000000000000000000000000000000000000000;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/src/default-map-settings-dialog.cpp b/src/default-map-settings-dialog.cpp new file mode 100644 index 0000000..f5c80c7 --- /dev/null +++ b/src/default-map-settings-dialog.cpp @@ -0,0 +1,74 @@ +#include "default-map-settings-dialog.h" + +#include + +#include "mainwindow.h" + +extern Settings settings; +extern Main *mainWindow; +extern QString vymName; + +DefaultMapSettingsDialog::DefaultMapSettingsDialog(QWidget *parent) : QDialog(parent) +{ + ui.setupUi(this); + + initInputs(); + + connect(ui.autoCheckBox, SIGNAL(clicked()), this, SLOT(autoToggled())); + connect(ui.setPathPushButton, SIGNAL(clicked()), this, SLOT(setPathClicked())); + connect(this, &QDialog::accepted, this, &DefaultMapSettingsDialog::updateSettings); +} + +void DefaultMapSettingsDialog::initInputs() +{ + if (settings.value("/system/defaultMap/auto", true).toBool()) { + ui.autoCheckBox->setCheckState(Qt::Checked); + ui.pathLineEdit->setText(mainWindow->defaultMapPath()); + ui.pathLineEdit->setEnabled(false); + ui.setPathPushButton->setEnabled(false); + } else { + ui.autoCheckBox->setCheckState(Qt::Unchecked); + ui.pathLineEdit->setText( + settings.value("/system/defaultMap/path", mainWindow->newMapPath()).toString()); + ui.pathLineEdit->setEnabled(true); + ui.setPathPushButton->setEnabled(true); + } +} + +void DefaultMapSettingsDialog::autoToggled() +{ + if (ui.autoCheckBox->isChecked()) + settings.setValue("/system/defaultMap/auto", true); + else + settings.setValue("/system/defaultMap/auto", false); + + initInputs(); +} + +void DefaultMapSettingsDialog::setPathClicked() +{ + QStringList filters; + filters << "VYM defaults map (*.vym)"; + QFileDialog fd; + fd.setDirectory(dirname(mainWindow->defaultMapPath())); + fd.selectFile(basename(mainWindow->defaultMapPath())); + fd.setFileMode(QFileDialog::ExistingFile); + fd.setNameFilters(filters); + fd.setWindowTitle(vymName + " - " + + tr("Set vym default map to be loaded on startup")); + fd.setAcceptMode(QFileDialog::AcceptOpen); + + QString fn; + if (fd.exec() == QDialog::Accepted) { + settings.setValue("/system/defaultMap/path", fd.selectedFiles().first()); + initInputs(); + } +} + +void DefaultMapSettingsDialog::updateSettings() +{ + settings.beginGroup("/system/defaultMap"); + settings.setValue("auto", ui.autoCheckBox->isChecked()); + settings.setValue("path", ui.pathLineEdit->text()); + settings.endGroup(); +}