-
-
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 demo skin additions #3992
QML demo skin additions #3992
Conversation
Wooo, this gets nicer and nicer! Though, I have an issue with the sliders: single-click to set the position interferes with double-click to reset because clicks are processed separately, which leads to double click first setting the new value, then resetting the knob. |
f6da4f8
to
9ab6532
Compare
I improved the mic/aux units and added ducking settings. This is ready now. |
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.
Thanks for your continued hard work on this!
horizontalTileMode: BorderImage.Stretch | ||
verticalTileMode: BorderImage.Stretch | ||
source: Theme.imgSectionBackground | ||
|
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.
would it work to set anchor.fill: parent
here? it would make sense since that is the most common usecase
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.
It is, but if you don't want to use anchor.fill
, defining it in the component makes it weird to use. Use need to explicitly set it to undefined
then. I think it's the "callers" responsibility to define the size.
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.
Mhmm right...
height: parent.height | ||
width: 56 | ||
|
||
Skin.InfoBarButton { |
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.
not sure why this happens, but clicking this button, pressing cancel in the "no input device selected"-popup and then pressing anywhere else activates the button again. I don't know whether we can do much about that or whether its our responsibility to do that. Same issue also occurs with the passthrough buttons of the decks.
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.
No idea, probably because the button didn't receive the release signal or something? We can try to debug that separately.
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.
Yes, we should document it on the project board though.
ab3c3e0
to
314c474
Compare
Mixxx.ControlProxy { | ||
id: playControl | ||
|
||
readonly property bool playing: value != 0 | ||
|
||
function stop() { | ||
value = 0; | ||
} | ||
|
||
group: root.group | ||
key: "play" | ||
} | ||
|
||
Mixxx.ControlProxy { | ||
id: ejectControl | ||
|
||
function trigger() { | ||
value = 1; | ||
value = 0; | ||
} | ||
|
||
group: root.group | ||
key: "eject" | ||
} |
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.
IMO it would make sense that once we make COs "richer", we should add them to the built-in components we already ship.
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.
True, we can consider that once we have a pretty complete, polished skin. Right now, we're refactoring all the time so I think it's too early to extract stuff like this.
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 agree. We just shouldn't forget to go back and actually do that once we're at the appropriate stage.
value = 1; | ||
value = 0; |
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'm not sure, but I think setting the value twice is unnecessary. Whats important is just that the signal for the change in value gets emitted. Even if the value wasn't actually changed.
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.
But it kind of seems hacky to me tbh. Maybe the cpp ControlProxy object should have a trigger method to emit a value change signal without changing anything.
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.
Yes. The CO interface is a bit strange for that though. IIRC you can configure a CO to swallow such signals when the value doesn't change as well. I guess this was a design decision made driven by the old Skin system...
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. Thank you very much
Some improvements for the demo skin, that brings it closer to being usable: