diff options
-rw-r--r-- | spline-widget/spline-widget.cpp | 5 | ||||
-rw-r--r-- | spline-widget/spline.cpp | 8 | ||||
-rw-r--r-- | spline-widget/spline.hpp | 5 |
3 files changed, 9 insertions, 9 deletions
diff --git a/spline-widget/spline-widget.cpp b/spline-widget/spline-widget.cpp index ce16f7be..54107bbe 100644 --- a/spline-widget/spline-widget.cpp +++ b/spline-widget/spline-widget.cpp @@ -5,6 +5,7 @@ * copyright notice and this permission notice appear in all copies. */ +#include "compat/util.hpp" #include "spline-widget.hpp" #include <QPainter> #include <QPaintEvent> @@ -40,8 +41,8 @@ void spline_widget::setConfig(spline* spl) if (spl) { - spline::settings& s = spl->get_settings(); - connection = connect(&s, &spline::settings::recomputed, + mem<spline::settings> s = spl->get_settings(); + connection = connect(s.get(), &spline::settings::recomputed, this, [this]() { reload_spline(); }, Qt::QueuedConnection); } diff --git a/spline-widget/spline.cpp b/spline-widget/spline.cpp index a84f0d05..4f60181e 100644 --- a/spline-widget/spline.cpp +++ b/spline-widget/spline.cpp @@ -373,16 +373,16 @@ void spline::recompute() } // the return value is only safe to use with no spline::set_bundle calls -spline::settings& spline::get_settings() +mem<spline::settings> spline::get_settings() { QMutexLocker foo(&_mutex); - return *s; + return s; } -const spline::settings& spline::get_settings() const +mem<const spline::settings> spline::get_settings() const { QMutexLocker foo(&_mutex); - return *s; + return s; } int spline::precision(const QList<QPointF>& points) const diff --git a/spline-widget/spline.hpp b/spline-widget/spline.hpp index 5d521a6c..0ffc4de9 100644 --- a/spline-widget/spline.hpp +++ b/spline-widget/spline.hpp @@ -40,7 +40,6 @@ signals: class OPENTRACK_SPLINE_EXPORT spline final { -private: int precision(const QList<QPointF>& points) const; void update_interp_data(); float getValueInternal(int x); @@ -104,8 +103,8 @@ public: bundle get_bundle(); void recompute(); - settings& get_settings(); - const settings& get_settings() const; + mem<settings> get_settings(); + mem<const settings> get_settings() const; using points_t = decltype(s->points.get()); }; |