Skip to content
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

KeyControl: fix keylock/unlock bugs, reset pitch_adjust #4710

Merged
merged 10 commits into from
Dec 7, 2023
Merged
37 changes: 37 additions & 0 deletions res/skins/LateNight/controls/button_2state_isEqual.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<!--
Description:
A button that has click or display controls.
Variables:
ObjectName : object name
ToolTipID : standard Tooltip from mixxx db
see: https://github.com/mixxxdj/mixxx/blob/master/src/skin/TooltipIds.cpp
Size : button size
state_X_text : label text for state X
state_X_pressed : background graphic for pressed state X
state_X_unpressed : background graphic for unpressed state X
Align : alignment of text
ConfigKey : left-click control
-->
<Template>
<PushButton>
<TooltipId><Variable name="TooltipId"/></TooltipId>
<ObjectName><Variable name="ObjectName"/></ObjectName>
<Size><Variable name="Size"/></Size>
<NumberStates>2</NumberStates>
<State>
<Number>0</Number>
<Text><Variable name="text"/></Text>
<Alignment><Variable name="Align"/></Alignment>
</State>
<State>
<Number>1</Number>
<Text><Variable name="text"/></Text>
<Alignment><Variable name="Align"/></Alignment>
</State>
<Connection>
<ConfigKey><Variable name="ConfigKey"/></ConfigKey>
<Transform><IsEqual><Variable name="IsEqual"/></IsEqual></Transform>
<ButtonState>LeftButton</ButtonState>
</Connection>
</PushButton>
</Template>
90 changes: 88 additions & 2 deletions res/skins/LateNight/decks/rate_controls.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,16 @@
<WidgetGroup>
<ObjectName>RateContainer</ObjectName>
<Layout>vertical</Layout>
<SizePolicy>min,me</SizePolicy>
<SizePolicy>max,me</SizePolicy>
<Children>

<WidgetGroup><!-- BPM + rate + Tap overlay-->
<ObjectName>BpmRateTapContainer</ObjectName>
<Layout>vertical</Layout>
<Layout>horizontal</Layout>
<SizePolicy>min,me</SizePolicy>
<MaximumSize>,46</MaximumSize>
<Children>
<WidgetGroup><Size>0me,0min</Size></WidgetGroup>
<WidgetGroup>
<ObjectName>BpmTapContainer</ObjectName>
<Layout>stacked</Layout>
Expand Down Expand Up @@ -74,6 +75,7 @@
<Layout>horizontal</Layout>
<SizePolicy>min,min</SizePolicy>
<Children>
<WidgetGroup><Size>0me,0min</Size></WidgetGroup>
<PushButton>
<TooltipId>sync_enabled</TooltipId>
<ObjectName>SyncDeck</ObjectName>
Expand Down Expand Up @@ -110,6 +112,90 @@
<SizePolicy>min,min</SizePolicy>
<Children>

<!-- pitch_adjust slider + center indicator -->
<WidgetGroup>
<ObjectName>RateSliderBox</ObjectName>
<Layout>stacked</Layout>
<SizePolicy>max,me</SizePolicy>
<Children>

<WidgetGroup>
<Size>34f,121f</Size>
<Children>
<Label>
<ObjectName>RateCenter</ObjectName>
<Size>5f,5f</Size>
<Pos>2,59</Pos>
<Connection>
<ConfigKey><Variable name="Group"/>,pitch_adjust_set_default</ConfigKey>
<BindProperty>highlight</BindProperty>
</Connection>
</Label>
<SliderComposed>
<ObjectName>RateSlider</ObjectName>
<Size>20f,119f</Size>
<Pos>5,2</Pos>
<TooltipId>pitch_adjust</TooltipId>
<Handle scalemode="STRETCH">skin:/<Variable name="SliderScheme"/>/sliders/knob_pitch_deck.svg</Handle>
<Slider scalemode="STRETCH">skin:/<Variable name="SliderScheme"/>/sliders/slider_pitch_deck.svg</Slider>
<Horizontal>false</Horizontal>
<BarWidth><Variable name="BarWidth"/></BarWidth>
<BarMargins><Variable name="BarMarginPitch"/></BarMargins>
<BarColor><Variable name="BarColorPitch"/></BarColor>
<BarRoundCaps>true</BarRoundCaps>
<BarAxisPos>10.0</BarAxisPos>
<BarUnipolar>false</BarUnipolar>
<Connection>
<ConfigKey><Variable name="Group"/>,pitch_adjust</ConfigKey>
</Connection>
</SliderComposed>
</Children>
</WidgetGroup><!-- Rate slider + center indicator -->
</Children>
</WidgetGroup>

