summaryrefslogtreecommitdiffhomepage
path: root/gui
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2016-06-29 10:09:42 +0200
committerStanislaw Halik <sthalik@misaki.pl>2016-06-29 13:18:22 +0200
commit87622615e5adc5b96f404b3255aa6af5a90043ee (patch)
tree9231116ead1dd109b2700422b1ca640a9a3dbed9 /gui
parent68e5a04f438fafd984ac0bf0424fa75294a8dc06 (diff)
gui/options: fix cancel button
The "struct opts" dtor doesn't run at dialog close time so invoke "reload" on the bundle explicitly.
Diffstat (limited to 'gui')
-rw-r--r--gui/options-dialog.cpp8
-rw-r--r--gui/options-dialog.hpp4
-rw-r--r--gui/ui.cpp2
3 files changed, 7 insertions, 7 deletions
diff --git a/gui/options-dialog.cpp b/gui/options-dialog.cpp
index 49df4309..212c6078 100644
--- a/gui/options-dialog.cpp
+++ b/gui/options-dialog.cpp
@@ -29,9 +29,7 @@ static QString kopts_to_string(const key_opts& kopts)
return kopts.keycode;
}
-OptionsDialog::OptionsDialog(main_settings& main,
- std::function<void(bool)> pause_keybindings) :
- main(main),
+OptionsDialog::OptionsDialog(std::function<void(bool)> pause_keybindings) :
pause_keybindings(pause_keybindings)
{
ui.setupUi(this);
@@ -133,7 +131,8 @@ void OptionsDialog::bind_key(key_opts& kopts, QLabel* label)
delete l;
}
-void OptionsDialog::doOK() {
+void OptionsDialog::doOK()
+{
main.b->save();
ui.game_detector->save();
close();
@@ -142,6 +141,7 @@ void OptionsDialog::doOK() {
void OptionsDialog::doCancel()
{
+ main.b->reload();
ui.game_detector->revert();
close();
}
diff --git a/gui/options-dialog.hpp b/gui/options-dialog.hpp
index eee9d090..6b04aa09 100644
--- a/gui/options-dialog.hpp
+++ b/gui/options-dialog.hpp
@@ -12,9 +12,9 @@ class OptionsDialog: public QWidget
signals:
void reload();
public:
- OptionsDialog(main_settings& main, std::function<void(bool)> pause_keybindings);
+ OptionsDialog(std::function<void(bool)> pause_keybindings);
private:
- main_settings& main;
+ main_settings main;
std::function<void(bool)> pause_keybindings;
Ui::UI_Settings ui;
void closeEvent(QCloseEvent *) override { doCancel(); }
diff --git a/gui/ui.cpp b/gui/ui.cpp
index 63f40cf8..cda7d94b 100644
--- a/gui/ui.cpp
+++ b/gui/ui.cpp
@@ -492,7 +492,7 @@ bool mk_window(mem<t>* place, Args&&... params)
void MainWindow::show_options_dialog()
{
- if (mk_window(&options_widget, s, [&](bool flag) -> void { set_keys_enabled(!flag); }))
+ if (mk_window(&options_widget, [&](bool flag) -> void { set_keys_enabled(!flag); }))
{
connect(options_widget.get(), SIGNAL(reload()), this, SLOT(reload_options()));
}