]> git.sven.stormbind.net Git - sven/vym.git/blob - src/default-map-settings-dialog.cpp
Replace Pierre as the maintainer
[sven/vym.git] / src / default-map-settings-dialog.cpp
1 #include "default-map-settings-dialog.h"
2
3 #include <QFileDialog>
4
5 #include "mainwindow.h"
6
7 extern Settings settings;
8 extern Main *mainWindow;
9 extern QString vymName;
10
11 DefaultMapSettingsDialog::DefaultMapSettingsDialog(QWidget *parent) : QDialog(parent)
12 {
13     ui.setupUi(this);
14
15     initInputs();
16
17     connect(ui.autoCheckBox, SIGNAL(clicked()), this, SLOT(autoToggled()));
18     connect(ui.setPathPushButton, SIGNAL(clicked()), this, SLOT(setPathClicked()));
19     connect(this, &QDialog::accepted, this, &DefaultMapSettingsDialog::updateSettings);
20 }
21
22 void DefaultMapSettingsDialog::initInputs()
23 {
24     if (settings.value("/system/defaultMap/auto", true).toBool()) {
25         ui.autoCheckBox->setCheckState(Qt::Checked);
26         ui.pathLineEdit->setText(mainWindow->defaultMapPath());
27         ui.pathLineEdit->setEnabled(false);
28         ui.setPathPushButton->setEnabled(false);
29     } else {
30         ui.autoCheckBox->setCheckState(Qt::Unchecked);
31         ui.pathLineEdit->setText(
32             settings.value("/system/defaultMap/path", mainWindow->newMapPath()).toString());
33         ui.pathLineEdit->setEnabled(true);
34         ui.setPathPushButton->setEnabled(true);
35     }
36 }
37
38 void DefaultMapSettingsDialog::autoToggled()
39 {
40     if (ui.autoCheckBox->isChecked())
41         settings.setValue("/system/defaultMap/auto", true);
42     else
43         settings.setValue("/system/defaultMap/auto", false);
44
45     initInputs();
46 }
47
48 void DefaultMapSettingsDialog::setPathClicked()
49 {
50     QStringList filters;
51     filters << "VYM defaults map (*.vym)";
52     QFileDialog fd;
53     fd.setDirectory(dirname(mainWindow->defaultMapPath()));
54     fd.selectFile(basename(mainWindow->defaultMapPath()));
55     fd.setFileMode(QFileDialog::ExistingFile);
56     fd.setNameFilters(filters);
57     fd.setWindowTitle(vymName + " - " +
58                       tr("Set vym default map to be loaded on startup"));
59     fd.setAcceptMode(QFileDialog::AcceptOpen);
60
61     QString fn;
62     if (fd.exec() == QDialog::Accepted) {
63         settings.setValue("/system/defaultMap/path", fd.selectedFiles().first());
64         initInputs();
65     }
66 }
67
68 void DefaultMapSettingsDialog::updateSettings()
69 {
70     settings.beginGroup("/system/defaultMap");
71     settings.setValue("auto", ui.autoCheckBox->isChecked());
72     settings.setValue("path", ui.pathLineEdit->text());
73     settings.endGroup();
74 }