summaryrefslogtreecommitdiffhomepage
path: root/tracker-trackhat/dialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tracker-trackhat/dialog.cpp')
-rw-r--r--tracker-trackhat/dialog.cpp46
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)