diff options
author | ronso0 <ronso0@mixxx.org> | 2020-05-02 21:34:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-02 21:34:11 +0200 |
commit | 1d2ddeffff4aea174bc33e4c5666d8f5cda8caab (patch) | |
tree | e4d873f79427375518f2dfe64f293bca67218b96 /res | |
parent | 15dcec9f793b47996cd715b8bfa2831818e2c3df (diff) | |
parent | 26c033b04b19584ee4d4cbe58872af5767cba1dc (diff) |
Merge branch 'master' into stacked-layout-fix
Diffstat (limited to 'res')
43 files changed, 944 insertions, 778 deletions
diff --git a/res/controllers/Denon-MC3000-scripts.js b/res/controllers/Denon-MC3000-scripts.js index 25ccfc7400..450f546b34 100644 --- a/res/controllers/Denon-MC3000-scripts.js +++ b/res/controllers/Denon-MC3000-scripts.js @@ -3,7 +3,7 @@ * * Written by Bertrand Espern 2012 * - * 2012/05/11 V0.995 : first "good" version approuved and tested by me + * 2012/05/11 V0.995 : first "good" version approved and tested by me * * Special Thanks to the Programmers of Mixxx and all the contributors * diff --git a/res/controllers/Denon-MC7000-scripts.js b/res/controllers/Denon-MC7000-scripts.js index f26d246d94..35467bc175 100644 --- a/res/controllers/Denon-MC7000-scripts.js +++ b/res/controllers/Denon-MC7000-scripts.js @@ -78,7 +78,7 @@ MC7000.jogParams = { /////////////////////////////////*/ -/* OTHER VARIABLES - DONT'T TOUCH EXCEPT YOU KNOW WHAT YOU DO */ +/* OTHER VARIABLES - DON'T TOUCH UNLESS YOU KNOW WHAT YOU'RE DOING */ // Resolution of the jog wheel, set so the spinny // Jog LED to match exactly the movement of the Jog Wheel @@ -642,7 +642,7 @@ MC7000.needleSearchStripPosition = function(channel, control, value, status, if (MC7000.needleSearchTouched[deckNumber]) { var fullValue = (MC7000.needleDropMSB << 7) + value; // move MSB 7 binary gigits to the left and add LSB - var position = (fullValue / 0x3FFF); // devide by all possible positions to + var position = (fullValue / 0x3FFF); // divide by all possible positions to // get relative between 0 - 1 engine.setParameter(group, "playposition", position); } diff --git a/res/controllers/Denon-MC7000.midi.xml b/res/controllers/Denon-MC7000.midi.xml index 0aa79f6cd8..3df16760e3 100644 --- a/res/controllers/Denon-MC7000.midi.xml +++ b/res/controllers/Denon-MC7000.midi.xml @@ -2125,7 +2125,7 @@ </options> </control> <!-- EFFECTS --> - <!-- ASSIGN EFECT RACK TO DECK --> + <!-- ASSIGN EFFECT RACK TO DECK --> <control> <group>[EffectRack1_EffectUnit1]</group> <key>group_[Channel1]_enable</key> @@ -3768,7 +3768,7 @@ </output> <!-- PAD LEDs --> -<!-- ASSIGN EFECT RACK TO DECK --> +<!-- ASSIGN EFFECT RACK TO DECK --> <output> <group>[EffectRack1_EffectUnit1]</group> <key>group_[Channel1]_enable</key> diff --git a/res/controllers/Hercules_DJControl_Inpulse_300.midi.xml b/res/controllers/Hercules_DJControl_Inpulse_300.midi.xml index d43df23ad9..840582ea61 100644 --- a/res/controllers/Hercules_DJControl_Inpulse_300.midi.xml +++ b/res/controllers/Hercules_DJControl_Inpulse_300.midi.xml @@ -1859,7 +1859,7 @@ <on>0x07</on> <off>0x05</off> </output> - <!-- LED Assitant button--> + <!-- LED Assistant button--> <output> <group>[AutoDJ]</group> <key>enabled</key> diff --git a/res/controllers/Novation-Launchpad-Mini-scripts.js b/res/controllers/Novation-Launchpad-Mini-scripts.js index d9f10bffae..cb4588367e 100644 --- a/res/controllers/Novation-Launchpad-Mini-scripts.js +++ b/res/controllers/Novation-Launchpad-Mini-scripts.js @@ -405,7 +405,7 @@ NLM.init = function() //Init hw midi.sendShortMsg(0xb0, 0x0, 0x0); - //midi.sendShortMsg(0xb0, 0x0, 0x28); //Enable buffer cycling <-- Figure out whats wrong with this + //midi.sendShortMsg(0xb0, 0x0, 0x28); //Enable buffer cycling <-- Figure out what's wrong with this // select buffer 0 midi.sendShortMsg(0xb0, 0x68, 3); diff --git a/res/controllers/Pioneer-DDJ-SB2.midi.xml b/res/controllers/Pioneer-DDJ-SB2.midi.xml index c528dbff96..8778aecfe4 100644 --- a/res/controllers/Pioneer-DDJ-SB2.midi.xml +++ b/res/controllers/Pioneer-DDJ-SB2.midi.xml @@ -2419,7 +2419,7 @@ <control> <group>[EffectRack1_EffectUnit1]</group> <key>prev_chain</key> - <description>Preview Effekt 1, Button: SHIFT & PAD1 (in CUE LOOP-Mode, Deck 1 active)</description> + <description>Preview Effect 1, Button: SHIFT & PAD1 (in CUE LOOP-Mode, Deck 1 active)</description> <status>0x97</status> <midino>0x68</midino> <options> @@ -2429,7 +2429,7 @@ <control> <group>[EffectRack1_EffectUnit2]</group> <key>prev_chain</key> - <description>Preview Effekt 1, Button: SHIFT & PAD1 (in CUE LOOP-Mode, Deck 2 active)</description> + <description>Preview Effect 1, Button: SHIFT & PAD1 (in CUE LOOP-Mode, Deck 2 active)</description> <status>0x98</status> <midino>0x68</midino> <options> @@ -2439,7 +2439,7 @@ <control> <group>[EffectRack1_EffectUnit2]</group> <key>prev_chain</key> - <description>Preview Effekt 1, Button: SHIFT & PAD1 (in CUE LOOP-Mode, Deck 3 active)</description> + <description>Preview Effect 1, Button: SHIFT & PAD1 (in CUE LOOP-Mode, Deck 3 active)</description> <status>0x99</status> <midino>0x68</midino> <options> @@ -2449,7 +2449,7 @@ <control> <group>[EffectRack1_EffectUnit2]</group> <key>prev_chain</key> - <description>Preview Effekt 1, Button: SHIFT & PAD1 (in CUE LOOP-Mode, Deck 4 active)</description> + <description>Preview Effect 1, Button: SHIFT & PAD1 (in CUE LOOP-Mode, Deck 4 active)</description> <status>0x9A</status> <midino>0x68</midino> <options> @@ -3059,7 +3059,7 @@ <control> <group>[EffectRack1_EffectUnit1]</group> <key>next_chain</key> - <description>Next Effekt 1, Button: SHIFT & PAD2 (in CUE LOOP-Mode, Deck 1 active)</description> + <description>Next Effect 1, Button: SHIFT & PAD2 (in CUE LOOP-Mode, Deck 1 active)</description> <status>0x97</status> <midino>0x69</midino> <options> @@ -3069,7 +3069,7 @@ <control> <group>[EffectRack1_EffectUnit2]</group> <key>next_chain</key> - <description>Next Effekt 1, Button: SHIFT & PAD2 (in CUE LOOP-Mode, Deck 2 active)</description> + <description>Next Effect 1, Button: SHIFT & PAD2 (in CUE LOOP-Mode, Deck 2 active)</description> <status>0x98</status> <midino>0x69</midino> <options> @@ -3079,7 +3079,7 @@ <control> <group>[EffectRack1_EffectUnit2]</group> <key>next_chain</key> - <description>Next Effekt 1, Button: SHIFT & PAD2 (in CUE LOOP-Mode, Deck 3 active)</description> + <description>Next Effect 1, Button: SHIFT & PAD2 (in CUE LOOP-Mode, Deck 3 active)</description> <status>0x99</status> <midino>0x69</midino> <options> @@ -3089,7 +3089,7 @@ <control> <group>[EffectRack1_EffectUnit2]</group> <key>next_chain</key> - <description>Next Effekt 1, Button: SHIFT & PAD2 (in CUE LOOP-Mode, Deck 4 active)</description> + <description>Next Effect 1, Button: SHIFT & PAD2 (in CUE LOOP-Mode, Deck 4 active)</description> <status>0x9A</status> <midino>0x69</midino> <options> diff --git a/res/controllers/Reloop-Beatmix-2-4-scripts.js b/res/controllers/Reloop-Beatmix-2-4-scripts.js index 1be884fc60..655dc003b6 100644 --- a/res/controllers/Reloop-Beatmix-2-4-scripts.js +++ b/res/controllers/Reloop-Beatmix-2-4-scripts.js @@ -407,7 +407,7 @@ ReloopBeatmix24.WheelTurn = function(channel, control, value, status, group) { if (engine.isScratching(deck)) { engine.scratchTick(deck, newValue); // Scratch! } else { - engine.setValue(group, 'jog', newValue); // Pitch bend + engine.setValue(group, 'jog', newValue / 5); // Pitch bend } }; diff --git a/res/controllers/Roland_DJ-505-scripts.js b/res/controllers/Roland_DJ-505-scripts.js index abb3f8ea8f..0bf074caf0 100644 --- a/res/controllers/Roland_DJ-505-scripts.js +++ b/res/controllers/Roland_DJ-505-scripts.js @@ -201,6 +201,8 @@ DJ505.shutdown = function() { DJ505.browseEncoder = new components.Encoder({ longPressTimer: 0, longPressTimeout: 250, + trackColorCycleEnabled: false, + trackColorCycleHappened: false, previewSeekEnabled: false, previewSeekHappened: false, unshift: function() { @@ -249,12 +251,25 @@ DJ505.browseEncoder = new components.Encoder({ shift: function() { this.onKnobEvent = function(rotateValue) { if (rotateValue !== 0) { - engine.setValue("[Playlist]", "SelectPlaylist", rotateValue); + if (this.trackColorCycleEnabled) { + var key = (rotateValue > 0) ? "track_color_next" : "track_color_prev"; + engine.setValue("[Library]", key, 1.0); + this.trackColorCycleHappened = true; + } else { + engine.setValue("[Playlist]", "SelectPlaylist", rotateValue); + } } }; this.onButtonEvent = function(value) { if (value) { - script.triggerControl("[Playlist]", "ToggleSelectedSidebarItem"); + this.trackColorCycleEnabled = true; + this.trackColorCycleHappened = false; + } else { + if (!this.trackColorCycleHappened) { + script.triggerControl("[Playlist]", "ToggleSelectedSidebarItem"); + } + this.trackColorCycleEnabled = false; + this.trackColorCycleHappened = false; } }; }, @@ -587,7 +602,7 @@ DJ505.Deck = function(deckNumbers, offset) { outKey: "sync_mode", flickerState: false, output: function(value, _group, _control) { - if (value === 2) { + if (value === 3) { value = this.flickerState; } midi.sendShortMsg(this.midi[0], value ? 0x02 : 0x03, this.on); @@ -1002,22 +1017,22 @@ DJ505.PadColor = { }; DJ505.PadColorMap = new ColorMapper({ - "#CC0000": DJ505.PadColor.RED, - "#CC4400": DJ505.PadColor.CORAL, - "#CC8800": DJ505.PadColor.ORANGE, - "#CCCC00": DJ505.PadColor.YELLOW, - "#88CC00": DJ505.PadColor.GREEN, - "#00CC00": DJ505.PadColor.APPLEGREEN, - "#00CC88": DJ505.PadColor.AQUAMARINE, - "#00CCCC": DJ505.PadColor.TURQUOISE, - "#0088CC": DJ505.PadColor.CELESTE, - "#0000CC": DJ505.PadColor.BLUE, - "#4400CC": DJ505.PadColor.AZURE, - "#8800CC": DJ505.PadColor.PURPLE, - "#CC00CC": DJ505.PadColor.MAGENTA, - "#CC0044": DJ505.PadColor.RED, - "#FFCCCC": DJ505.PadColor.APRICOT, - "#FFFFFF": DJ505.PadColor.WHITE, + 0xCC0000: DJ505.PadColor.RED, + 0xCC4400: DJ505.PadColor.CORAL, + 0xCC8800: DJ505.PadColor.ORANGE, + 0xCCCC00: DJ505.PadColor.YELLOW, + 0x88CC00: DJ505.PadColor.GREEN, + 0x00CC00: DJ505.PadColor.APPLEGREEN, + 0x00CC88: DJ505.PadColor.AQUAMARINE, + 0x00CCCC: DJ505.PadColor.TURQUOISE, + 0x0088CC: DJ505.PadColor.CELESTE, + 0x0000CC: DJ505.PadColor.BLUE, + 0x4400CC: DJ505.PadColor.AZURE, + 0x8800CC: DJ505.PadColor.PURPLE, + 0xCC00CC: DJ505.PadColor.MAGENTA, + 0xCC0044: DJ505.PadColor.RED, + 0xFFCCCC: DJ505.PadColor.APRICOT, + 0xFFFFFF: DJ505.PadColor.WHITE, }); DJ505.PadSection = function(deck, offset) { diff --git a/res/controllers/common-controller-scripts.js b/res/controllers/common-controller-scripts.js index a7421d613f..7de34d5d70 100644 --- a/res/controllers/common-controller-scripts.js +++ b/res/controllers/common-controller-scripts.js @@ -455,6 +455,7 @@ var bpm = function() { }; bpm.tapTime = 0.0; +bpm.previousTapDelta = 0.0; bpm.tap = []; // Tap sample values /* -------- ------------------------------------------------------ @@ -467,30 +468,50 @@ bpm.tap = []; // Tap sample values Output: - -------- ------------------------------------------------------ */ bpm.tapButton = function(deck) { - var now = new Date() / 1000; // Current time in seconds + var now = new Date() / 1000; // Current time in seconds var tapDelta = now - bpm.tapTime; bpm.tapTime = now; - if (tapDelta > 2.0) { // reset if longer than two seconds between taps + + // assign tapDelta in cases where the button has not been pressed previously + if (bpm.tap.length < 1) { + bpm.previousTapDelta = tapDelta; + } + // reset if longer than two seconds between taps + if (tapDelta > 2.0) { bpm.tap = []; return; } + // reject occurrences of accidental double or missed taps + // a tap is considered missed when the delta of this press is 80% longer than the previous one + // and a tap is considered double when the delta is shorter than 40% of the previous one. + // these numbers are just guesses that produced good results in practice + if ((tapDelta > bpm.previousTapDelta * 1.8)||(tapDelta < bpm.previousTapDelta * 0.6)) { + return; + } + bpm.previousTapDelta = tapDelta; bpm.tap.push(60 / tapDelta); - if (bpm.tap.length > 8) bpm.tap.shift(); // Keep the last 8 samples for averaging + // Keep the last 8 samples for averaging + if (bpm.tap.length > 8) bpm.tap.shift(); var sum = 0; - for (var i = 0; i < bpm.tap.length; i++) { + for (var i=0; i<bpm.tap.length; i++) { sum += bpm.tap[i]; } var average = sum / bpm.tap.length; - var fRateScale = average / engine.getValue("[Channel" + deck + "]", "bpm"); + var group = "[Channel" + deck + "]"; + + // "bpm" was changed in 1.10 to reflect the *adjusted* bpm, but I presume it + // was supposed to return the tracks bpm (which it did before the change). + // "file_bpm" is supposed to return the set BPM of the loaded track of the + // channel. + var fRateScale = average/engine.getValue(group, "file_bpm"); // Adjust the rate: - fRateScale = (fRateScale - 1.) / engine.getValue("[Channel" + deck + "]", "rateRange"); + fRateScale = (fRateScale - 1.) / engine.getValue(group, "rateRange"); engine.setValue( - "[Channel" + deck + "]", "rate", - fRateScale * engine.getValue("[Channel" + deck + "]", "rate_dir")); -// print("Script: BPM="+average+" setting to "+fRateScale); + group, "rate", + fRateScale * engine.getValue(group, "rate_dir")); }; // ----------------- Common regular expressions -------------------------- diff --git a/res/controllers/midi-components-0.0.js b/res/controllers/midi-components-0.0.js index 3a87fec128..2416645659 100644 --- a/res/controllers/midi-components-0.0.js +++ b/res/controllers/midi-components-0.0.js @@ -759,6 +759,7 @@ } delete this.previouslyFocusedEffect; } + engine.setValue(this.group, "controller_input_active", 0); this.group = "[EffectRack1_EffectUnit" + newNumber + "]"; @@ -774,6 +775,7 @@ this.onShowParametersChange); this.showParametersConnection.trigger(); } + engine.setValue(this.group, "controller_input_active", 1); // Do not enable soft takeover upon EffectUnit construction // so initial values can be loaded from knobs. diff --git a/res/skins/Deere (64 Samplers)/skin.xml b/res/skins/Deere (64 Samplers)/skin.xml index fcb4236eec..8ddd5897ec 100644 --- a/res/skins/Deere (64 Samplers)/skin.xml +++ b/res/skins/Deere (64 Samplers)/skin.xml @@ -3,8 +3,8 @@ <manifest> <title>Deere</title> <author>RJ Ryan, S.Brandt</author> - <version>2.1.0.01</version> - <description>A flexible skin.</description> + <version>2.3.0.01</version> + <description>A flexible skin with stacked or split waveforms, 4 decks and 64 samplers.</description> <language>en</language> <license>Creative Commons Attribution, Share-Alike 3.0 Unported</license> <attributes> diff --git a/res/skins/Deere/skin.xml b/res/skins/Deere/skin.xml index 54dd2b8fe1..5c53966795 100644 --- a/res/skins/Deere/skin.xml +++ b/res/skins/Deere/skin.xml @@ -3,8 +3,8 @@ <manifest> <title>Deere</title> <author>RJ Ryan, S.Brandt</author> - <version>2.1.0.01</version> - <description>A flexible skin.</description> + <version>2.3.0.01</version> + <description>A flexible skin with stacked or split waveforms, 4 decks and 8 samplers.</description> <language>en</language> <license>Creative Commons Attribution, Share-Alike 3.0 Unported</license> <attributes> diff --git a/res/skins/Deere/style.qss b/res/skins/Deere/style.qss index d4dff089bf..f89e62e975 100644 --- a/res/skins/Deere/style.qss +++ b/res/skins/Deere/style.qss @@ -228,7 +228,8 @@ } #LibraryContainer QTableView:focus, -#LibraryContainer QTreeView:focus { +#LibraryContainer QTreeView:focus, +#LibraryContainer QTextBrowser:focus { border: 1px solid #FF6600; } @@ -583,15 +584,6 @@ WLibrary QRadioButton::indicator:unchecked { #DlgAnalysis > QPushButton:focus, #fadeModeCombobox:focus, #DlgAutoDJ QSpinBox:focus { - border: 1px solid #bbb; - outline: none; -} -#DlgMissing > QPushButton:checked:focus, -#DlgHidden > QPushButton:checked:focus, -#DlgAutoDJ > QPushButton:checked:focus, -#DlgRecording > QPushButton:checked:focus, -#DlgAnalysis > QPushButton:checked:focus { - border: 1px solid #d2d2d2; outline: none; } @@ -656,6 +648,25 @@ QPushButton#pushButtonRepeatPlaylist { } /* AutoDJ button icons */ +/* Recording info */ +#labelRecPrefix, +#labelRecFilename, +#labelRecStatistics { + text-transform: none; + padding: 3px 0px 0px 0px; + margin: 0px; +} +#labelRecPrefix { + margin-left: 3px; +} +#labelRecFilename { + font-weight: bold; +} +#labelRecPrefix, +#labelRecStatistics { + font-weight: normal; +} + /* Scroll bars */ #LibraryContainer QScrollBar:horizontal, WEffectSelector QAbstractScrollArea QScrollBar:horizontal, @@ -811,6 +822,7 @@ WLibrary QLabel, WLibrary QPushButton { font-family: "Open Sans"; font-size: 12px; + font-weight: bold; text-transform: uppercase; } @@ -819,6 +831,13 @@ WOverview { text-transform: none; } +/* Passthrough label on overview waveform */ +WOverview #PassthroughLabel { + font-size: 16px; + font-weight: bold; + color: #73b3f7; +} + /* Start spacing for Deck overview row (small waveform, option grid) */ #OptionGrid, #ButtonGrid { background-color: #333333; @@ -1831,7 +1850,8 @@ QToolTip, WBeatSpinBox QMenu, WCueMenuPopup, WCueMenuPopup QMenu, -WCoverArtMenu { +WCoverArtMenu, +WTrackMenu QMenu { padding: 2px; } WEffectSelector QAbstractScrollArea, @@ -1856,10 +1876,16 @@ WCueMenuPopup QMenu, WCueMenuPopup QLabel, WCueMenuPopup QMenu::item, WCoverArtMenu, -WCoverArtMenu::item { - color: #c1cabe; - background-color: #201f1f; - } +WCoverArtMenu::item, +WTrackMenu, +WTrackMenu::item, +WTrackMenu QCheckBox, +WTrackMenu QMenu, +WTrackMenu QMenu::item, +WTrackMenu QMenu QCheckBox { + color: #c1cabe; + background-color: #201f1f; +} WEffectSelector QAbstractScrollArea, #fadeModeCombobox QAbstractScrollArea, QToolTip, @@ -1867,19 +1893,29 @@ QToolTip, WBeatSpinBox QMenu, WCueMenuPopup, WCueMenuPopup QMenu, -WCoverArtMenu { +WCoverArtMenu, +WTrackMenu, +WTrackMenu QMenu { border-width: 1px; border-style: solid; border-color: #aaa; border-radius: 1px; - } +} /* hovered items */ WEffectSelector::item:selected, #fadeModeCombobox::item:selected, - #LibraryContainer QMenu::item:selected, WBeatSpinBox QMenu::item:selected, WCueMenuPopup QMenu::item:selected, WCoverArtMenu::item:selected, + WTrackMenu::item:selected, + WTrackMenu QCheckBox:selected, + WTrackMenu QCheckBox:focus, + WTrackMenu QCheckBox:hover, + WTrackMenu QMenu::item:selected, + WTrackMenu QMenu QCheckBox:selected, + WTrackMenu QMenu QCheckBox:focus, + WTrackMenu QMenu QCheckBox:hover, + #LibraryContainer QMenu::item:selected, #LibraryContainer QMenu QCheckBox:selected, #LibraryContainer QMenu QCheckBox:focus, /* selected by keyboard */ #LibraryContainer QMenu QCheckBox:hover /* mouse hover */ { @@ -1959,7 +1995,10 @@ WEffectSelector { WBeatSpinBox QMenu::item, WCueMenuPopup QMenu::item, WCoverArtMenu::item, - #LibraryContainer QMenu QCheckBox { + WTrackMenu::item, + WTrackMenu QCheckBox, + WTrackMenu QMenu::item, + WTrackMenu QMenu QCheckBox { padding: 0px; margin: 0px; image: none; @@ -1969,7 +2008,9 @@ WEffectSelector { #LibraryContainer QMenu::separator, WBeatSpinBox QMenu::separator, WCueMenuPopup QMenu::separator, - WCoverArtMenu::separator { + WCoverArtMenu::separator, + WTrackMenu::separator, + WTrackMenu QMenu::separator { height: 0px; border-top: 1px solid #0a0a0a; margin: 4px; @@ -1977,7 +2018,9 @@ WEffectSelector { #LibraryContainer QMenu::item, WBeatSpinBox QMenu::item, WCueMenuPopup QMenu::item, - WCoverArtMenu::item { + WCoverArtMenu::item, + WTrackMenu::item, + WTrackMenu QMenu::item { /* right padding creates a margin to the menu expand arrow, left padding should be bigger than menu icon width + menu icon margin */ @@ -1985,20 +2028,32 @@ WEffectSelector { } /* icons in editline menu (searchbox, editable track properties) */ #LibraryContainer QMenu::icon, + #LibraryContainer QMenu QCheckBox::indicator, + #LibraryContainer QMenu::indicator, WBeatSpinBox QMenu::icon, WCueMenuPopup QMenu::icon, WCoverArtMenu::icon, - #LibraryContainer QMenu QCheckBox::indicator, - #LibraryContainer QMenu::indicator, + WTrackMenu::icon, + WTrackMenu QCheckBox::indicator, + WTrackMenu::indicator, + WTrackMenu QMenu::icon, + WTrackMenu QMenu QCheckBox::indicator, + WTrackMenu QMenu::indicator, WCoverArtMenu::indicator { margin: 0px 4px 0px 2px; padding: 1px; } - #LibraryContainer QMenu QCheckBox { + #LibraryContainer QMenu QCheckBox, + WTrackMenu QCheckBox, + WTrackMenu QMenu QCheckBox { padding: 2px 10px 2px 3px; } #LibraryContainer QMenu QCheckBox::indicator, - #LibraryContainer QMenu::indicator { + #LibraryContainer QMenu::indicator, + WTrackMenu QCheckBox::indicator, + WTrackMenu::indicator, + WTrackMenu QMenu QCheckBox::indicator, + WTrackMenu QMenu::indicator { width: 13px; height: 13px; border: 1px solid #555; @@ -2008,11 +2063,19 @@ WEffectSelector { outline: none; } #LibraryContainer QMenu QCheckBox::indicator:selected, - #LibraryContainer QMenu::indicator:selected { + #LibraryContainer QMenu::indicator:selected, + WTrackMenu QCheckBox::indicator:selected, + WTrackMenu::indicator:selected, + WTrackMenu QMenu QCheckBox::indicator:selected, + WTrackMenu QMenu::indicator:selected { border: 1px solid #999; } #LibraryContainer QMenu QCheckBox::indicator:ch |