From a67e8630caf20e7f48151024e9e68dd9271d75c7 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 1 Jul 2022 18:07:03 +0200 Subject: options/value: add `QObject::connect` wrapper This is useful not just to save on complexity in call sites, but also because I plan on using the Verdigris library to remove needless `valueChanged()` and `setValue()` overloads from each `value` instance. Also fix a bug in `options/tie.hpp` where `QComboBox::setCurrentIndex` was erroneously called as `Qt::DirectConnection`. --- gui/mapping-dialog.cpp | 8 +++----- gui/options-dialog.cpp | 9 ++------- 2 files changed, 5 insertions(+), 12 deletions(-) (limited to 'gui') diff --git a/gui/mapping-dialog.cpp b/gui/mapping-dialog.cpp index cdbf532e..bdf33a77 100644 --- a/gui/mapping-dialog.cpp +++ b/gui/mapping-dialog.cpp @@ -117,9 +117,7 @@ void mapping_dialog::load() if (altp) { - connect(&axis.opts.altp, - value_::value_changed(), - this, [&](bool f) { qfc.setEnabled(f); }); + axis.opts.altp.connect_to(this, [&](bool f) { qfc.setEnabled(f); }); qfc.setEnabled(axis.opts.altp); } @@ -164,8 +162,8 @@ void mapping_dialog::load() qfc.set_snap(.5, 1); - connect(&axis.opts.clamp_x_, value_::value_changed(), &qfc, update_xstep); - connect(&axis.opts.clamp_y_, value_::value_changed(), &qfc, update_ystep); + axis.opts.clamp_x_.connect_to(&qfc, update_xstep); + axis.opts.clamp_y_.connect_to(&qfc, update_ystep); // force signal to avoid duplicating the slot's logic qfc.set_config(&conf); diff --git a/gui/options-dialog.cpp b/gui/options-dialog.cpp index ac4117bc..ab36d73b 100644 --- a/gui/options-dialog.cpp +++ b/gui/options-dialog.cpp @@ -167,13 +167,8 @@ options_dialog::options_dialog(std::unique_ptr& tracker_dialog_, { tmp val = val_; val.label->setText(kopts_to_string(val.opt)); - connect(&val.opt.keycode, - static_cast(&value_::valueChanged), - val.label, - [=](const QString&) { val.label->setText(kopts_to_string(val.opt)); }); - { - connect(val.button, &QPushButton::clicked, this, [=] { bind_key(val.opt, val.label); }); - } + val.opt.keycode.connect_to(val.label, [=] { val.label->setText(kopts_to_string(val.opt)); }, Qt::DirectConnection); + connect(val.button, &QPushButton::clicked, this, [=] { bind_key(val.opt, val.label); }); } auto add_module_tab = [this] (auto& place, auto&& dlg, const QString& label) { -- cgit v1.2.3