diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2017-01-29 03:10:28 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2017-01-29 03:10:28 +0100 |
commit | 01210b7fba37356ee2c18420762eeeed52489d20 (patch) | |
tree | 9c2494842b9183d28b6b77ecf3b0d0760f05a922 /gui | |
parent | 0ea648f8254ff49942e7f83d9034155b50498ac9 (diff) |
gui/mapping-window, spline-widget, logic/main-settings: limited mapping range
Diffstat (limited to 'gui')
-rw-r--r-- | gui/mapping-window.cpp | 24 | ||||
-rw-r--r-- | gui/mapping-window.ui | 147 |
2 files changed, 139 insertions, 32 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); } } 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 @@ </rect> </property> <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> @@ -22,12 +22,6 @@ <height>664</height> </size> </property> - <property name="maximumSize"> - <size> - <width>970</width> - <height>664</height> - </size> - </property> <property name="windowTitle"> <string>Mapping properties</string> </property> @@ -41,9 +35,6 @@ <layout class="QVBoxLayout" name="verticalLayout"> <item> <widget class="QTabWidget" name="tabWidget"> - <property name="styleSheet"> - <string notr="true"/> - </property> <property name="tabPosition"> <enum>QTabWidget::North</enum> </property> @@ -51,14 +42,49 @@ <number>0</number> </property> <widget class="QWidget" name="tabWidgetPage1"> - <property name="styleSheet"> - <string notr="true">background-color: #ccc;</string> - </property> <attribute name="title"> <string>Yaw</string> </attribute> <layout class="QVBoxLayout" name="verticalLayout_2"> <item> + <widget class="QFrame" name="frame"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Maximum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="label"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Maximum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Max rotation</string> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="max_yaw_rotation"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Maximum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> <widget class="spline_widget" name="rxconfig" native="true"> <property name="colorBezier" stdset="0"> <color> @@ -104,14 +130,49 @@ </layout> </widget> <widget class="QWidget" name="tabWidgetPage2"> - <property name="styleSheet"> - <string notr="true">background-color: #ccc;</string> - </property> <attribute name="title"> <string>Pitch</string> </attribute> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> + <widget class="QFrame" name="frame_2"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Maximum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <item> + <widget class="QLabel" name="label_2"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Maximum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Max rotation</string> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="max_pitch_rotation"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Maximum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> <widget class="spline_widget" name="ryconfig" native="true"> <property name="colorBezier" stdset="0"> <color> @@ -157,14 +218,49 @@ </layout> </widget> <widget class="QWidget" name="tabWidgetPage3"> - <property name="styleSheet"> - <string notr="true">background-color: #ccc;</string> - </property> <attribute name="title"> <string>Roll</string> </attribute> <layout class="QVBoxLayout" name="verticalLayout_4"> <item> + <widget class="QFrame" name="frame_3"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Maximum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <item> + <widget class="QLabel" name="label_4"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Maximum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Max rotation</string> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="max_roll_rotation"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Maximum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> <widget class="spline_widget" name="rzconfig" native="true"> <property name="colorBezier" stdset="0"> <color> @@ -208,11 +304,12 @@ </widget> </item> </layout> + <zorder>rzconfig</zorder> + <zorder>rz_altp</zorder> + <zorder>rzconfig_alt</zorder> + <zorder>frame_3</zorder> </widget> <widget class="QWidget" name="tabWidgetPage4"> - <property name="styleSheet"> - <string notr="true">background-color: #ccc;</string> - </property> <attribute name="title"> <string>X</string> </attribute> @@ -263,9 +360,6 @@ </layout> </widget> <widget class="QWidget" name="tabWidgetPage5"> - <property name="styleSheet"> - <string notr="true">background-color: #ccc;</string> - </property> <attribute name="title"> <string>Y</string> </attribute> @@ -316,9 +410,6 @@ </layout> </widget> <widget class="QWidget" name="tabWidgetPage6"> - <property name="styleSheet"> - <string notr="true">background-color: #ccc;</string> - </property> <attribute name="title"> <string>Z</string> </attribute> |