diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2017-10-13 18:53:28 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2017-10-13 18:53:28 +0200 |
commit | 9da6dff1800d6b6598e6ad04465ee8b9cabb4167 (patch) | |
tree | 2f1692597748ce37d2ce147e8ed9f0c7d71d00e9 /options/tie.hpp | |
parent | 535e81402a65fa410e98899cd1780784d2f9815a (diff) |
tracker/pt, options: fix threshold slider
It's only the tie_setting(slider_value, QSlider) that
has race-free slider updates. Needed to update the
threshold slider representation.
Remove the tie_setting(int, QSlider) overload since it
doesn't have the logic.
Add a migration.
Add base_value::notify() for use-cases like the
checkbox updating the label.
Diffstat (limited to 'options/tie.hpp')
-rw-r--r-- | options/tie.hpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/options/tie.hpp b/options/tie.hpp index 0a4ace74..b6bf32e9 100644 --- a/options/tie.hpp +++ b/options/tie.hpp @@ -63,13 +63,25 @@ void tie_setting(value<t>& v, QLabel* lb, F&& fun) v.SAFE_CONNTYPE); } +template<typename t, typename F> +void tie_setting(value<t>& v, QObject* obj, F&& fun) +{ + if (obj == nullptr) + abort(); + + fun(v()); + + base_value::connect(&v, base_value::signal_fun<t>(), + obj, fun, + v.DIRECT_CONNTYPE); +} + OTR_OPTIONS_EXPORT void tie_setting(value<int>& v, QComboBox* cb); OTR_OPTIONS_EXPORT void tie_setting(value<QString>& v, QComboBox* cb); OTR_OPTIONS_EXPORT void tie_setting(value<QVariant>& v, QComboBox* cb); OTR_OPTIONS_EXPORT void tie_setting(value<bool>& v, QCheckBox* cb); OTR_OPTIONS_EXPORT void tie_setting(value<double>& v, QDoubleSpinBox* dsb); OTR_OPTIONS_EXPORT void tie_setting(value<int>& v, QSpinBox* sb); -OTR_OPTIONS_EXPORT void tie_setting(value<int>& v, QSlider* sl); OTR_OPTIONS_EXPORT void tie_setting(value<QString>& v, QLineEdit* le); OTR_OPTIONS_EXPORT void tie_setting(value<QString>& v, QLabel* lb); OTR_OPTIONS_EXPORT void tie_setting(value<int>& v, QTabWidget* t); |