diff options
Diffstat (limited to 'tracker-trackhat/dialog.cpp')
-rw-r--r-- | tracker-trackhat/dialog.cpp | 46 |
1 files changed, 37 insertions, 9 deletions
diff --git a/tracker-trackhat/dialog.cpp b/tracker-trackhat/dialog.cpp index 6a9ad56c..b51fbc3b 100644 --- a/tracker-trackhat/dialog.cpp +++ b/tracker-trackhat/dialog.cpp @@ -24,27 +24,55 @@ trackhat_dialog::trackhat_dialog() for (auto x : model_types) ui.model_type->addItem(QIcon{}, tr(x.name), (QVariant)(int)x.t); - ui.exposure_label->setValue((int)*t.exposure); - ui.threshold_label->setValue((int)*t.threshold); - ui.point_filter_label->setValue((int)*t.point_filter_coefficient); - + tie_setting(t.model, ui.model_type); tie_setting(t.min_pt_size, ui.min_point_size); tie_setting(t.max_pt_size, ui.max_point_size); + + ui.exposure_label->setValue((int)*t.exposure); + ui.gain_label->setValue((int)*t.gain); tie_setting(t.exposure, ui.exposure_slider); - tie_setting(t.model, ui.model_type); - tie_setting(t.threshold, ui.threshold_slider); + tie_setting(t.gain, ui.gain_slider); + + ui.point_filter_label->setValue((int)*t.point_filter_coefficient); tie_setting(t.enable_point_filter, ui.enable_point_filter); tie_setting(t.point_filter_coefficient, ui.point_filter_slider); + connect(&t.exposure, value_::value_changed<slider_value>(), ui.exposure_label, [this] { ui.exposure_label->setValue((int)*t.exposure); }, Qt::QueuedConnection); - connect(&t.threshold, value_::value_changed<slider_value>(), ui.threshold_label, - [this] { ui.threshold_label->setValue((int)*t.threshold); }, Qt::QueuedConnection); + connect(&t.gain, value_::value_changed<slider_value>(), ui.gain_label, + [this] { ui.gain_label->setValue((int)*t.gain); }, Qt::QueuedConnection); + connect(&t.point_filter_coefficient, value_::value_changed<slider_value>(), ui.point_filter_label, [this] { ui.point_filter_label->setValue((int)*t.point_filter_coefficient); }, Qt::QueuedConnection); - connect(&poll_timer, &QTimer::timeout, this, &trackhat_dialog::poll_tracker_info); + connect(&poll_timer, &QTimer::timeout, this, &trackhat_dialog::poll_tracker_info); connect(ui.buttonBox, &QDialogButtonBox::accepted, this, &trackhat_dialog::doOK); connect(ui.buttonBox, &QDialogButtonBox::rejected, this, &trackhat_dialog::doCancel); + + connect(&t.threshold, value_::value_changed<slider_value>(), ui.threshold_label, [=] { + ui.threshold_label->setValue((int)*t.threshold); + }, Qt::QueuedConnection); + + connect(&t.threshold_2, value_::value_changed<slider_value>(), ui.threshold_2_label, [=] { + ui.threshold_2_label->setValue((int)*t.threshold_2); + }, Qt::QueuedConnection); + + ui.threshold_2_slider->setValue(std::min(ui.threshold_2_slider->value(), ui.threshold_slider->value()-1)); + + connect(ui.threshold_slider, &QSlider::valueChanged, this, [this] (int value) { + if (value <= ui.threshold_2_slider->value()) + ui.threshold_2_slider->setValue(value-1); + }, Qt::DirectConnection); + + connect(ui.threshold_2_slider, &QSlider::valueChanged, this, [this] (int value) { + if (value >= ui.threshold_slider->value()) + ui.threshold_slider->setValue(value+1); + }, Qt::DirectConnection); + + ui.threshold_label->setValue((int)*t.threshold); + ui.threshold_2_label->setValue((int)*t.threshold_2); + tie_setting(t.threshold, ui.threshold_slider); + tie_setting(t.threshold_2, ui.threshold_2_slider); } void trackhat_dialog::register_tracker(ITracker* tracker) |