diff --git a/res/skins/Deere/deck_text_row.xml b/res/skins/Deere/deck_text_row.xml
index d8809788a3b..f8e8ee52d84 100644
--- a/res/skins/Deere/deck_text_row.xml
+++ b/res/skins/Deere/deck_text_row.xml
@@ -41,7 +41,7 @@
TitleGutter
horizontal
- min,max
+ me,max
-
- BpmKeyEditRow
- max,
-
- [Deere],bpm_layout_next
- [Deere],bpm_layout_prev
+
+ BpmKeyEditRowExpanded
+ horizontal
+ 164f,-1me
-
- BpmKeyEditRowCollapsed
- stacked
+ BeatEditCover
+ ,bpmlock
+
+
+ HotcueShiftButtons
+ horizontal
+ min,me
-
- BpmKeyEditTrigger
- visual_bpm
- 1
-
- 0
-
-
-
-
- [Deere],bpm_layout_next
-
-
-
-
-
- horizontal
-
-
-
-
- BpmKeyEditTriggerLabel
- 60,20
-
- right
-
- ,visual_bpm
-
-
- [Deere],show_bpm_info
- visible
-
-
-
-
-
-
+
+ shift_cues_earlier
+ HotcuesEarlierButton
+
+
+
+
+ icon/ic_hotcues_earlier_48px.svg
+ icon/ic_hotcues_earlier_48px.svg
+ ,shift_cues_earlier
+ ,shift_cues_earlier_small
+
+
+
+ shift_cues_later
+ HotcuesLaterButton
+
+
+
+
+ icon/ic_hotcues_later_48px.svg
+ icon/ic_hotcues_later_48px.svg
+ ,shift_cues_later
+ ,shift_cues_later_small
+
-
+
+ [Skin],timing_shift_buttons
+ visible
+
+
+
+
+ beats_adjust_faster
+ BeatsAdjustFasterButton
+
+
+
+
+ icon/ic_beats_adjust_faster_48px.svg
+ icon/ic_beats_adjust_faster_48px.svg
+ ,beats_adjust_faster
+
+
+
+ beats_adjust_slower
+ BeatsAdjustSlowerButton
+
+
+
+
+ icon/ic_beats_adjust_slower_48px.svg
+ icon/ic_beats_adjust_slower_48px.svg
+ ,beats_adjust_slower
+
+
+
+ beats_translate_earlier
+ BeatsTranslateEarlierButton
+
+
+
+
+ icon/ic_beats_translate_earlier_48px.svg
+ icon/ic_beats_translate_earlier_48px.svg
+ ,beats_translate_earlier
+
+
+
+ beats_translate_later
+ BeatsTranslateLaterButton
+
+
+
+
+ icon/ic_beats_translate_later_48px.svg
+ icon/ic_beats_translate_later_48px.svg
+ ,beats_translate_later
+
+
+
+ beats_translate_curpos
+ BeatsTranslateCurposButton
+
+
+
+
+ icon/ic_beats_translate_curpos_48px.svg
+ icon/ic_beats_translate_curpos_48px.svg
+ ,beats_translate_curpos
+ ,beats_translate_match_alignment
+
+
+
+ tempo_tap_bpm_tap
+ BeatsTranslateCurposButton
+ 30,22
+ 60,22
+ me,me
+ TAP
+ ,tempo_tap
+ ,bpm_tap
+
+
+
+
+ bpmlock
+ BpmLockToggle
+
+
+
+ 2
+
+ 0
+ icon/ic_bpm_unlocked_48px.svg
+ icon/ic_bpm_unlocked_48px.svg
+
+
+ 1
+ icon/ic_bpm_locked_48px.svg
+ icon/ic_bpm_locked_48px.svg
+
+
+ ,bpmlock
+ LeftButton
+
+
-
- BpmKeyEditRowExpanded
+
+
+ [Skin],show_beatgrid_controls
+ visible
+
+
+
+
+ BpmKeyEditTriggerRow
+ stacked
+ max,
+
+
+ BpmKeyEditTrigger
+ visual_bpm
+ min,
+ 2
+
+ 0
+
+
+ 1
+
+
+ [Skin],show_beatgrid_controls
+
+
+
+
horizontal
+ min,
-
- BpmKeyEditRowControls
- horizontal
- p,me
- 100,20
- 228,30
-
-
-
- HotcueShiftButtons
- horizontal
- min,me
-
-
- shift_cues_earlier
- HotcuesEarlierButton
-
-
-
-
- icon/ic_hotcues_earlier_48px.svg
- icon/ic_hotcues_earlier_48px.svg
- ,shift_cues_earlier
- ,shift_cues_earlier_small
-
-
-
- shift_cues_later
- HotcuesLaterButton
-
-
-
-
- icon/ic_hotcues_later_48px.svg
- icon/ic_hotcues_later_48px.svg
- ,shift_cues_later
- ,shift_cues_later_small
-
-
-
- [Skin],timing_shift_buttons
- visible
-
-
-
-
- beats_adjust_faster
- BeatsAdjustFasterButton
-
-
-
-
- icon/ic_beats_adjust_faster_48px.svg
- icon/ic_beats_adjust_faster_48px.svg
- ,beats_adjust_faster
-
-
-
- beats_adjust_slower
- BeatsAdjustSlowerButton
-
-
-
-
- icon/ic_beats_adjust_slower_48px.svg
- icon/ic_beats_adjust_slower_48px.svg
- ,beats_adjust_slower
-
-
-
- beats_translate_earlier
- BeatsTranslateEarlierButton
-
-
-
-
- icon/ic_beats_translate_earlier_48px.svg
- icon/ic_beats_translate_earlier_48px.svg
- ,beats_translate_earlier
-
-
-
- beats_translate_later
- BeatsTranslateLaterButton
-
-
-
-
- icon/ic_beats_translate_later_48px.svg
- icon/ic_beats_translate_later_48px.svg
- ,beats_translate_later
-
-
-
- beats_translate_curpos
- BeatsTranslateCurposButton
-
-
-
-
- icon/ic_beats_translate_curpos_48px.svg
- icon/ic_beats_translate_curpos_48px.svg
- ,beats_translate_curpos
- ,beats_translate_match_alignment
-
-
-
- tempo_tap_bpm_tap
- 30,20
- 60,30
- me,me
- 1
-
- 0
- TAP
-
-
- ,tempo_tap
-
-
- ,bpm_tap
- RightButton
-
-
-
-
-
-
- stacked
-
-
- BpmKeyEditTrigger
- visual_bpm
- 1
-
- 0
-
-
-
-
- [Deere],bpm_layout_next
-
-
-
-
- horizontal
-
-
-
-
- BpmKeyEditTriggerLabel
-
- right
-
- ,visual_bpm
-
-
-
-
-
-
-
+
+
+
+ BpmKeyEditTriggerLabel
+ 40,20
+ min,me
+
+ right
+
+ ,visual_bpm
+
+
+ [Deere],show_bpm_info
+ visible
+
+
+
+
-
+
-
+
@@ -361,6 +330,7 @@
track_artist
artist
me,min
+ 1
right
@@ -372,6 +342,7 @@
+
+
+ BpmKeyEditTriggerLabel
+ 30min,20me
+
+ false
+
+ ,visual_key
+
+
+
+
+ [Deere],show_key_controls
+
+ visible
+
+
-
- BpmKeyEditRowExpanded
+
+
+ BpmKeyEditTriggerRow
+ stacked
+ f,
+
+
+ BpmKeyEditTrigger
+ visual_key
+ min,
+ 2
+
+ 0
+
+
+ 1
+
+
+ [Deere],show_key_controls
+
+
+
+
horizontal
-
- BpmKeyEditRowControls
- horizontal
- p,me
- 80,20
- 120,30
-
-
- pitch_down
- PitchDownButton
-
-
-
-
- icon/ic_remove_48px.svg
- icon/ic_remove_48px.svg
- ,pitch_down
- ,pitch_down_small
-
-
-
- pitch_up
- PitchUpButton
-
-
-
-
- icon/ic_add_48px.svg
- icon/ic_add_48px.svg
- ,pitch_up
- ,pitch_up_small
-
-
-
- sync_reset_key
- SyncKeyButton
- 46,22
- 46,22
- f,f
- Match
-
-
- ,sync_key
- ,reset_key
-
-
-
-
-
-
- stacked
- 100f,
-
-
- BpmKeyEditTrigger
- visual_key
- 1
-
- 0
-
-
-
-
- [Deere],key_layout_next
-
-
-
-
- KeyDisplay
- horizontal
- 100f,-1min
-
-
- 10f,20f
- BpmKeyInfoHide
-
-
-
- BpmKeyEditTriggerLabel
-
- e,min
- true
- false
- center
- right
-
- ,visual_key
-
-
-
-
- BpmKeyEditTriggerLabel
-
- min,min
- false
- true
- right
-
- ,visual_key
-
-
-
-
-
-
+
+ 10f,20f
+ BpmKeyInfoShowHide
+
+ [Deere],show_key_controls
+ highlight
+
+
+
+
+ BpmKeyEditTriggerLabel
+ 30me,20me
+
+ false
+
+ ,visual_key
+
+
+
+
+ BpmKeyEditTriggerLabel
+
+ min,min
+ false
+ true
+ right
+
+ ,visual_key
+
+
-
+
+
+
+
+ KeyLabelExpander
+
+
+ [Library],key_notation
+ highlight
+
+
+
-
+
+ [Deere],show_key_controls
+ visible
+
+
+
diff --git a/res/skins/Deere/icon/ic_bpm_locked_48px.svg b/res/skins/Deere/icon/ic_bpm_locked_48px.svg
new file mode 100644
index 00000000000..c1472707309
--- /dev/null
+++ b/res/skins/Deere/icon/ic_bpm_locked_48px.svg
@@ -0,0 +1,3 @@
+
diff --git a/res/skins/Deere/icon/ic_bpm_unlocked_48px.svg b/res/skins/Deere/icon/ic_bpm_unlocked_48px.svg
new file mode 100644
index 00000000000..a0458df73bb
--- /dev/null
+++ b/res/skins/Deere/icon/ic_bpm_unlocked_48px.svg
@@ -0,0 +1,3 @@
+
diff --git a/res/skins/Deere/left_right_1state_button_optional.xml b/res/skins/Deere/left_right_1state_button_optional.xml
new file mode 100644
index 00000000000..441981871b3
--- /dev/null
+++ b/res/skins/Deere/left_right_1state_button_optional.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ stacked
+
+
+
+
+
+
+
+
+
+
+
+ visible
+
+
+
+
+
+
+
diff --git a/res/skins/Deere/style.qss b/res/skins/Deere/style.qss
index 7a18a01e101..990a9c57690 100644
--- a/res/skins/Deere/style.qss
+++ b/res/skins/Deere/style.qss
@@ -1111,8 +1111,7 @@ WBeatSpinBox,
/* Start editable widgets in decks */
/* emphasize editable widgets on hover */
-#BpmKeyEditRowCollapsed:hover,
-#BpmKeyEditRowExpanded:hover,
+#BpmKeyEditTriggerRow:hover,
#PositionGutter:hover,
#PlayPositionTextSmall:hover,
#StarratingGutter:hover,
@@ -1120,28 +1119,32 @@ WTrackProperty:hover {
background-color: rgba(255, 102, 0, 128);
}
#BpmKeyEditRowCollapsed:hover,
- #BpmKeyEditRowExpanded:hover,
WTrackProperty[selected="true"] {
border: 1px solid #FF6600;
}
-#BpmKeyEditRowCollapsed {
+#BpmKeyEditTriggerRow[value="1"] {
qproperty-layoutAlignment: 'AlignCenter';
/* emphasize active widget */
border: 1px solid #666666;
+ border-left: 0px;
}
#BpmKeyEditRowExpanded {
/* emphasize active widget */
border: 1px solid #FF6600;
- background-color: rgba(255, 102, 0, 64);
+ border-right: 0px;
color: #D6D6D6;
}
#BpmKeyEditTrigger {
- /* make trigger button transparent */
background-color: none;
border: none;
+ border-radius: 0px;
+}
+#BpmKeyEditTrigger[value="1"] {
+ border: 1px solid #FF6600;
+ border-left: 0px;
}
#BpmKeyEditRowControls {
@@ -1153,6 +1156,31 @@ WTrackProperty:hover {
qproperty-layoutSpacing: 2;
}
+#BeatEditCover {
+ background-color: rgba(51, 51, 51, 120);
+}
+
+/* This defines the width of the key/cents display per selected notation. */
+#KeyLabelExpander[highlight="0"], /* Invalid */
+#KeyLabelExpander[highlight="1"], /* Custom */
+#KeyLabelExpander[highlight="2"], /* OpenKey */
+#KeyLabelExpander[highlight="3"] { /* Lancelot */
+ /* Widest key is 12A + cents */
+ min-width: 97px;
+ max-width: 97px;
+}
+#KeyLabelExpander[highlight="4"] { /*Traditional */
+ /* The widest key is "D#m/Ebm" + cents */
+ min-width: 138px;
+ max-width: 138px;
+}
+#KeyLabelExpander[highlight="5"], /* OpenKeyAndTraditional */
+#KeyLabelExpander[highlight="6"] { /* LancelotAndTraditional */
+ /* The widest key is "7m (D#m/Ebm)" + cents */
+ min-width: 175px;
+ max-width: 175px;
+}
+
#HotcueShiftButtons {
qproperty-layoutSpacing: 2;
}
@@ -1161,11 +1189,10 @@ WTrackProperty:hover {
padding-right: 1px;
}
-#BpmKeyInfoShow {
+#BpmKeyInfoShowHide[highlight="0"] {
image: url(skin:/../Deere/icon/ic_chevron_left_24x48px.svg) center center;
}
-
-#BpmKeyInfoHide {
+#BpmKeyInfoShowHide[highlight="1"] {
image: url(skin:/../Deere/icon/ic_chevron_right_24x48px.svg) center center;
}
/* End editable widgets in decks */
@@ -1654,7 +1681,8 @@ WWidgetGroup {
*******************************************************************************/
WPushButton,
-WEffectChainPresetButton {
+WEffectChainPresetButton,
+#BpmLockToggle[value="1"] {
color: #D2D2D2;
background-color: #4B4B4B;
border: 1px solid #4B4B4B;
@@ -1664,7 +1692,8 @@ WEffectChainPresetButton {
WPushButton:hover,
#PlayToggle:hover,
-WEffectChainPresetButton:hover {
+WEffectChainPresetButton:hover,
+#BpmLockToggle[value="1"]:hover {
color: #D2D2D2;
background-color: #5F5F5F;
border: 1px solid #5F5F5F;
diff --git a/res/skins/LateNight/controls/button_1state_optional.xml b/res/skins/LateNight/controls/button_1state_optional.xml
index 88f49f1d24b..ec15bb0f06a 100644
--- a/res/skins/LateNight/controls/button_1state_optional.xml
+++ b/res/skins/LateNight/controls/button_1state_optional.xml
@@ -19,6 +19,7 @@ Variables:
+
@@ -26,22 +27,9 @@ Variables:
-
-
-
-
- 1
-
- 0
-
-
- skins:LateNight//buttons/btn__.svg
- skins:LateNight//buttons/btn___active.svg
-
-
-
-
-
+
+
+
diff --git a/res/skins/LateNight/controls/button_1state_right_optional.xml b/res/skins/LateNight/controls/button_1state_right_optional.xml
index dc98ea8a87e..60efd5f8efb 100644
--- a/res/skins/LateNight/controls/button_1state_right_optional.xml
+++ b/res/skins/LateNight/controls/button_1state_right_optional.xml
@@ -1,6 +1,6 @@