Repository navigation
qt: preserve rich formatting in Kdenlive titles - #1308
Conversation
|
Please better explain the goal. |
|
The goal is to allow a single Kdenlive title text object to contain multiple independently formatted ranges. For example, different fonts, sizes, colors, spacing, or gradients within the same text object, while keeping the title editable in Kdenlive and rendering the same way in the timeline/export. The Kdenlive side can store and edit that information, but kdenlivetitle in MLT is ultimately what renders the title for playback/export. I added support there so the per-range formatting would not get flattened back to one object-wide format during rendering. I'm not attached to storing Kdenlive-specific metadata in MLT though. If you would prefer a different boundary, such as Kdenlive converting the formatting into a more generic representation before passing it to MLT, or extending the existing title representation differently, I'm happy to change the approach. What would you prefer as the architecture for preserving per-range formatting through kdenlivetitle? |
|
I did not mean to close this. Sorry, something weird happened. I do not care about kdenlivetitle. @j-b-m manages it. I think you are saying you simply want to expand upon the rich formatting within kdenlivetitle. |
|
Thanks for your work on this. A few minor comments: |
j-b-m
left a comment
There was a problem hiding this comment.
Looks good to me, thanks a lot!
Will merge tomorrow morning if no objection.
|
I would rather not include it in tomorrow’s release with barely any testing! But up to you. |
|
I did some testing during last week and we added a regression tests on our side for this feature, but I agree that merging such change one day before release is not ideal, Will wait until next week then, thanks for the feedback. |
Agreed, I think we should have some testers or a testing team test it first and use it in normal but slightly weird or advanced ways to try and catch some edge cases some users may naturally experience Also, how exactly does it (as in the testing thing) work? is there a dedicated testing team or is it just people who download the betas and then submit reports if they wan tto? |
## Summary Add native per-selection rich-text formatting support to the Kdenlive Titler. Text inside a single title object can now keep independent formatting instead of formatting changes flattening the entire object. ## Main changes - Apply font family, size, weight/bold, italic, underline, color and letter spacing to the selected text range. - Preserve formatting when moving the text cursor and when refreshing the Titler controls. - Save rich text alongside the existing title XML representation for backwards compatibility. - Restore rich text when reopening title clips. - Preserve letter spacing using explicit metadata where Qt HTML alone is insufficient. - Support selective gradients on text ranges. - Keep whole-object gradient behavior when the text object itself is selected rather than a character range. - Make title shadow rendering use the rich text geometry. - Improve Titler formatting-state updates for the active text run. - Add regression tests for rich-text persistence, formatting and rendering. ## MLT dependency Rendering support is implemented in: mltframework/mlt#1308 The Kdenlive side saves and edits the richer title representation; the MLT change preserves it during timeline/export rendering and typewriter animation. ## Testing - Rich-text tests: 9 test cases / 136 assertions - Full Titler suite: 17 test cases / 1242 assertions - Fresh Kdenlive build completed against a fresh build/install of the MLT changes. - Verified no previous development MLT/Kdenlive prefixes leaked into the final build. - Manual testing covered mixed formatting, custom fonts, font size/style/color, letter spacing, selective gradients, save/reopen persistence, timeline/export rendering, typewriter animation, and Unicode/Arabic text. Existing plain title behavior is retained for older title XML.
|
I will soon publish Kdenlive binaries and a call for testers. We don't have dedicated testing teams unfortunately, but we should be able to gather some feedback before Kdenlive's december release. |
Summary
Preserve rich-text formatting from Kdenlive title clips in MLT's Qt title renderer.
This adds support for rich formatting stored by Kdenlive, including per-range formatting and metadata that Qt HTML does not preserve by itself.
The changes also make typewriter animation operate on the rich QTextDocument instead of flattening the title formatting.
Main changes
Testing
Tested together with the corresponding Kdenlive Titler changes.
A corresponding Kdenlive merge request will follow.