diff options
Diffstat (limited to 'gui/mapping-window.cpp')
| -rw-r--r-- | gui/mapping-window.cpp | 24 | 
1 files changed, 20 insertions, 4 deletions
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<void(base_value::*)(int) const>(&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);      }  }  | 
