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 --> 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(); }