<!-- pitch slider + center indicator -->
<WidgetGroup>
<ObjectName>RateSliderBox</ObjectName>
<Layout>stacked</Layout>
<SizePolicy>max,me</SizePolicy>
<Children>

<WidgetGroup>
<Size>34f,121f</Size>
<Children>
<Label>
<ObjectName>RateCenter</ObjectName>
<Size>5f,5f</Size>
<Pos>2,59</Pos>
<Connection>
<ConfigKey><Variable name="Group"/>,pitch_set_default</ConfigKey>
<BindProperty>highlight</BindProperty>
</Connection>
</Label>
<SliderComposed>
<ObjectName>RateSlider</ObjectName>
<Size>20f,119f</Size>
<Pos>5,2</Pos>
<TooltipId>pitch_adjust</TooltipId>
<Handle scalemode="STRETCH">skin:/<Variable name="SliderScheme"/>/sliders/knob_pitch_deck.svg</Handle>
<Slider scalemode="STRETCH">skin:/<Variable name="SliderScheme"/>/sliders/slider_pitch_deck.svg</Slider>
<Horizontal>false</Horizontal>
<BarWidth><Variable name="BarWidth"/></BarWidth>
<BarMargins><Variable name="BarMarginPitch"/></BarMargins>
<BarColor><Variable name="BarColorPitch"/></BarColor>
<BarRoundCaps>true</BarRoundCaps>
<BarAxisPos>10.0</BarAxisPos>
<BarUnipolar>false</BarUnipolar>
<Connection>
<ConfigKey><Variable name="Group"/>,pitch</ConfigKey>
</Connection>
</SliderComposed>
</Children>
</WidgetGroup><!-- Rate slider + center indicator -->
</Children>
</WidgetGroup>

<WidgetGroup><!-- Rate slider + range displays -->
<ObjectName>RateSliderBox</ObjectName>
<Layout>stacked</Layout>
Expand Down
152 changes: 40 additions & 112 deletions res/skins/LateNight/decks/row_5_transportLoopJump.xml
Original file line number Diff line number Diff line change
Expand Up @@ -222,73 +222,64 @@
</Connection>
</WidgetGroup><!-- / Intro + Outro -->

<WidgetGroup><Size>2f,0min</Size></WidgetGroup><!-- = 2-8px wide -->
<WidgetGroup><SizePolicy>i,min</SizePolicy><MaximumSize>80,</MaximumSize></WidgetGroup>
<WidgetGroup><SizePolicy>me,min</SizePolicy></WidgetGroup>

<WidgetGroup><!-- Loop buttons + beatloop size spinbox -->
<!-- Keylock/unlock controls -->
<WidgetGroup>
<ObjectName>LoopControls</ObjectName>
<Layout>vertical</Layout>
<SizePolicy>min,min</SizePolicy>
<MinimumSize>78,52</MinimumSize>
<MaximumSize>86,52</MaximumSize>
<Children>
<WidgetGroup><!-- loop enable + beatloop size -->
<WidgetGroup><!-- Keylock mode -->
<ObjectName>AlignLeftTop</ObjectName>
<Layout>horizontal</Layout>
<SizePolicy>min,max</SizePolicy>
<Children>
<Template src="skin:../LateNight/controls/button_2state_right_display.xml">
<SetVariable name="TooltipId">beatloop_activate</SetVariable>
<SetVariable name="ObjectName">LoopActivate</SetVariable>
<SetVariable name="Size">26f,26f</SetVariable>
<SetVariable name="ConfigKey"><Variable name="Group"/>,beatloop_activate</SetVariable>
<SetVariable name="ConfigKeyRight"><Variable name="Group"/>,beatlooproll_activate</SetVariable>
<SetVariable name="ConfigKeyDisp"><Variable name="Group"/>,loop_enabled</SetVariable>
<Label>
<ObjectName>KeylockLabel</ObjectName>
<Size>21f,18f</Size>
</Label>
<Template src="skin:../LateNight/controls/button_2state_isEqual.xml">
<SetVariable name="ObjectName">PassthroughButton</SetVariable>
<SetVariable name="Size">40f,26f</SetVariable>
<SetVariable name="text">Reset</SetVariable>
<SetVariable name="IsEqual">0</SetVariable>
<SetVariable name="ConfigKey"><Variable name="Group"/>,keylockMode</SetVariable>
</Template>
<Template src="skin:../LateNight/controls/button_2state_isEqual.xml">
<SetVariable name="ObjectName">PassthroughButton</SetVariable>
<SetVariable name="Size">40f,26f</SetVariable>
<SetVariable name="text">Keep</SetVariable>
<SetVariable name="IsEqual">1</SetVariable>
<SetVariable name="ConfigKey"><Variable name="Group"/>,keylockMode</SetVariable>
</Template>

