From d4fb9374230cb833259871e654c545d34a556400 Mon Sep 17 00:00:00 2001 From: Umcaruje Date: Fri, 30 Sep 2016 20:50:50 +0200 Subject: [PATCH] Fader redesign (#3056) --- data/themes/default/fader_background.png | Bin 1006 -> 905 bytes data/themes/default/fader_leds.png | Bin 576 -> 295 bytes data/themes/default/style.css | 5 ++-- include/Fader.h | 9 +++++-- src/gui/FxMixerView.cpp | 9 ++----- src/gui/widgets/Fader.cpp | 32 +++++++++++++++++++---- 6 files changed, 39 insertions(+), 16 deletions(-) diff --git a/data/themes/default/fader_background.png b/data/themes/default/fader_background.png index 831668f2be8fba90a90e79df3149eac3dfdcf8a2..7d6b59e35fee7ad24cbc2e2767ed0b909e7d6b2c 100755 GIT binary patch delta 808 zcmV+@1K0fS2Z;xeZhrt&9*@W8 z-8jB|zq==X?8fo!@pybDqJfCA@QR3b<9`2oxmF zi1v5)yI%mHlme6io-73b{QdL(1Hc(TGJaU6o`A}*gp@XhOcRswRikB9ZrY{b*y%_D zzVqQjLh^)+x^)Ul{a_TM=48bZs&Ivk|v&|9GzQRMsq?Cm6$g zUN%@(w^-AsDt{M)r81#RIj3&hEwICX5}II)a($jlqJU@0&GP28#-llmuTJPPwf;hE z%!bJvIhGUq6tA9f`jG2+*+|^z^N2CkOYZ6_)`l=^vI%vQC`V*tnij6Il92wA$oP#_ zQO39Pd2WKn@C}p5JO3g9pNH}7Lb2?9$k(@c7ErQ;@qcZrqL3mkp%MI7EnKmc*e2y6 zvhBX5TH$g_F0pZn`1%TL4n@Tp9eakBcOsNbP)?|Jo<6(;B;&to62)cpxeAmDVU-)} z6`0S(g{bXw<(ywFoCmk-^G1XcK&(j6^rK&vT{xCS27W+V9xm!ke55I&)?IGSwndh5 zq&q3Wn14+^j~G+e=k9)swSAhO-}Cb4KuXx zimUTLVycqyo|Q%J4o($o^dvzo8mn4QBGN@o}q>h z#o+SzT*lwFTUKEWmP$xb3E%2Y6qSuhl=~1Wf`4yEsHY(oC5FFULRmd8doSAdR560z z`1D-HH%y|!;&xmG1HFyq+6ZFwOTBCif4hXXTtSx&mv%lc-9lUYE#A$tcq|6-tq7f( z5VH6oh^9yI9e_*Uccjij%WebDngwQkpOT5U^|WzfIk3Ug%IRU zWaEiwb2uDs_g!~i)y?y+s*iQkKJUBk{%|40J05zM9R}(fmZiI0_e_9UZ;-xvmv14-WN(jGI zCm&va&nkJ^-hWKSICzx+c)Hm^3JI9`LIMK~0Fh}J8*kB)TUJ%BIX{2rvs(z~qH(G6 zP*6Y)W&K_~&l`z}oPP(5S-s?*salS#XopUcC@P0M z-NnBuTzQ3&{!6lqPppc|_;Q@bCTIv>Fp0eP*D}NTJic5g=3R$;eTxO>R&_sqJHaJ( zS+4TSlW5r()1h;y%fE`De2(9_@vt!op%^x1)xtF`x#V1P#Mf6KxwZ(W(XsDPawS5} z1a%#%$bVCZ*8yz&f3o`LUHeVWtw&d5x?QFagTG$R3ptbka*71K4f=)DA18|p{1&`C z)ap!ppedr#U2e>_MU-;zNn#k2#CgD&bvd8zw^-Y!j3(MD3N}8ENmt5xZZY(CQM2p50U5WC_q;OelIU_}v@TFFwpd= z;jh=BiM3@JpZ2R_0Pk>~Hx>&fQD&KTTp0tsjOEG*a@@bv%ZBjR>(J7zMZR#cI1gHZ)cnRRtw9VJ^{|68e zhz32UX`3&G^?bbXy4vH+>uTQ~9v*HzueY)AAfip*_jmiQ>+7afFWUXscira^IC(LT kgBQjGfi+$!yh`~CYiq^e&FsyD00000Ne4wvM6N<$f?qYqB>(^b diff --git a/data/themes/default/fader_leds.png b/data/themes/default/fader_leds.png index 45a0d81d603241837ec46f448ba6b84e591a5a0f..707902e04c62f0158a7e6690497d68a1f00e20c6 100755 GIT binary patch delta 194 zcmX@WvYcr`Zau>iPZ!6KjK;UO6!{Jrh_F4FwqOHG^J6{^5wX5AI$Q^3H^eZ+UYXX~ zyChlCbMyO^&z`=Y{;czw$+9VjLblHE(UXe5*8Tcj0jJ`;T@yoO<+p!MH&?%JRT*Cp zv;WS_!w(BA_Qam`-m){FJ@?GX>DFQvGIr5>c8Y#KfA#u>?7MHDT0c20%Pqs#4pNCq n)qJa1^-FpG_r?Fa>W|-dO;@xGdo|%F0}yz+`njxgN@xNA9gAJK delta 477 zcmV<30V4jV0>A{2ZGQp1Nkl5(`<(&s$B6gdDA zRjPDQ3n_`#jYAv~l_4&)>tY6NsaLtWZoI&2=8TXj0NCxsAAB`lg+#{W{&VB^Er8{ zJ@1T}BYZD!jenCPe556}{D{j4m%%xw^cxMOG!aJ$%&B-s-2$^MhR6j>M6& z?^HLy4|3-E@bYM9uJys^`Ci^E)*E8CBBHGbe-hD_*sYqyT7A3?;ki7o7+wAg$`k~G TqYU^J00000NkvXXu0mjf>r?T+ diff --git a/data/themes/default/style.css b/data/themes/default/style.css index 85c47984c96..51397fa0e0f 100755 --- a/data/themes/default/style.css +++ b/data/themes/default/style.css @@ -544,8 +544,9 @@ FxLine { /* persistent peak markers for fx peak meters */ Fader { - qproperty-peakGreen: #0BD556; - qproperty-peakRed: #660505; + qproperty-peakGreen: #0ad45c; + qproperty-peakYellow: #d6ec52; + qproperty-peakRed: #c12038; } TimeLineWidget { diff --git a/include/Fader.h b/include/Fader.h index 35f9709541e..943761537b1 100644 --- a/include/Fader.h +++ b/include/Fader.h @@ -63,6 +63,7 @@ class EXPORT Fader : public QWidget, public FloatModelView public: Q_PROPERTY( QColor peakGreen READ peakGreen WRITE setPeakGreen ) Q_PROPERTY( QColor peakRed READ peakRed WRITE setPeakRed ) + Q_PROPERTY( QColor peakYellow READ peakYellow WRITE setPeakYellow ) Q_PROPERTY( bool levelsDisplayedInDBFS READ getLevelsDisplayedInDBFS WRITE setLevelsDisplayedInDBFS ) Fader( FloatModel * _model, const QString & _name, QWidget * _parent ); @@ -89,9 +90,12 @@ class EXPORT Fader : public QWidget, public FloatModelView QColor const & peakRed() const; void setPeakRed( const QColor & c ); + QColor const & peakYellow() const; + void setPeakYellow( const QColor & c ); + inline bool getLevelsDisplayedInDBFS() const { return m_levelsDisplayedInDBFS; } inline void setLevelsDisplayedInDBFS(bool value = true) { m_levelsDisplayedInDBFS = value; } - + void setDisplayConversion( bool b ) { m_displayConversion = b; @@ -113,7 +117,7 @@ class EXPORT Fader : public QWidget, public FloatModelView virtual void wheelEvent( QWheelEvent *ev ); virtual void paintEvent( QPaintEvent *ev ); - inline bool clips(float const & value) const { return value > 1.0f; } + inline bool clips(float const & value) const { return value >= 1.0f; } void paintDBFSLevels(QPaintEvent *ev, QPainter & painter); void paintLinearLevels(QPaintEvent *ev, QPainter & painter); @@ -161,6 +165,7 @@ class EXPORT Fader : public QWidget, public FloatModelView QColor m_peakGreen; QColor m_peakRed; + QColor m_peakYellow; } ; diff --git a/src/gui/FxMixerView.cpp b/src/gui/FxMixerView.cpp index 3884e9aff63..c4c2da9b796 100644 --- a/src/gui/FxMixerView.cpp +++ b/src/gui/FxMixerView.cpp @@ -283,8 +283,8 @@ FxMixerView::FxChannelView::FxChannelView(QWidget * _parent, FxMixerView * _mv, tr( "FX Fader %1" ).arg( channelIndex ), m_fxLine ); m_fader->setLevelsDisplayedInDBFS(); // TODO dbvToAmp is really dBFSToAmp. Rename in later commit. - m_fader->setMinPeak(dbvToAmp(-40)); - m_fader->setMaxPeak(dbvToAmp(12)); + m_fader->setMinPeak(dbvToAmp(-42)); + m_fader->setMaxPeak(dbvToAmp(9)); m_fader->move( 16-m_fader->width()/2, m_fxLine->height()- @@ -600,8 +600,3 @@ void FxMixerView::updateFaders() } } } - - - - - diff --git a/src/gui/widgets/Fader.cpp b/src/gui/widgets/Fader.cpp index 2ef4c2e6241..ecb4759d344 100644 --- a/src/gui/widgets/Fader.cpp +++ b/src/gui/widgets/Fader.cpp @@ -79,7 +79,8 @@ Fader::Fader( FloatModel * _model, const QString & _name, QWidget * _parent ) : m_moveStartPoint( -1 ), m_startValue( 0 ), m_peakGreen( 0, 0, 0 ), - m_peakRed( 0, 0, 0 ) + m_peakRed( 0, 0, 0 ), + m_peakYellow( 0, 0, 0 ) { if( s_textFloat == NULL ) { @@ -384,9 +385,16 @@ void Fader::paintDBFSLevels(QPaintEvent * ev, QPainter & painter) float const persistentLeftPeakDBFS = ampToDbv(m_persistentPeak_L); int persistentPeak_L = height * (1 - (persistentLeftPeakDBFS - minDB) * fullSpanReciprocal); + // the LED's have a 4px padding and we don't want the peaks + // to draw on the fader background + if( persistentPeak_L <= 4 ) + { + persistentPeak_L = 4; + } if( persistentLeftPeakDBFS > minDB ) { - QColor const & peakColor = clips(m_persistentPeak_L) ? peakRed() : peakGreen(); + QColor const & peakColor = clips(m_persistentPeak_L) ? peakRed() : + persistentLeftPeakDBFS >= -6 ? peakYellow() : peakGreen(); painter.fillRect( QRect( 2, persistentPeak_L, 7, 1 ), peakColor ); } @@ -399,9 +407,16 @@ void Fader::paintDBFSLevels(QPaintEvent * ev, QPainter & painter) float const persistentRightPeakDBFS = ampToDbv(m_persistentPeak_R); int persistentPeak_R = height * (1 - (persistentRightPeakDBFS - minDB) * fullSpanReciprocal); + // the LED's have a 4px padding and we don't want the peaks + // to draw on the fader background + if( persistentPeak_R <= 4 ) + { + persistentPeak_R = 4; + } if( persistentRightPeakDBFS > minDB ) { - QColor const & peakColor = clips(m_persistentPeak_R) ? peakRed() : peakGreen(); + QColor const & peakColor = clips(m_persistentPeak_R) ? peakRed() : + persistentRightPeakDBFS >= -6 ? peakYellow() : peakGreen(); painter.fillRect( QRect( 14, persistentPeak_R, 7, 1 ), peakColor ); } } @@ -449,6 +464,11 @@ QColor const & Fader::peakRed() const return m_peakRed; } +QColor const & Fader::peakYellow() const +{ + return m_peakYellow; +} + void Fader::setPeakGreen( const QColor & c ) { m_peakGreen = c; @@ -459,5 +479,7 @@ void Fader::setPeakRed( const QColor & c ) m_peakRed = c; } - - +void Fader::setPeakYellow( const QColor & c ) +{ + m_peakYellow = c; +}