traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso/src core/Utils.cpp core/ViewPort.cpp t...


From: Ben Levitt
Subject: [Traverso-commit] traverso/src core/Utils.cpp core/ViewPort.cpp t...
Date: Sat, 05 May 2007 20:54:03 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Ben Levitt <benjie>     07/05/05 20:54:03

Modified files:
        src/core       : Utils.cpp ViewPort.cpp 
        src/traverso/songcanvas: PositionIndicator.cpp TimeLineView.cpp 
                                 TimeLineView.h 

Log message:
        use miliseconds instead of 30ths of a second as partial second amounts, 
make TimeLineView choose nicer labelling points, internationalize decimal char 
in times

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Utils.cpp?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ViewPort.cpp?cvsroot=traverso&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/PositionIndicator.cpp?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TimeLineView.cpp?cvsroot=traverso&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TimeLineView.h?cvsroot=traverso&r1=1.7&r2=1.8

Patches:
Index: core/Utils.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Utils.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- core/Utils.cpp      25 Apr 2007 15:58:49 -0000      1.8
+++ core/Utils.cpp      5 May 2007 20:54:03 -0000       1.9
@@ -27,6 +27,8 @@
 #include <QDateTime>
 #include <QPixmapCache>
 #include <QRegExp>
+#include <QLocale>
+#include <QChar>
 
 
 QString frame_to_smpte ( nframes_t nframes, int rate )
@@ -39,8 +41,8 @@
        remainder = nframes - ( mins * 60 * rate );
        secs = remainder / rate;
        remainder -= secs * rate;
-       frames = remainder / ( rate / 30 );
-       spos.sprintf ( " %02d:%02d,%02d", mins, secs, frames );
+       frames = remainder / ( rate / 1000 );
+       spos.sprintf ( " %02d:%02d%c%03d", mins, secs, 
QLocale::system().decimalPoint().toAscii(), frames );
 
        return spos;
 }
@@ -73,11 +75,11 @@
 nframes_t smpte_to_frame( QString str, int rate )
 {
        nframes_t out = 0;
-       QStringList lst = str.simplified().split(QRegExp("[;,:]"), 
QString::SkipEmptyParts);
+       QStringList lst = str.simplified().split(QRegExp("[;,.:]"), 
QString::SkipEmptyParts);
 
        if (lst.size() >= 1) out += lst.at(0).toInt() * 60 * rate;
        if (lst.size() >= 2) out += lst.at(1).toInt() * rate;
-       if (lst.size() >= 3) out += lst.at(2).toInt() * rate / 30;
+       if (lst.size() >= 3) out += lst.at(2).toInt() * rate / 1000;
 
        return out;
 }

Index: core/ViewPort.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ViewPort.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- core/ViewPort.cpp   30 Apr 2007 17:50:17 -0000      1.19
+++ core/ViewPort.cpp   5 May 2007 20:54:03 -0000       1.20
@@ -303,7 +303,7 @@
 
 QRectF HoldCursor::boundingRect( ) const
 {
-       return QRectF(0, 0, 120, 40);
+       return QRectF(0, 0, 130, 40);
 }
 
 void HoldCursor::reset()

