From 87622615e5adc5b96f404b3255aa6af5a90043ee Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Wed, 29 Jun 2016 10:09:42 +0200 Subject: gui/options: fix cancel button The "struct opts" dtor doesn't run at dialog close time so invoke "reload" on the bundle explicitly. --- gui/options-dialog.cpp | 8 ++++---- gui/options-dialog.hpp | 4 ++-- gui/ui.cpp | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) (limited to 'gui') 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 pause_keybindings) : - main(main), +OptionsDialog::OptionsDialog(std::function 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 pause_keybindings); + OptionsDialog(std::function pause_keybindings); private: - main_settings& main; + main_settings main; std::function 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* 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())); } -- cgit v1.2.3