From c128bd727e6cfe6cf4630a1ffec589fc850dda68 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Fri, 19 Sep 2008 15:22:17 +0000 Subject: [PATCH] improved visual appearence of timeline git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1634 0778d3d1-df1d-0410-868b-ea421aaaa00d --- data/themes/default/autoscroll_off.png | Bin 711 -> 559 bytes data/themes/default/autoscroll_on.png | Bin 1193 -> 977 bytes data/themes/default/loop_point.png | Bin 786 -> 275 bytes data/themes/default/loop_point_disabled.png | Bin 412 -> 0 bytes data/themes/default/loop_points_off.png | Bin 609 -> 270 bytes data/themes/default/loop_points_on.png | Bin 1092 -> 314 bytes data/themes/default/playpos_marker.png | Bin 756 -> 208 bytes data/themes/default/style.css | 4 ++ src/core/timeline.cpp | 50 ++++++++++---------- src/core/track.cpp | 17 +++---- 10 files changed, 38 insertions(+), 33 deletions(-) delete mode 100644 data/themes/default/loop_point_disabled.png diff --git a/data/themes/default/autoscroll_off.png b/data/themes/default/autoscroll_off.png index fdce09fcfa2208640b670a45c1cca17622581c1b..2942c9a72cad1653a75fac9df12a38c66a2eacf6 100644 GIT binary patch delta 534 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 diff --git a/data/themes/default/loop_points_off.png b/data/themes/default/loop_points_off.png index b65c6f33dd21d9bb3b255c2110bedd4def221445..6d2ea290b2c281ace240659868eacf7819a0d7d8 100644 GIT binary patch delta 242 zcmVn$UFw`u5Pz2Wa%)SWRc=SI-*oQD9spNF z)QfT`9Eccp1pqoHkr>!Y#Y&CezKa3m^a{wyMigM6BC_QM^t50_iON6%prs7}uwX{5 sB7C*`-GoL#vRE>5>PpDz|KSg{0|1sYZZxV&W&i*H07*qoM6N<$g6T?H&j0`b delta 584 zcmV-O0=NB+0^tOZB!2>8OGiWi|A&vvzW@LN8c9S!R2UiM!Ou&RVF1AK@AE#-yUpol zTDrqB=knJIal$GnBB)3xD1z!g@KSW>(xr|;9=dev7M(hU=ZYxk5EMpBAR;eR)ZO@nIebl*h4Vw2W| z<>bV~gGVz|a4~F>Y-m+Y-EHR+NBlw}kw}zi2}BaUeWfKk;&sbaqcJoH8WN(nzx&}p zJS&21QFIeQ>-+Cx;i=iDH)oQp;((%IxT9iX{W#EyUcv7t>VZl zDtd9~j!%5T;IRgSNB75vt7d+h*{eg*!>)fGhwpTWy|HY5A?=pL?E|rA!9W&+KoY{w z8g=6ui7m7!@D&d>iZFABr*O9BhQzv3s? WPs~J2cD29&0000 zH$q5&<-Rbjb=OU*T{Pcj7GneeNGTzNfO9Tila@BkjSHm|thL(^YMYj3k@p_Pn2y4y l*Xo_7RqX-)!5A6;k0%DzQwNv@rak}w002ovPDHLkV1jKpal-%r delta 1044 zcmV+v1nc{{0>lWABo78+OGiWi{{a60|De66laW9kf7SsN6)+&I(X1~300YrUL_t(Y z$L*9$Oq^91hM)6a=E5)o4ln}+3d4Qca!a7LN6@Iz`A%}a z^L{z+e*^dRznA#8;@MU-Mc|x^qeT-a(gM>$SQZ#5%)tc`gYzT-6Oe$lT?1`v;jsYP zJ|?M z%&Nf7{EyqJZa0+PJR@o{Zr)*8(H*!d_T#K>!<3eM{ru#BxAv*RzJaA%eZB9Up1AQ@ zKM(;@n?}^wY|ASs-f`}Uw!%iYQ&=C)ys~uV{EHzgG9D3vHL*TxvK$fn(+%AfPaaDZ zf96-#X@}Z(HfWW(6znd`o41ahT8<8%i%#}m1C{})0@S{I$>pmod#Pn_(eX*uLC>rv z_Scu##%+PMSm=jeUTCwa!6JRRYhbNsWQo4{xD{$?$}TJPguO9g=j>!7PM@EWV0BPkl->3MFivHMW1S+B+x zt)VevPzr9n-I-lmSHAX;Qx0czEtd1Gr=8!-2dFF1g)dki9GjY2jE)SBTB&4IbCp*& z1}pO3wLGfQy#jhJXwtwL{+W*C=W4NUAp>ibeFtRYR|iCcstGhbA`~+$64Nm3f2tvw z=Rr82+kmz_r{2cp2L{Uedzzl$n*W8z*kaU389^o0Ii#Np=6l=F(Z3fJF zG*?_W3oOOvmx_`tMJi^|JKN0loK~dQgO&kt8+;!Juixh`Jb3(Bpi~PFFZzF4brQ?8 zp*kT!0^8y^nm!8Z3YZgE%#n&De~~lmA0jrV^7YI<-YxP>z%=<(+&~RPQN^yQL!O8^HMJM;6AGSqz2s=%1_J zSW?e0g(BppAXdrG9!YzJ%`E(g#7k3%DHI7mmnn_zE<>wnB}2?%WnliUVFCXf)@ zfKO~-l?(8t9a_L7Fbf!Wft+<$nr@{-+KnUa)<`e;U!YyN$4A}Qz3VT$fqb*#5+N@D O0000zb z!{>sWL>q@T6}=+mg>BMzDSg*qr)ZED4$?_z?17{KwS{sBwdI4ouv6MYvJ;nn`tzw? zTV7h6Z%s~vND+V!f>GTh_Y)MMO;rm>+mJRPnE(NV5|Wf*PjC9&o%53Ye;*GA#{b&w z>9a={7p6iKxT?l^&}EAC0#gY}SAY-@;~4PZr};kGtpmTaM?m!5R{?ujei zXN!mSO;mNjmVvyKSP!|aDXj$}gldchPhyRW=II6e;AZy6l_-@`sL^jxtEGp3JvX9} ziqi}Gl(1!uDFv67;#cZOHVLjHxl0!_bt?0$Dptz~nq*%&?je__r@4?s4cmRq>q z`E2uY=gqmjg^j@n-51RhouLt*&nwaH4K$height() ); @@ -231,18 +224,23 @@ void timeLine::paintEvent( QPaintEvent * ) { QPainter p( this ); - for( int x = 0; x < width(); x += s_timeLinePixmap->width() ) - { - p.drawPixmap( x, 0, *s_timeLinePixmap ); - } + QColor bg_color = QApplication::palette().color( QPalette::Active, + QPalette::Background ); + QLinearGradient g( 0, 0, 0, height() ); +// g.setColorAt( 0, bg_color.darker( 250 ) ); + g.setColorAt( 0, bg_color.lighter( 150 ) ); + g.setColorAt( 1, bg_color.darker( 150 ) ); + p.fillRect( 0, 0, width(), height(), g ); + p.setClipRect( m_xOffset, 0, width() - m_xOffset, height() ); p.setPen( QColor( 0, 0, 0 ) ); - const QPixmap & lpoint = loopPointsEnabled() ? - *s_loopPointPixmap : - *s_loopPointDisabledPixmap; - p.drawPixmap( markerX( loopBegin() ), 4, lpoint ); - p.drawPixmap( markerX( loopEnd() ), 4, lpoint ); + const QPixmap & lpoint = *s_loopPointPixmap; + + p.setOpacity( loopPointsEnabled() ? 0.9 : 0.2 ); + p.drawPixmap( markerX( loopBegin() )+2, 2, lpoint ); + p.drawPixmap( markerX( loopEnd() )+2, 2, lpoint ); + p.setOpacity( 1.0 ); tact tact_num = m_begin.getTact(); @@ -251,24 +249,26 @@ void timeLine::paintEvent( QPaintEvent * ) midiTime::ticksPerTact() ) % static_cast( m_ppt ) ); + p.setPen( QColor( 192, 192, 192 ) ); for( int i = 0; x + i * m_ppt < width(); ++i ) { + const int cx = x + qRound( i * m_ppt ); + p.drawLine( cx, 5, cx, height() - 6 ); ++tact_num; if( ( tact_num - 1 ) % - tMax( 1, static_cast( - (float) midiTime::ticksPerTact() / + tMax( 1, qRound( 1.0f / 3.0f * midiTime::ticksPerTact() / m_ppt ) ) == 0 ) { - p.setPen( QColor( 224, 224, 224 ) ); - p.drawText( x + static_cast( i * m_ppt ) + 1, 15, - QString::number( tact_num ) ); - p.setPen( QColor( 0, 0, 0 ) ); - p.drawText( x + static_cast( i * m_ppt ), 14, - QString::number( tact_num ) ); + const QString s = QString::number( tact_num ); + p.drawText( cx + qRound( ( m_ppt - p.fontMetrics(). + width( s ) ) / 2 ), + height() - p.fontMetrics().height() / 2, s ); } } - p.drawPixmap( m_posMarkerX, 4, *s_posMarkerPixmap ); + p.setOpacity( 0.75 ); + p.drawImage( m_posMarkerX, height() - s_posMarkerPixmap->height(), + s_posMarkerPixmap->toImage() ); } diff --git a/src/core/track.cpp b/src/core/track.cpp index 064fff713..ec1366a49 100644 --- a/src/core/track.cpp +++ b/src/core/track.cpp @@ -1150,9 +1150,10 @@ void trackContentWidget::paintEvent( QPaintEvent * _pe ) backgrnd = QPixmap( w * 2, height() ); QPainter pmp( &backgrnd ); //pmp.setRenderHint( QPainter::Antialiasing ); - - QLinearGradient grad( 0,1, 0,h-2 ); - pmp.fillRect( 0, 0, w, h, QColor(128, 128, 128) ); + + QLinearGradient grad( 0, 1, 0, h-2 ); + pmp.fillRect( 0, 0, 1, h, QColor( 96, 96, 96 ) ); + pmp.fillRect( 1, 0, w+1, h, QColor( 128, 128, 128 ) ); grad.setColorAt( 0.0, QColor( 64, 64, 64 ) ); grad.setColorAt( 0.3, QColor( 128, 128, 128 ) ); grad.setColorAt( 0.5, QColor( 128, 128, 128 ) ); @@ -1162,7 +1163,7 @@ void trackContentWidget::paintEvent( QPaintEvent * _pe ) pmp.fillRect( 0, 1, w, h-2, grad ); QLinearGradient grad2( 0,1, 0, h-2 ); - pmp.fillRect( w, 0, w , h, QColor(96, 96, 96) ); + pmp.fillRect( w+1, 0, w , h, QColor( 96, 96, 96 ) ); grad2.setColorAt( 0.0, QColor( 48, 48, 48 ) ); grad2.setColorAt( 0.3, QColor( 96, 96, 96 ) ); grad2.setColorAt( 0.5, QColor( 96, 96, 96 ) ); @@ -1170,10 +1171,10 @@ void trackContentWidget::paintEvent( QPaintEvent * _pe ) //grad2.setColorAt( 1.0, QColor( 96, 96, 96 ) ); //grad2.setColorAt( 1.0, QColor( 48, 48, 48 ) ); pmp.fillRect( w, 1, w , h-2, grad2 ); - + // draw vertical lines //pmp.setPen( QPen( QBrush( QColor( 80, 84, 96, 192 ) ), 1 ) ); - pmp.setPen( QPen( QColor( 0,0,0, 112 ), 1 ) ); + pmp.setPen( QPen( QColor( 0, 0, 0, 112 ), 1 ) ); for( float x = 0.5; x < w * 2; x += ppt ) { pmp.drawLine( QLineF( x, 1.0, x, h-2.0 ) ); @@ -1181,7 +1182,7 @@ void trackContentWidget::paintEvent( QPaintEvent * _pe ) //pmp.setPen( QPen( QColor( 255,0,0, 128 ), 1 ) ); pmp.drawLine( 0, 1, w*2, 1 ); - pmp.setPen( QPen( QColor( 255,255,255, 32 ), 1 ) ); + pmp.setPen( QPen( QColor( 255, 255, 255, 32 ), 1 ) ); for( float x = 1.5; x < w * 2; x += ppt ) { pmp.drawLine( QLineF( x, 1.0, x, h-2.0 ) ); @@ -1193,7 +1194,7 @@ void trackContentWidget::paintEvent( QPaintEvent * _pe ) last_geometry = ppt*h; } - + // Don't draw background on BB-Editor if( m_trackView->getTrackContainerView() != engine::getBBEditor() ) {