<BeatSpinBox>
<TooltipId>beatloop_size</TooltipId>
<ObjectName>Spinbox_<Variable name="BtnType"/></ObjectName>
<SizePolicy>me,min</SizePolicy>
<MinimumSize>46,26</MinimumSize>
<MaximumSize>72,26</MaximumSize>
<Value><Variable name="Group"/>,beatloop_size</Value>
<!-- disabled until 'highlight' property has been added to WBeatSpinBox / wbasewidget.
<Connection>
<ConfigKey><Variable name="Group"/>,track_loaded</ConfigKey>
<BindProperty>highlight</BindProperty>
</Connection> -->
</BeatSpinBox>
</Children>
</WidgetGroup>

<WidgetGroup>
<WidgetGroup><!-- Keyunlock mode -->
<ObjectName>AlignLeftTop</ObjectName>
<Layout>horizontal</Layout>
<SizePolicy>min,max</SizePolicy>
<Children>
<Template src="skin:../LateNight/controls/button_2state_right.xml">
<SetVariable name="TooltipId">reloop_toggle</SetVariable>
<SetVariable name="ObjectName">Reloop</SetVariable>
<SetVariable name="Size">26f,26f</SetVariable>
<SetVariable name="ConfigKey"><Variable name="Group"/>,reloop_toggle</SetVariable>
<SetVariable name="ConfigKeyRight"><Variable name="Group"/>,reloop_andstop</SetVariable>
</Template>

<Template src="skin:../LateNight/controls/button_1state_right.xml">
<SetVariable name="TooltipId">loop_in</SetVariable>
<SetVariable name="ObjectName">LoopIn</SetVariable>
<SetVariable name="Size">26f,26f</SetVariable>
<SetVariable name="ConfigKey"><Variable name="Group"/>,loop_in</SetVariable>
<SetVariable name="ConfigKeyRight"><Variable name="Group"/>,loop_in_goto</SetVariable>
<Label>
<ObjectName>KeyunlockLabel</ObjectName>
<Size>21f,18f</Size>
</Label>
<Template src="skin:../LateNight/controls/button_2state_isEqual.xml">
<SetVariable name="TooltipId">beatloop_activate</SetVariable>
<SetVariable name="ObjectName">PassthroughButton</SetVariable>
<SetVariable name="Size">40f,26f</SetVariable>
<SetVariable name="text">Reset</SetVariable>
<SetVariable name="IsEqual">0</SetVariable>
<SetVariable name="ConfigKey"><Variable name="Group"/>,keyunlockMode</SetVariable>
</Template>

<Template src="skin:../LateNight/controls/button_1state_right.xml">
<SetVariable name="TooltipId">loop_out</SetVariable>
<SetVariable name="ObjectName">LoopOut</SetVariable>
<SetVariable name="Size">26f,26f</SetVariable>
<SetVariable name="ConfigKey"><Variable name="Group"/>,loop_out</SetVariable>
<SetVariable name="ConfigKeyRight"><Variable name="Group"/>,loop_out_goto</SetVariable>
<Template src="skin:../LateNight/controls/button_2state_isEqual.xml">
<SetVariable name="TooltipId">beatloop_activate</SetVariable>
<SetVariable name="ObjectName">PassthroughButton</SetVariable>
<SetVariable name="Size">40f,26f</SetVariable>
<SetVariable name="text">Keep</SetVariable>
<SetVariable name="IsEqual">1</SetVariable>
<SetVariable name="ConfigKey"><Variable name="Group"/>,keyunlockMode</SetVariable>
</Template>
</Children>
</WidgetGroup>
Expand All @@ -299,70 +290,7 @@
</Connection>
</WidgetGroup><!-- /Loop buttons + beatloop size spinbox -->

