[Top][All Lists]
[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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso/src core/Utils.cpp core/ViewPort.cpp t...,
Ben Levitt <=