diff options
-rw-r--r-- | logic/main-settings.cpp | 14 | ||||
-rw-r--r-- | migration/20171020_00-max-pitch-output.cpp | 8 | ||||
-rw-r--r-- | options/group.cpp | 3 |
3 files changed, 18 insertions, 7 deletions
diff --git a/logic/main-settings.cpp b/logic/main-settings.cpp index 5cb6e64e..b1b9a132 100644 --- a/logic/main-settings.cpp +++ b/logic/main-settings.cpp @@ -60,6 +60,16 @@ key_opts::key_opts(bundle b, const QString& name) : button(b, QString("button-%1").arg(name), -1) {} +using max_clamp = axis_opts::max_clamp; + +static max_clamp get_max_x(Axis k) +{ + if (k == Pitch) + return max_clamp::r90; + if (k >= Yaw) + return max_clamp::r180; + return max_clamp::t30; +} axis_opts::axis_opts(bundle b_settings_window, bundle b_mapping_window, QString pfx, Axis idx) : b_settings_window(b_settings_window), @@ -68,8 +78,8 @@ axis_opts::axis_opts(bundle b_settings_window, bundle b_mapping_window, QString src(b_settings_window, n(pfx, "source-index"), idx), invert(b_settings_window, n(pfx, "invert-sign"), false), altp(b_mapping_window, n(pfx, "alt-axis-sign"), false), - clamp_x(b_mapping_window, n(pfx, "max-value"), idx >= Yaw ? r180 : t30), - clamp_y(b_mapping_window, n(pfx, "max-output-value"), idx >= Yaw ? o_r180 : o_t75) + clamp_x(b_mapping_window, n(pfx, "max-value"), get_max_x(idx)), + clamp_y(b_mapping_window, n(pfx, "max-output-value"), idx >= Yaw ? o_r90 : o_t75) {} QString axis_opts::n(QString pfx, QString name) diff --git a/migration/20171020_00-max-pitch-output.cpp b/migration/20171020_00-max-pitch-output.cpp index e7ed474a..a5467b28 100644 --- a/migration/20171020_00-max-pitch-output.cpp +++ b/migration/20171020_00-max-pitch-output.cpp @@ -37,7 +37,7 @@ struct max_pitch_output : migration bundle b = make_bundle("opentrack-mappings"); - if (b->contains(name) && b->get<QVariant>(name) != QVariant::Invalid) + if (b->contains(name)) return false; } @@ -51,9 +51,9 @@ struct max_pitch_output : migration for (const spline& spl : { pitch_spline_1, pitch_spline_2 }) for (QPointF& point : spl.get_points()) if (point.y() - 1e-2 > 90) - return false; + return true; - return true; + return false; } void run() override @@ -61,7 +61,7 @@ struct max_pitch_output : migration main_settings s; axis_opts& pitch_opts = s.a_pitch; - pitch_opts.clamp_y = axis_opts::o_r90; + pitch_opts.clamp_y = axis_opts::o_r180; s.b_map->save(); } diff --git a/options/group.cpp b/options/group.cpp index 964ad791..2d5588a1 100644 --- a/options/group.cpp +++ b/options/group.cpp @@ -62,7 +62,8 @@ void group::put(const QString &s, const QVariant &d) bool group::contains(const QString &s) const { - return kvs.find(s) != kvs.cend(); + const auto it = kvs.find(s); + return it != kvs.cend() && it->second != QVariant::Invalid; } bool group::is_portable_installation() |