Index: traverso/songcanvas/PositionIndicator.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/traverso/songcanvas/PositionIndicator.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- traverso/songcanvas/PositionIndicator.cpp   12 Apr 2007 12:48:17 -0000      
1.3
+++ traverso/songcanvas/PositionIndicator.cpp   5 May 2007 20:54:03 -0000       
1.4
@@ -45,7 +45,7 @@
 void PositionIndicator::calculate_bounding_rect()
 {
        prepareGeometryChange();
-       m_boundingRect = QRectF(0, 0, 65, 14);
+       m_boundingRect = QRectF(0, 0, 70, 14);
        
        m_background = QPixmap((int)m_boundingRect.width(), 
(int)m_boundingRect.height());
        m_background.fill(QColor(Qt::transparent));

Index: traverso/songcanvas/TimeLineView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TimeLineView.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- traverso/songcanvas/TimeLineView.cpp        28 Apr 2007 05:08:27 -0000      
1.23
+++ traverso/songcanvas/TimeLineView.cpp        5 May 2007 20:54:03 -0000       
1.24
@@ -201,6 +201,25 @@
        connect(m_timeline, SIGNAL(markerRemoved(Marker*)), this, 
SLOT(remove_marker_view(Marker*)));
 
        setAcceptsHoverEvents(true);
+
+       m_zooms[131072] = "5:00.000";
+       m_zooms[ 65536] = "2:30.000";
+       m_zooms[ 32768] = "1:00.000";
+       m_zooms[ 16384] = "0:30.000";
+       m_zooms[  8192] = "0:20.000";
+       m_zooms[  4096] = "0:10.000";
+       m_zooms[  2048] = "0:05.000";
+       m_zooms[  1024] = "0:02.000";
+       m_zooms[   512] = "0:01.000";
+       m_zooms[   256] = "0:00.800";
+       m_zooms[   128] = "0:00.400";
+       m_zooms[    64] = "0:00.200";
+       m_zooms[    32] = "0:00.100";
+       m_zooms[    16] = "0:00.050";
+       m_zooms[     8] = "0:00.020";
+       m_zooms[     4] = "0:00.010";
+       m_zooms[     2] = "0:00.005";
+       m_zooms[     1] = "0:00.002";
 }
 
 
@@ -235,20 +254,33 @@
        painter->setPen(themer()->get_color("Timeline:text"));
        painter->setFont( QFont( "Bitstream Vera Sans", 9) );
        
-       nframes_t lastb = xstart * m_sv->scalefactor + pixelcount * 
m_sv->scalefactor;
-       nframes_t firstFrame = xstart * m_sv->scalefactor;
+       nframes_t major;
+       
+       if (m_zooms.contains(m_sv->scalefactor)) {
+               major = smpte_to_frame(m_zooms[m_sv->scalefactor], 
m_samplerate);
+       } else {
+               major = 120 * m_sv->scalefactor;
+       }
+
+       bool showMs = (m_sv->scalefactor < 512);
 
-       int x = xstart;
+       // minor is double so they line up right with the majors,
+       // despite not always being an even number of frames
+       double minor = major/10.0;
        
-       for (nframes_t b = firstFrame; b < lastb; b += (m_sv->scalefactor) ) {
-               if (x %10 == 0) {
+       nframes_t firstFrame = xstart * m_sv->scalefactor;
+       nframes_t lastFrame = xstart * m_sv->scalefactor + pixelcount * 
m_sv->scalefactor;
+
+       // Draw minor ticks
+       for (int i = 0; i < (lastFrame-firstFrame+major) / minor; i++ ) {
+               int x = (((int)(firstFrame/major))*major + i * 
minor)/m_sv->scalefactor;
                        painter->drawLine(x, height - 5, x, height - 1);
                }
-               if (x % 100 == 0) {
-                       painter->drawLine(x, height - 13, x, height - 1);
-                       painter->drawText(x + 4, height - 8, frame_to_smpte(b, 
m_samplerate));
-               }
-               x++;
+       
+       // Draw major ticks
+       for (nframes_t t = ((int)(firstFrame/major))*major; t < lastFrame; t += 
major ) {
+               painter->drawLine(t/m_sv->scalefactor, height - 13, 
t/m_sv->scalefactor, height - 1);
+               painter->drawText(t/m_sv->scalefactor + 4, height - 8, (showMs) 
? frame_to_smpte(t, m_samplerate) : frame_to_ms(t, m_samplerate));
        }
 }
 

Index: traverso/songcanvas/TimeLineView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TimeLineView.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- traverso/songcanvas/TimeLineView.h  11 Apr 2007 15:56:35 -0000      1.7
+++ traverso/songcanvas/TimeLineView.h  5 May 2007 20:54:03 -0000       1.8
@@ -59,6 +59,8 @@
        QColor          m_blinkColor;
        int             m_samplerate;
 
+       QHash<nframes_t, QString>       m_zooms;        
+
        void update_softselected_marker(QPoint pos);
        
        




reply via email to

[Prev in Thread] Current Thread [Next in Thread]