From 38aee2a224a198e2f1144e5c71039fd17f317c78 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Wed, 26 Jan 2022 01:50:50 +0100 Subject: api, gui: close options dlg on Esc inside inner dlg --- api/plugin-api.cpp | 6 ++---- gui/options-dialog.cpp | 3 +++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/api/plugin-api.cpp b/api/plugin-api.cpp index 5c83e42f..ef9e47a1 100644 --- a/api/plugin-api.cpp +++ b/api/plugin-api.cpp @@ -1,4 +1,5 @@ #include "plugin-api.hpp" +#include namespace plugin_api::detail { @@ -7,18 +8,15 @@ void BaseDialog::closeEvent(QCloseEvent*) { if (isVisible()) { - hide(); emit closing(); + close(); } } void BaseDialog::done(int) { if (isVisible()) - { - hide(); close(); - } } bool BaseDialog::embeddable() noexcept { return false; } diff --git a/gui/options-dialog.cpp b/gui/options-dialog.cpp index d1769ea8..ac4117bc 100644 --- a/gui/options-dialog.cpp +++ b/gui/options-dialog.cpp @@ -179,9 +179,12 @@ options_dialog::options_dialog(std::unique_ptr& tracker_dialog_, auto add_module_tab = [this] (auto& place, auto&& dlg, const QString& label) { if (dlg && dlg->embeddable()) { + using BaseDialog = plugin_api::detail::BaseDialog; + dlg->set_buttons_visible(false); place = dlg.release(); ui.tabWidget->addTab(place, label); + QObject::connect(place, &BaseDialog::closing, this, &QDialog::close); } }; -- cgit v1.2.3