From 01210b7fba37356ee2c18420762eeeed52489d20 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sun, 29 Jan 2017 03:10:28 +0100 Subject: gui/mapping-window, spline-widget, logic/main-settings: limited mapping range --- gui/mapping-window.cpp | 24 ++++++-- gui/mapping-window.ui | 147 +++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 139 insertions(+), 32 deletions(-) (limited to 'gui') diff --git a/gui/mapping-window.cpp b/gui/mapping-window.cpp index d1188e66..d34fcc48 100644 --- a/gui/mapping-window.cpp +++ b/gui/mapping-window.cpp @@ -25,6 +25,10 @@ MapWidget::MapWidget(Mappings& m) : m(m) tie_setting(s.a_yaw.altp, ui.rx_altp); tie_setting(s.a_pitch.altp, ui.ry_altp); tie_setting(s.a_roll.altp, ui.rz_altp); + + tie_setting(s.a_yaw.clamp, ui.max_yaw_rotation); + tie_setting(s.a_pitch.clamp, ui.max_pitch_rotation); + tie_setting(s.a_roll.clamp, ui.max_roll_rotation); } void MapWidget::load() @@ -51,19 +55,23 @@ void MapWidget::load() { nullptr, Yaw, nullptr, false } }; + for (QComboBox* x : { ui.max_yaw_rotation, ui.max_pitch_rotation, ui.max_roll_rotation }) + { + using a = axis_opts::max_rotation; + for (a y : { a::r180, a::r90, a::r60, a::r45, a::r30, a::r20 }) + x->addItem(QString::number(y) + "°", y); + } + for (int i = 0; qfcs[i].qfc; i++) { const bool altp = qfcs[i].altp; Map& axis = m(qfcs[i].axis); spline& conf = altp ? axis.spline_alt : axis.spline_main; - //const QString& name = altp ? axis.name2 : axis.name1; - //conf.set_bundle(make_bundle(name)); - qfcs[i].qfc->setConfig(&conf); + spline_widget& qfc = *qfcs[i].qfc; if (altp) { - spline_widget& qfc = *qfcs[i].qfc; connect(qfcs[i].checkbox, &QCheckBox::toggled, this, [&](bool f) -> void {qfc.setEnabled(f); qfc.force_redraw();}); @@ -71,10 +79,18 @@ void MapWidget::load() qfc.force_redraw(); } + connect(&axis.opts.clamp, static_cast(&base_value::valueChanged), + &qfc, [&conf, &qfc](int value) { conf.set_max_input(value); qfc.reload_spline(); }); + conf.set_max_input(axis.opts.clamp); + if (qfcs[i].axis >= 3) + { qfcs[i].qfc->set_snap(1, 2.5); + } else qfcs[i].qfc->set_snap(.5, 1); + + qfcs[i].qfc->setConfig(&conf); } } diff --git a/gui/mapping-window.ui b/gui/mapping-window.ui index c1a52021..dc43ab8a 100644 --- a/gui/mapping-window.ui +++ b/gui/mapping-window.ui @@ -11,7 +11,7 @@ - + 0 0 @@ -22,12 +22,6 @@ 664 - - - 970 - 664 - - Mapping properties @@ -41,9 +35,6 @@ - - - QTabWidget::North @@ -51,13 +42,48 @@ 0 - - background-color: #ccc; - Yaw + + + + + 0 + 0 + + + + QFrame::NoFrame + + + + + + + 0 + 0 + + + + Max rotation + + + + + + + + 0 + 0 + + + + + + + @@ -104,13 +130,48 @@ - - background-color: #ccc; - Pitch + + + + + 0 + 0 + + + + QFrame::NoFrame + + + + + + + 0 + 0 + + + + Max rotation + + + + + + + + 0 + 0 + + + + + + + @@ -157,13 +218,48 @@ - - background-color: #ccc; - Roll + + + + + 0 + 0 + + + + QFrame::NoFrame + + + + + + + 0 + 0 + + + + Max rotation + + + + + + + + 0 + 0 + + + + + + + @@ -208,11 +304,12 @@ + rzconfig + rz_altp + rzconfig_alt + frame_3 - - background-color: #ccc; - X @@ -263,9 +360,6 @@ - - background-color: #ccc; - Y @@ -316,9 +410,6 @@ - - background-color: #ccc; - Z -- cgit v1.2.3