From 389bb23b5ecf408a63836479d84303adb1e7e74c Mon Sep 17 00:00:00 2001 From: ronso0 Date: Tue, 14 Apr 2020 23:26:33 +0200 Subject: draw passthrough overlay on overview waveform When vinyl passthrough is enabled, dimm waveform overviews with a translucent overlay on top of all overview itemsgraphics and put 'Passthrough' QLabel on top. Any mouse events are still passed to the overview widget. Skin style: The cover color is picked from skin node in the Overview widget (default #bb000000), the default label style can be adjusted in qss (#PassthroughLabel). --- src/waveform/renderers/waveformsignalcolors.cpp | 8 ++++++++ src/waveform/renderers/waveformsignalcolors.h | 2 ++ 2 files changed, 10 insertions(+) (limited to 'src/waveform/renderers') diff --git a/src/waveform/renderers/waveformsignalcolors.cpp b/src/waveform/renderers/waveformsignalcolors.cpp index ea800a7ee9..41bbf22b6a 100644 --- a/src/waveform/renderers/waveformsignalcolors.cpp +++ b/src/waveform/renderers/waveformsignalcolors.cpp @@ -62,6 +62,14 @@ bool WaveformSignalColors::setup(const QDomNode &node, const SkinContext& contex m_playedOverlayColor = Qt::transparent; } + // This color is used to draw an overlay over the entire overview-waveforms + // if vinyl passthrough is enabled + m_passthroughOverlayColor = context.selectColor(node, "PassthroughOverlayColor"); + m_passthroughOverlayColor = WSkinColor::getCorrectColor(m_passthroughOverlayColor).toRgb(); + if (!m_passthroughOverlayColor.isValid()) { + m_passthroughOverlayColor = WSkinColor::getCorrectColor(QColor(187, 0, 0, 0)).toRgb(); + } + m_bgColor = context.selectColor(node, "BgColor"); if (!m_bgColor.isValid()) { m_bgColor = Qt::transparent; diff --git a/src/waveform/renderers/waveformsignalcolors.h b/src/waveform/renderers/waveformsignalcolors.h index 825323c195..0e789ed1c3 100644 --- a/src/waveform/renderers/waveformsignalcolors.h +++ b/src/waveform/renderers/waveformsignalcolors.h @@ -23,6 +23,7 @@ class WaveformSignalColors { inline const QColor& getAxesColor() const { return m_axesColor; } inline const QColor& getPlayPosColor() const { return m_playPosColor; } inline const QColor& getPlayedOverlayColor() const { return m_playedOverlayColor; } + inline const QColor& getPassthroughOverlayColor() const { return m_passthroughOverlayColor; } inline const QColor& getBgColor() const { return m_bgColor; } protected: @@ -42,6 +43,7 @@ class WaveformSignalColors { QColor m_axesColor; QColor m_playPosColor; QColor m_playedOverlayColor; + QColor m_passthroughOverlayColor; QColor m_bgColor; }; -- cgit v1.2.3