summaryrefslogtreecommitdiffhomepage
path: root/gui
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2017-01-29 03:10:28 +0100
committerStanislaw Halik <sthalik@misaki.pl>2017-01-29 03:10:28 +0100
commit01210b7fba37356ee2c18420762eeeed52489d20 (patch)
tree9c2494842b9183d28b6b77ecf3b0d0760f05a922 /gui
parent0ea648f8254ff49942e7f83d9034155b50498ac9 (diff)
gui/mapping-window, spline-widget, logic/main-settings: limited mapping range
Diffstat (limited to 'gui')
-rw-r--r--gui/mapping-window.cpp24
-rw-r--r--gui/mapping-window.ui147
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>