+#include "default-map-settings-dialog.h"
+
+#include <QFileDialog>
+
+#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();
+}