summaryrefslogtreecommitdiffhomepage
path: root/spline
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2017-10-22 10:04:04 +0200
committerStanislaw Halik <sthalik@misaki.pl>2017-10-27 16:42:56 +0200
commit829bd3b164b90a68b0d73eac4a1bfa78aa520ba0 (patch)
tree42d5fd43fe668710e8ad057d6f2612aac7f52b40 /spline
parent9d3167ed3d64b242ccdee56542c4eb868d8d9b74 (diff)
gui: must close module dialogs
Otherwise settings don't get cancelled
Diffstat (limited to 'spline')
-rw-r--r--spline/spline.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/spline/spline.cpp b/spline/spline.cpp
index 1252d3ae..2e29997a 100644
--- a/spline/spline.cpp
+++ b/spline/spline.cpp
@@ -378,13 +378,31 @@ void spline::set_bundle(bundle b, const QString& axis_name, Axis axis)
double spline::max_input() const
{
QMutexLocker l(&_mutex);
- return s ? s->opts.clamp_x_.to<double>() : 0;
+ if (s)
+ {
+ using m = axis_opts::max_clamp;
+ const value<m>& clamp = s->opts.clamp_x_;
+ const QList<QPointF> points = s->points;
+ if (clamp == m::x1000 && points.size())
+ return points[points.size() - 1].x();
+ return s ? std::fabs(clamp.to<double>()) : 0;
+ }
+ return 0;
}
double spline::max_output() const
{
QMutexLocker l(&_mutex);
- return s ? std::fabs(s->opts.clamp_y_.to<double>()) : 0;
+ if (s)
+ {
+ using m = axis_opts::max_clamp;
+ const value<m>& clamp = s->opts.clamp_y_;
+ const QList<QPointF> points = s->points;
+ if (clamp == m::x1000 && points.size())
+ return points[points.size() - 1].y();
+ return s ? std::fabs(clamp.to<double>()) : 0;
+ }
+ return 0;
}
void spline::ensure_valid(QList<QPointF>& the_points)