-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
QML Pt. 1: Add initial support for loading QML skins #3894
Conversation
88f81ba
to
a2060a6
Compare
Thank you. For picking this up. Maybe for after we have cut out 2.4 (If we go into beta right after 2.3 release) |
What regressions did you encounter? There shouldn't be any, or I made a mistake. This is largely based on #3891. Only the last 3 commits are QML related, everything else ist just refactoring. |
I don't think that there is a regression risk until now. What else do you plan to add to this draft? I don't think we have fixed a plan for 2.4 yet. |
48748d1
to
9ce44b6
Compare
Ok, I think this is done. Please merge #3891 first, then this diff should become considerably smaller. The QML demo skin now features a working (!) play button, 3-band EQ, filter knob, gain knob and volume slider for deck 1 and 2. Please have a look. I can remove the demo skin before merge :D You can test by passing track path(s) on the command line when running Mixxx, because there is no library yet. Or just load tracks using a legacy skin, then switch to the QML demo skin. |
Can we keep the QML demo but hide it by default, and list it when --developer or --qml argument is used? |
c69c72c
to
a21861f
Compare
Uh, this PR is rapidly growing. |
I am also happy to merge only the folder move. |
I already did, see #3891. |
a21861f
to
4fd651e
Compare
4fd651e
to
6da063f
Compare
6c42e95
to
430e957
Compare
I reworked the initializiation logic.Initialization is now delayed until the component is fully constructed and all initial properties have been set: https://doc.qt.io/qt-5/qtqml-cppintegration-definetypes.html#receiving-notifications-for-object-initialization |
6145db5
to
ba6861c
Compare
A single warning should suffice.
ba6861c
to
bf2518e
Compare
OK, finally all checks pass. The ControlProxy code works much nicer now. Please have a look. For testing and see it in action, I suggest to check out the QML Demo skin from #3907. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Let's merge after the CI builds succeeded.
src/skin/qml/qmlcontrolproxy.cpp
Outdated
return m_pControlProxy->getParameter(); | ||
} | ||
|
||
void QmlControlProxy::reinitializeOrReset() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is orReset still valid?
It look like the function returns early if it is already initialized
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OrReset is confusing, because resetting a control proxy is different from resetting a smart pointer. It is also not the alternative to initialize.
How about:
ReinitializeFromKey()
Than it is clear that one cane assume that it becomes invalid if the key is invalid
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have left just an optional comment where I stumbled over the function name.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for all the QML PRs. I am really curious how this will feel ..
Based on #3891.