diff --git a/res/skins/Deere/deck_visual_row.xml b/res/skins/Deere/deck_visual_row.xml
index 3a9d7a0d032b..82ffa49ade6e 100644
--- a/res/skins/Deere/deck_visual_row.xml
+++ b/res/skins/Deere/deck_visual_row.xml
@@ -34,7 +34,7 @@
top
- #00FF00
+ #006596
#000000
%1
diff --git a/res/skins/Deere/hotcue_button.xml b/res/skins/Deere/hotcue_button.xml
index 315caab02489..f5e477762261 100644
--- a/res/skins/Deere/hotcue_button.xml
+++ b/res/skins/Deere/hotcue_button.xml
@@ -8,20 +8,46 @@
SmallSquareButtonSize: the button size
-->
-
- hotcue
- HotcueButton
-
-
-
-
-
-
-
-
-
- ,hotcue__activate
- ,hotcue__clear
- ,hotcue__enabled
-
+
+ hotcue
+ HotcueButton
+
+
+
+ 2
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+ ,hotcue__activate
+ true
+ LeftButton
+ false
+
+
+ ,hotcue__clear
+ true
+ RightButton
+ false
+
+
+ ,hotcue__enabled
+ false
+
+
+ ,hotcue__color_id
+ highlight
+
+
diff --git a/res/skins/Deere/sampler_controls_row.xml b/res/skins/Deere/sampler_controls_row.xml
index 53560dfd8149..8341c5265bdb 100644
--- a/res/skins/Deere/sampler_controls_row.xml
+++ b/res/skins/Deere/sampler_controls_row.xml
@@ -46,7 +46,7 @@
#00FF00
bottom
- #00FF00
+ #006596
#FFFFFF
%1
diff --git a/res/skins/Deere/style.qss b/res/skins/Deere/style.qss
index 43cd709ad8b7..9c81f1945b89 100644
--- a/res/skins/Deere/style.qss
+++ b/res/skins/Deere/style.qss
@@ -1525,6 +1525,113 @@ WPushButton[value="2"]:hover {
border: 0px solid #0080BE;
}
+/* Hotcue Color: No Color */
+#HotcueButton[value="1"][highlight="0"],
+#HotcueButton[value="2"][highlight="0"] {
+ background-color: #006596;
+}
+
+#HotcueButton[value="1"][highlight="0"]:hover,
+#HotcueButton[value="2"][highlight="0"]:hover {
+ background-color: #0080BE;
+}
+
+/* Hotcue Color: Red */
+#HotcueButton[value="1"][highlight="1"],
+#HotcueButton[value="2"][highlight="1"] {
+ background-color: #c50a08;
+}
+
+#HotcueButton[value="1"][highlight="1"]:hover,
+#HotcueButton[value="2"][highlight="1"]:hover {
+ background-color: #e50c08;
+}
+
+/* Hotcue Color: Green */
+#HotcueButton[value="1"][highlight="2"],
+#HotcueButton[value="2"][highlight="2"] {
+ background-color: #32be44;
+}
+
+#HotcueButton[value="1"][highlight="2"]:hover,
+#HotcueButton[value="2"][highlight="2"]:hover {
+ background-color: #52de64;
+}
+
+/* Hotcue Color: Blue */
+#HotcueButton[value="1"][highlight="3"],
+#HotcueButton[value="2"][highlight="3"] {
+ background-color: #0044ff;
+}
+
+#HotcueButton[value="1"][highlight="3"]:hover,
+#HotcueButton[value="2"][highlight="3"]:hover {
+ background-color: #0064ff;
+}
+
+/* Hotcue Color: Yellow */
+#HotcueButton[value="1"][highlight="4"],
+#HotcueButton[value="2"][highlight="4"] {
+ color: #4B4B4B;
+ background-color: #f8d200;
+}
+
+#HotcueButton[value="1"][highlight="4"]:hover,
+#HotcueButton[value="2"][highlight="4"]:hover {
+ color: #4B4B4B;
+ background-color: #f8f200;
+}
+
+/* Hotcue Color: Celeste */
+#HotcueButton[value="1"][highlight="5"],
+#HotcueButton[value="2"][highlight="5"] {
+ color: #4B4B4B;
+ background-color: #42d4f4;
+}
+
+#HotcueButton[value="1"][highlight="5"]:hover,
+#HotcueButton[value="2"][highlight="5"]:hover {
+ color: #4B4B4B;
+ background-color: #62f4f4;
+}
+
+/* Hotcue Color: Purple */
+#HotcueButton[value="1"][highlight="6"],
+#HotcueButton[value="2"][highlight="6"] {
+ background-color: #af00cc;
+}
+
+#HotcueButton[value="1"][highlight="6"]:hover,
+#HotcueButton[value="2"][highlight="6"]:hover {
+ background-color: #cf00ec;
+}
+
+/* Hotcue Color: Pink */
+#HotcueButton[value="1"][highlight="7"],
+#HotcueButton[value="2"][highlight="7"] {
+ color: #4B4B4B;
+ background-color: #fca6d7;
+}
+
+#HotcueButton[value="1"][highlight="7"]:hover,
+#HotcueButton[value="2"][highlight="7"]:hover {
+ color: #4B4B4B;
+ background-color: #fcc6f7;
+}
+
+/* Hotcue Color: White */
+#HotcueButton[value="1"][highlight="8"],
+#HotcueButton[value="2"][highlight="8"] {
+ color: #4B4B4B;
+ background-color: #f2f2ff;
+}
+
+#HotcueButton[value="1"][highlight="8"]:hover,
+#HotcueButton[value="2"][highlight="8"]:hover {
+ color: #4B4B4B;
+ background-color: #ffffff;
+}
+
/*"Enabled" state, e.g. for recording status
0 -- disconnected / off
1 -- connecting / enabling
diff --git a/res/skins/Shade/btn/btn_hotcue_1_over.png b/res/skins/Shade/btn/btn_hotcue_1_over.png
index 75dbdbee3e5d..5aa006762d60 100644
Binary files a/res/skins/Shade/btn/btn_hotcue_1_over.png and b/res/skins/Shade/btn/btn_hotcue_1_over.png differ
diff --git a/res/skins/Shade/btn/btn_hotcue_1_overdown.png b/res/skins/Shade/btn/btn_hotcue_1_overdown.png
index f1ad38def103..e257abfd067b 100644
Binary files a/res/skins/Shade/btn/btn_hotcue_1_overdown.png and b/res/skins/Shade/btn/btn_hotcue_1_overdown.png differ
diff --git a/res/skins/Shade/btn/btn_hotcue_2_over.png b/res/skins/Shade/btn/btn_hotcue_2_over.png
index 29a78d683d10..248fb1ea9574 100644
Binary files a/res/skins/Shade/btn/btn_hotcue_2_over.png and b/res/skins/Shade/btn/btn_hotcue_2_over.png differ
diff --git a/res/skins/Shade/btn/btn_hotcue_2_overdown.png b/res/skins/Shade/btn/btn_hotcue_2_overdown.png
index 54f8dcf045fd..a89346b0e30b 100644
Binary files a/res/skins/Shade/btn/btn_hotcue_2_overdown.png and b/res/skins/Shade/btn/btn_hotcue_2_overdown.png differ
diff --git a/res/skins/Shade/btn/btn_hotcue_3_over.png b/res/skins/Shade/btn/btn_hotcue_3_over.png
index be611b123ea8..bc39f10974a6 100644
Binary files a/res/skins/Shade/btn/btn_hotcue_3_over.png and b/res/skins/Shade/btn/btn_hotcue_3_over.png differ
diff --git a/res/skins/Shade/btn/btn_hotcue_3_overdown.png b/res/skins/Shade/btn/btn_hotcue_3_overdown.png
index 6d099e293d8c..87587d95efa3 100644
Binary files a/res/skins/Shade/btn/btn_hotcue_3_overdown.png and b/res/skins/Shade/btn/btn_hotcue_3_overdown.png differ
diff --git a/res/skins/Shade/btn/btn_hotcue_4_over.png b/res/skins/Shade/btn/btn_hotcue_4_over.png
index 53501b003cd3..944eef1c6327 100644
Binary files a/res/skins/Shade/btn/btn_hotcue_4_over.png and b/res/skins/Shade/btn/btn_hotcue_4_over.png differ
diff --git a/res/skins/Shade/btn/btn_hotcue_4_overdown.png b/res/skins/Shade/btn/btn_hotcue_4_overdown.png
index f6b4cd4314d8..6dd65f063ccf 100644
Binary files a/res/skins/Shade/btn/btn_hotcue_4_overdown.png and b/res/skins/Shade/btn/btn_hotcue_4_overdown.png differ
diff --git a/res/skins/Shade/dark.qss b/res/skins/Shade/dark.qss
index 980ef9ad911f..9b23d39961bb 100644
--- a/res/skins/Shade/dark.qss
+++ b/res/skins/Shade/dark.qss
@@ -78,5 +78,7 @@ WLibrary QRadioButton::indicator:checked {
background: url(skin:/btn/btn_lib_radio_button_on_dark.svg) center center;
}
-
-
+/* Hotcue Color: No Color */
+#HotcueButton[highlight="0"] {
+ background-color: #b39a00;
+}
diff --git a/res/skins/Shade/deck_transport.xml b/res/skins/Shade/deck_transport.xml
index a22a3e7d7d78..d681dc1ffffd 100644
--- a/res/skins/Shade/deck_transport.xml
+++ b/res/skins/Shade/deck_transport.xml
@@ -473,6 +473,7 @@
hotcue
+ HotcueButton
0,0
2
@@ -504,9 +505,14 @@
[Channel],hotcue_1_enabled
false
+
+ [Channel],hotcue_1_color_id
+ highlight
+
hotcue
+ HotcueButton
21,0
2
@@ -538,9 +544,14 @@
[Channel],hotcue_2_enabled
false
+
+ [Channel],hotcue_2_color_id
+ highlight
+
hotcue
+ HotcueButton
0,21
2
@@ -572,8 +583,13 @@
[Channel],hotcue_3_enabled
false
+
+ [Channel],hotcue_3_color_id
+ highlight
+
+ HotcueButton
hotcue
21,21
@@ -606,6 +622,10 @@
[Channel],hotcue_4_enabled
false
+
+ [Channel],hotcue_4_color_id
+ highlight
+
diff --git a/res/skins/Shade/style.qss b/res/skins/Shade/style.qss
index 1a7f3eff96c0..2b07f6abe0ff 100644
--- a/res/skins/Shade/style.qss
+++ b/res/skins/Shade/style.qss
@@ -490,4 +490,47 @@ WLibrary QPushButton {
margin: 1px 2px 3px 10px;
}
+/* Hotcue Color: No Color */
+#HotcueButton[highlight="0"] {
+ background-color: #fd0564;
+}
+
+/* Hotcue Color: Red */
+#HotcueButton[highlight="1"] {
+ background-color: #c50a08;
+}
+
+/* Hotcue Color: Green */
+#HotcueButton[highlight="2"] {
+ background-color: #32be44;
+}
+
+/* Hotcue Color: Blue */
+#HotcueButton[highlight="3"] {
+ background-color: #0044ff;
+}
+
+/* Hotcue Color: Yellow */
+#HotcueButton[highlight="4"] {
+ background-color: #f8d200;
+}
+
+/* Hotcue Color: Celeste */
+#HotcueButton[highlight="5"] {
+ background-color: #42d4f4;
+}
+
+/* Hotcue Color: Purple */
+#HotcueButton[highlight="6"] {
+ background-color: #af00cc;
+}
+
+/* Hotcue Color: Pink */
+#HotcueButton[highlight="7"] {
+ background-color: #fca6d7;
+}
+/* Hotcue Color: White */
+#HotcueButton[highlight="8"] {
+ background-color: #f2f2ff;
+}
diff --git a/res/skins/Shade/summer_sunset.qss b/res/skins/Shade/summer_sunset.qss
index 1d5a8df00f9b..7e00d1ba503b 100644
--- a/res/skins/Shade/summer_sunset.qss
+++ b/res/skins/Shade/summer_sunset.qss
@@ -70,3 +70,7 @@ WLibrary QPushButton {
border: 1px solid #52F904;
}
+/* Hotcue Color: No Color */
+#HotcueButton[highlight="0"] {
+ background-color: #52f904;
+}
diff --git a/res/skins/Tango/button_hotcue_deck.xml b/res/skins/Tango/button_hotcue_deck.xml
index e2aa1130fe73..bb1009dbf424 100644
--- a/res/skins/Tango/button_hotcue_deck.xml
+++ b/res/skins/Tango/button_hotcue_deck.xml
@@ -37,5 +37,9 @@ Variables:
,hotcue__enabled
false
+
+ ,hotcue__color_id
+ highlight
+
diff --git a/res/skins/Tango/deck_overview.xml b/res/skins/Tango/deck_overview.xml
index 3942a15025b7..8da395a8e9de 100644
--- a/res/skins/Tango/deck_overview.xml
+++ b/res/skins/Tango/deck_overview.xml
@@ -28,7 +28,7 @@ Variables:
bottom|right
- #00FF00
+ #666666
#FFFFFF
%1
diff --git a/res/skins/Tango/preview_deck.xml b/res/skins/Tango/preview_deck.xml
index 6bf26ef1836d..f59963fb5c9c 100644
--- a/res/skins/Tango/preview_deck.xml
+++ b/res/skins/Tango/preview_deck.xml
@@ -123,7 +123,7 @@ Variables:
#00FF00
bottom|right
- #00FF00
+ #666666
#FFFFFF
%1
diff --git a/res/skins/Tango/sampler.xml b/res/skins/Tango/sampler.xml
index 1df6a097b2dd..00e73db07ec0 100644
--- a/res/skins/Tango/sampler.xml
+++ b/res/skins/Tango/sampler.xml
@@ -207,7 +207,7 @@ Variables:
#00FF00
bottom|right
- #00FF00
+ #666666
#FFFFFF
%1
diff --git a/res/skins/Tango/style.qss b/res/skins/Tango/style.qss
index a4eae1fd788e..64015982ea19 100644
--- a/res/skins/Tango/style.qss
+++ b/res/skins/Tango/style.qss
@@ -984,6 +984,64 @@ WLabel#TrackComment {
border: 1px solid #eeeeee;
}
+/* Hotcue Color: No Color */
+#HotcueButton[displayValue="1"][highlight="0"],
+#HotcueButton[displayValue="2"][highlight="0"] {
+ background-color: #666;
+}
+
+/* Hotcue Color: Red */
+#HotcueButton[displayValue="1"][highlight="1"],
+#HotcueButton[displayValue="2"][highlight="1"] {
+ background-color: #c50a08;
+}
+
+/* Hotcue Color: Green */
+#HotcueButton[displayValue="1"][highlight="2"],
+#HotcueButton[displayValue="2"][highlight="2"] {
+ background-color: #32be44;
+}
+
+/* Hotcue Color: Blue */
+#HotcueButton[displayValue="1"][highlight="3"],
+#HotcueButton[displayValue="2"][highlight="3"] {
+ background-color: #0044ff;
+}
+
+/* Hotcue Color: Yellow */
+#HotcueButton[displayValue="1"][highlight="4"],
+#HotcueButton[displayValue="2"][highlight="4"] {
+ color: #333;
+ background-color: #f8d200;
+}
+
+/* Hotcue Color: Celeste */
+#HotcueButton[displayValue="1"][highlight="5"],
+#HotcueButton[displayValue="2"][highlight="5"] {
+ color: #333;
+ background-color: #42d4f4;
+}
+
+/* Hotcue Color: Purple */
+#HotcueButton[displayValue="1"][highlight="6"],
+#HotcueButton[displayValue="2"][highlight="6"] {
+ background-color: #af00cc;
+}
+
+/* Hotcue Color: Pink */
+#HotcueButton[displayValue="1"][highlight="7"],
+#HotcueButton[displayValue="2"][highlight="7"] {
+ color: #333;
+ background-color: #fca6d7;
+}
+
+/* Hotcue Color: White */
+#HotcueButton[displayValue="1"][highlight="8"],
+#HotcueButton[displayValue="2"][highlight="8"] {
+ color: #333;
+ background-color: #f2f2ff;
+}
+
#CueButton {
/* is styled like #HotcueButton, lights up if play position
is at main Cue point */
diff --git a/res/skins/Tango/waveform.xml b/res/skins/Tango/waveform.xml
index d83b1b325925..7708e49063a9 100644
--- a/res/skins/Tango/waveform.xml
+++ b/res/skins/Tango/waveform.xml
@@ -33,7 +33,7 @@ Variables:
bottom|right
- #00FF00
+ #666666
#FFFFFF
%1
diff --git a/src/widget/controlwidgetconnection.cpp b/src/widget/controlwidgetconnection.cpp
index 9348492034bb..eeba4330a813 100644
--- a/src/widget/controlwidgetconnection.cpp
+++ b/src/widget/controlwidgetconnection.cpp
@@ -1,3 +1,4 @@
+#include
#include "widget/controlwidgetconnection.h"
#include "widget/wbasewidget.h"
@@ -125,4 +126,12 @@ void ControlWidgetPropertyConnection::slotControlValueChanged(double v) {
qDebug() << "Setting property" << m_propertyName
<< "to widget failed. Value:" << parameter;
}
+
+ // According to http://stackoverflow.com/a/3822243 this is the least
+ // expensive way to restyle just this widget.
+ pWidget->style()->unpolish(pWidget);
+ pWidget->style()->polish(pWidget);
+
+ // These calls don't always trigger the repaint, so call it explicitly.
+ pWidget->repaint();
}