Skip to content

Improve QML library - #16668

Draft
acolombier wants to merge 212 commits into
mixxxdj:mainfrom
acolombier:feat/qml-library-improvement
Draft

Improve QML library#16668
acolombier wants to merge 212 commits into
mixxxdj:mainfrom
acolombier:feat/qml-library-improvement

Conversation

@acolombier

@acolombier acolombier commented Jun 30, 2026

Copy link
Copy Markdown
Member

Depends on #16658

Refactor the QML library to reduce the node count and reduce the strain on the data model. Also leverage some of the Qt 6.5+ and 6.8+ TableView improvement to provide a full table customisation experience (column resizing, moving, filtering,...)

This is providing a net performance improvement!

@xARSENICx I have reverted 881d9d7 as it made the devx absolutely dreadful: any invalid work in progress would lead to Mixxx stopping, forcing the restart the debug session every time. What was the reason for making this change? Arguably, we could guard it being the --developer flag?

@xARSENICx

Copy link
Copy Markdown
Contributor

Long term, LateNightQML should move out from behind --developer. But today it is still experimental, and this commit fixes real QML startup/development issues we still need while getting there. So I’d rather not revert it.

The better intermediate step is to guard the special profile-risk bypass behind the --developer flag, while keeping the QML load-failure and qt compatibility fixes.

CC @JoergAtGithub

@JoergAtGithub

Copy link
Copy Markdown
Member

@xARSENICx it seems you mixed the commits here. 881d9d7 is the commit that ensure that the QML testcases work. And that changes on new-ui do not break LateNightQML and vice versa. It prevents also annoying case that a user double clicks on Mixxx and nothing happens because main.qml could not load and generate alien processes which can only killed by task manager.

@JoergAtGithub JoergAtGithub left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please restore that the behavior that Mixxx fails, if QML is not loadable. You might bypass it by a combination like --new-ui and --developer, but for normal users and the unit tests it must fail reliable.

@acolombier
acolombier force-pushed the feat/qml-library-improvement branch from ac3ec7f to fe6838c Compare July 5, 2026 18:25
@github-actions github-actions Bot added ui code quality preferences browse cmake controller backend developer experience Issues, bugs and PRs related to the development process, development environment & developer docs labels Jul 5, 2026
@acolombier

acolombier commented Jul 5, 2026

Copy link
Copy Markdown
Member Author

The QML interface is highly unstable and this kind of early changes prevent fast prototyping. I have reworked it so the behaviour continue allowing failure if if --developer is passed.

881d9d7 is the commit that ensure that the QML testcases work. And that changes on new-ui do not break LateNightQML and vice versa

Could you please clarify how is this test useful for unit test? I understand that having loadQml returning a value allow asserting, but surely exit(-1) is not needed to pass unit tests?

@acolombier
acolombier force-pushed the feat/qml-library-improvement branch from fe6838c to 0ccd766 Compare July 5, 2026 18:38
@acolombier
acolombier requested a review from JoergAtGithub July 5, 2026 18:39
@acolombier
acolombier force-pushed the feat/qml-library-improvement branch 4 times, most recently from 65dd088 to 4904596 Compare July 5, 2026 23:58
@acolombier
acolombier force-pushed the feat/qml-library-improvement branch from 65b7e6c to bc03f1a Compare August 8, 2026 16:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.