<WidgetGroup><Size>2f,0min</Size></WidgetGroup><!-- = 2-80px wide -->
<WidgetGroup><SizePolicy>i,min</SizePolicy><MaximumSize>80,</MaximumSize></WidgetGroup>

<WidgetGroup><!-- Jump buttons + beatjump size spinbox -->
<ObjectName>BeatjumpControls</ObjectName>
<Layout>vertical</Layout>
<SizePolicy>min,min</SizePolicy>
<MinimumSize>52,52</MinimumSize>
<MaximumSize>60,52</MaximumSize>
<Children>
<WidgetGroup><!-- beatjump size -->
<ObjectName>AlignLeftTop</ObjectName>
<Layout>horizontal</Layout>
<SizePolicy>0min,26f</SizePolicy>
<Children>
<!-- put this spacer here so BeatSpinBox expands with HiDPI scaling
<WidgetGroup><Size>0f,26f</Size></WidgetGroup> -->
<BeatSpinBox>
<TooltipId>beatjump_size</TooltipId>
<ObjectName>Spinbox_<Variable name="BtnType"/></ObjectName>
<SizePolicy>me,min</SizePolicy>
<MinimumSize>46,26</MinimumSize>
<MaximumSize>72,26</MaximumSize>
<Value><Variable name="Group"/>,beatjump_size</Value>
<!-- disabled until 'highlight' property has been added to WBeatSpinBox / wbasewidget.
<Connection>
<ConfigKey><Variable name="Group"/>,track_loaded</ConfigKey>
<BindProperty>highlight</BindProperty>
</Connection> -->
</BeatSpinBox>
</Children>
</WidgetGroup>
<WidgetGroup>
<ObjectName>AlignLeftTop</ObjectName>
<Layout>horizontal</Layout>
<SizePolicy>min,max</SizePolicy>
<Children>

<Template src="skin:../LateNight/controls/button_1state_right.xml">
<SetVariable name="TooltipId">beatjump_backward</SetVariable>
<SetVariable name="ObjectName">JumpBack</SetVariable>
<SetVariable name="Size">26f,26f</SetVariable>
<SetVariable name="ConfigKey"><Variable name="Group"/>,beatjump_backward</SetVariable>
<SetVariable name="ConfigKeyRight"><Variable name="Group"/>,beatjump_1_backward</SetVariable>
</Template>

<Template src="skin:../LateNight/controls/button_1state_right.xml">
<SetVariable name="TooltipId">beatjump_forward</SetVariable>
<SetVariable name="ObjectName">JumpForward</SetVariable>
<SetVariable name="Size">26f,26f</SetVariable>
<SetVariable name="ConfigKey"><Variable name="Group"/>,beatjump_forward</SetVariable>
<SetVariable name="ConfigKeyRight"><Variable name="Group"/>,beatjump_1_forward</SetVariable>
</Template>
</Children>
</WidgetGroup>
</Children>
<Connection>
<ConfigKey>[Skin],show_beatjump_controls</ConfigKey>
<BindProperty>visible</BindProperty>
</Connection>
</WidgetGroup><!-- /Jump buttons + beatjump size spinbox -->

<WidgetGroup><Size>2f,0min</Size></WidgetGroup>
<WidgetGroup><SizePolicy>i,min</SizePolicy></WidgetGroup>
</Children>
</WidgetGroup><!-- DeckRow_5_LoopCuesTransport -->
</Children>
Expand Down
6 changes: 4 additions & 2 deletions res/skins/LateNight/style_palemoon.qss
Original file line number Diff line number Diff line change
Expand Up @@ -2301,10 +2301,12 @@ WPushButton#PlayDeck[value="0"] {
image: url(skin:../LateNight/palemoon/buttons/btn__slip_active_34.svg) no-repeat center center;
}

#KeylockButton12[displayValue="0"], #KeylockButton34[displayValue="0"] {
#KeylockButton12[displayValue="0"], #KeylockButton34[displayValue="0"],
#KeyunlockLabel {
image: url(skin:../LateNight/palemoon/buttons/btn__keylock.svg) no-repeat center center;
}
#KeylockButton12[displayValue="1"] {
#KeylockButton12[displayValue="1"],
#KeylockLabel {
image: url(skin:../LateNight/palemoon/buttons/btn__keylock_active_12.svg) no-repeat center center;
}
#KeylockButton34[displayValue="1"] {
Expand Down
Loading