summaryrefslogtreecommitdiffhomepage
path: root/spline/spline.cpp
AgeCommit message (Collapse)Author
2019-01-16spline: fix deadlock, logic errorStanislaw Halik
Tracking rarely deadlocked when saving mappings. Investigating it further also shown how a wrong bundle was used for Accela's splines.
2019-01-16cruftStanislaw Halik
2019-01-16clang-tidy fixes onlyStanislaw Halik
Maybe global `-Wcomma' is too harsh. There should be no functional changes whatsoever.
2018-12-24style/quality onlyStanislaw Halik
No functional changes. - add `override' everywhere where missing - almost pass clang's `-Wweak-vtables' - avoid some float/double conversions - remove unused private members - make signedness conversions explicit - put stuff in right namespaces to aid analysis
2018-12-24spline: avoid type/variable ambiguityStanislaw Halik
2018-12-24remove const correctness violationsStanislaw Halik
This is possibly related to a livelock where several threads do const removal in their respective code paths. Use the `mutable' specifier for the mutexes and spline's cached data. Now using the `mutable' specifier, get rid of <optional> in compat/mutex.
2018-12-06cruft onlyStanislaw Halik
2018-11-14spline: remove duplicate logicStanislaw Halik
2018-11-03fix build on LinuxStanislaw Halik
2018-10-29spline: clamp to max valueStanislaw Halik
2018-10-29spline: try fix rare infinite loopStanislaw Halik
- fix floats not equal to themselves infinite loop; check if any elements were removed instead - do sort in-place to avoid potentially sorting twice in `update_interp_data' - simplify lerp loop - define magic value
2018-10-25spline: simplifyStanislaw Halik
- don't copy-paste signal disconnection - bundle and settings are never null after ctor
2018-10-25cleanup onlyStanislaw Halik
- replace warn_unused_result with [[nodiscard]] - remove some redundant w_a_r - replace std::decay with remove_cvref_t - simplify compat/math.hpp
2018-10-05options: don't use typeindex w/ lambdasStanislaw Halik
Rename traits' functions to be more explicit. Most of the changes are pretty old and I can't read them at this time, sorry. Adjust usages. Issue: #825 Reported-by: @DanielKinsman
2018-08-27spline: modernizeStanislaw Halik
2018-07-08modernize onlyStanislaw Halik
2018-06-26options/base-value: rename to `value_'Stanislaw Halik
2018-06-26modernize C++ syntaxStanislaw Halik
No visible changes (hopefully).
2018-06-26spline: less deserialize points from qvariantStanislaw Halik
2018-06-26spline/widget: fix drag-too-close handlingStanislaw Halik
Dragging toward adjacent point makes sure it's as close as allowed. Work against any remaining cases where points "merged".
2018-06-26compat/macros: rename portability macrosStanislaw Halik
use `cc_xx' rather than awkward synonyms.
2018-06-26spline/widget: use more modern C++ syntaxStanislaw Halik
2018-05-30spline: nix unused member variableStanislaw Halik
2018-02-15clean up "static" and "constexpr" typesStanislaw Halik
- use `static constexpr inline' to avoid requiring explicit declarations in object code - use `const Foo* const' to maybe put into readonly binary segment (at least for ELF DSOs) - `constexpr' in function scope has storage, avoid `static' - don't use `constexpr' where there's no advantage, like arrays We'd like to avoid overhead of atomic initialization for each function call. No idea how `static constexpr' requiring storage in the standard plays with atomic initialization requirement. Hearsay points that `constexpr' without `static' in block scope behaves more to our liking. It's all hazy though. I'm not 100% sure if `static inline constexpr' has any storage. Hopefully none, like a #define, and stuff bigger than registers gets coalesced within the same module, with small stuff being immediates.
2018-01-18compat/util: retireStanislaw Halik
Adjust usages.
2018-01-18fix -Wall -Wextra -WpedanticStanislaw Halik
2017-12-21spline: prepare for widget in tobii tracker dialogStanislaw Halik
2017-12-21spline: cleanupStanislaw Halik
2017-12-10options: rename templateStanislaw Halik
2017-12-02compat/macros: rename obnoxious macroStanislaw Halik
2017-11-14spline: cleanup warningStanislaw Halik
2017-10-29static constexpr -> constexprStanislaw Halik
2017-10-27spline: use default initializationStanislaw Halik
2017-10-27gui: must close module dialogsStanislaw Halik
Otherwise settings don't get cancelled
2017-10-21spline: don't remove points from configStanislaw Halik
2017-10-20logic, spline: more spline work/fixesStanislaw Halik
- mapping window clamps are now value<max_clamp> in spline - clamp won't mess up saved spline content - clean up artifacts on spline widget
2017-10-20spline: allow switch pitch mapping max Y 90/180Stanislaw Halik
2017-08-05fixed macos buildDmitry Lukianov
2017-06-18spline: workaround going over the max valueStanislaw Halik
2017-06-06spline: prevent returning absolute of negative valueStanislaw Halik
Fixes: #628
2017-05-10spline: add commentStanislaw Halik
2017-05-10spline: rename, change call siteStanislaw Halik
2017-05-10spline: recompute spline config lazilyStanislaw Halik
2017-05-10spline: reformatStanislaw Halik
2017-05-10spline: fix points deleting themselves on dragging to originStanislaw Halik
2017-05-10spline: refactorStanislaw Halik
Generally nothing of importance, just readability. - There was a particularly scary typo where: const unsigned end = std::min(unsigned(value_count), unsigned(p2_x * mult_)); clamping to value_count doesn't make sense, given arbitrary p2_x. - Try harder to avoid assigning s->points. Also the overlap threshold constant was arbitrarily too high. - Sort predicate is meant to use strict ordering, not partial total order.
2017-05-10get rid of the silly mem -> shared_ptr aliasStanislaw Halik
2017-05-10options: don't create QSettings all the timeStanislaw Halik
Update usages.
2017-04-30spline: really fix moving points togetherStanislaw Halik
2017-04-18many: use std::f{max,min} for floating-point valuesStanislaw Halik