Week 3: Reviewer Feedback and Fixes
This is a weekly update from my Google Summer of Code 2026 project with KDE, improving effect widgets in Kdenlive, a free and open source video editor.
This week was driven entirely by reviewer feedback on MR !887; the draft MR for the Curves Widget.
Point snapping instead of rejection
When two curve control points are placed too close on the x-axis,
avfilter/MLT crashes with Key point coordinates are too close or not strictly increasing.
The original guard in AssetParameterModel::internalSetParameter silently
rejected the update, the user moved a point but nothing happened visibly.
Reviewer Bernd Jordan flagged this as confusing UX.
The fix: instead of rejecting, snap the offending point so it maintains the minimum safe x-distance (~0.00266) from its neighbor. The curve is always valid, always sent to MLT, and the user sees immediate feedback.
Removing the 5 point limit for avfilter.curves
The curve editor had a maximum of 5 control points, inherited from
frei0r.curves. JB pointed out there is no reason to keep this limit
for avfilter.curves, it is a frei0r-specific constraint.
The fix: setMaxPoints is now only called for frei0r.curves. The
avfilter.curves widget has no upper limit on control points.
Both fixes are in MR !887.

JB also noted the null placeholder approach in m_widgets for secondary
av_curve params is not ideal long term, waiting on his direction before
touching that.