traverso-commit
[Top][All Lists]
Advanced

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

[Traverso-commit] traverso/src core/Marker.cpp core/Marker.h core...


From: Nicola Doebelin
Subject: [Traverso-commit] traverso/src core/Marker.cpp core/Marker.h core...
Date: Wed, 05 Nov 2008 00:42:22 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Nicola Doebelin <n_doebelin>    08/11/05 00:42:22

Modified files:
        src/core       : Marker.cpp Marker.h TimeLine.cpp TimeLine.h 
        src/sheetcanvas: MarkerView.cpp 

Log message:
        * auto-numbering of markers. Closes bug #19734

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Marker.cpp?cvsroot=traverso&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Marker.h?cvsroot=traverso&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/TimeLine.cpp?cvsroot=traverso&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/TimeLine.h?cvsroot=traverso&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/traverso/src/sheetcanvas/MarkerView.cpp?cvsroot=traverso&r1=1.3&r2=1.4

Patches:
Index: core/Marker.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Marker.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- core/Marker.cpp     21 Feb 2008 20:00:48 -0000      1.21
+++ core/Marker.cpp     5 Nov 2008 00:42:22 -0000       1.22
@@ -45,6 +45,7 @@
        m_isrc = "";
        m_preemph = 0;
        m_copyprotect = 0;
+       m_index = -1;
 }
 
 Marker::Marker(TimeLine * tl, const QDomNode node)
@@ -172,3 +173,8 @@
        return m_copyprotect;
 }
 
+void Marker::set_index(int i)
+{
+       m_index = i;
+       emit indexChanged();
+}

Index: core/Marker.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Marker.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- core/Marker.h       21 Feb 2008 20:00:48 -0000      1.18
+++ core/Marker.h       5 Nov 2008 00:42:22 -0000       1.19
@@ -56,6 +56,7 @@
        void set_isrc(const QString &);
        void set_preemphasis(bool);
        void set_copyprotect(bool);
+       void set_index(int);
 
        TimeLine * get_timeline() const {return m_timeline;}
        TimeRef get_when() const {return m_when;}
@@ -69,6 +70,7 @@
        bool get_preemphasis();
        bool get_copyprotect();
        Type get_type() {return m_type;};
+       int get_index() {return m_index;};
        
 
 public slots:
@@ -88,10 +90,12 @@
        bool    m_preemph,
                m_copyprotect;
        Type    m_type;
+       int     m_index;
        
 signals:
        void positionChanged();
        void descriptionChanged();
+       void indexChanged();
 };
 
 #endif

Index: core/TimeLine.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/TimeLine.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- core/TimeLine.cpp   25 May 2008 14:55:26 -0000      1.18
+++ core/TimeLine.cpp   5 Nov 2008 00:42:22 -0000       1.19
@@ -65,7 +65,7 @@
                markerNode = markerNode.nextSibling();
        }
 
-       qSort(m_markers.begin(), m_markers.end(), smallerMarker);
+       index_markers();
        
        return 1;
 }
@@ -109,12 +109,13 @@
 void TimeLine::private_add_marker(Marker * marker)
 {
        m_markers.append(marker);
-       qSort(m_markers.begin(), m_markers.end(), smallerMarker);
+       index_markers();
 }
 
 void TimeLine::private_remove_marker(Marker * marker)
 {
        m_markers.removeAll(marker);
+       index_markers();
 }
 
 Marker * TimeLine::get_marker(qint64 id)
@@ -176,7 +177,8 @@
 
 void TimeLine::marker_position_changed()
 {
-       qSort(m_markers.begin(), m_markers.end(), smallerMarker);
+       index_markers();
+
        emit markerPositionChanged();
        
        // FIXME This is not a fix to let the sheetview scrollbars 
@@ -184,3 +186,12 @@
        emit m_sheet->lastFramePositionChanged();
 }
 
+void TimeLine::index_markers()
+{
+       qSort(m_markers.begin(), m_markers.end(), smallerMarker);
+       // let the markers know about their position (index)
+       for (int i = 0; i < m_markers.size(); i++) {
+               m_markers.at(i)->set_index(i+1);
+       }       
+}
+

Index: core/TimeLine.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/TimeLine.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- core/TimeLine.h     25 May 2008 14:55:26 -0000      1.14
+++ core/TimeLine.h     5 Nov 2008 00:42:22 -0000       1.15
@@ -57,6 +57,7 @@
 private:
        Sheet* m_sheet;
        QList<Marker*> m_markers;
+       void index_markers();
 
 private slots:
        void private_add_marker(Marker* marker);

Index: sheetcanvas/MarkerView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/sheetcanvas/MarkerView.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- sheetcanvas/MarkerView.cpp  21 Feb 2008 20:00:48 -0000      1.3
+++ sheetcanvas/MarkerView.cpp  5 Nov 2008 00:42:22 -0000       1.4
@@ -59,6 +59,7 @@
        
        connect(m_marker, SIGNAL(positionChanged()), this, 
SLOT(update_position()));
        connect(m_marker, SIGNAL(descriptionChanged()), this, 
SLOT(update_drawing()));
+       connect(m_marker, SIGNAL(indexChanged()), this, SLOT(update_drawing()));
 }
 
 void MarkerView::paint(QPainter * painter, const QStyleOptionGraphicsItem * 
option, QWidget * widget)
@@ -86,7 +87,11 @@
                        QPointF((m_width+ 0.5)/2, m_ascent) };
 
        painter->drawPolygon(pts, 3);
+       if (m_marker->get_type() == Marker::ENDMARKER) {
        painter->drawText(m_width + 1, m_ascent, m_marker->get_description());
+       } else {
+               painter->drawText(m_width + 1, m_ascent, QString("%1: 
%2").arg(m_marker->get_index()).arg(m_marker->get_description()));
+       }
 
        if (m_dragging) {
                m_posIndicator->set_value(timeref_to_text(TimeRef((x() + 
m_width / 2) * m_sv->timeref_scalefactor), m_sv->timeref_scalefactor));
@@ -100,8 +105,16 @@
        prepareGeometryChange();
        update_position();
        
+       QString desc;
+       if (m_marker->get_type() == Marker::ENDMARKER) {
+               desc = m_marker->get_description();
+       } else {
+               desc = QString("%1: 
%2").arg(m_marker->get_index()).arg(m_marker->get_description());
+       }
+
+
        QFontMetrics fm(themer()->get_font("Timeline:fontscale:marker"));
-       int descriptionwidth = fm.width(m_marker->get_description()) + 1;
+       int descriptionwidth = fm.width(desc) + 1;
 
        m_line->set_bounding_rect(QRectF(0, 0, 1, 
m_sv->get_clips_viewport()->sceneRect().height()));
        m_line->setPos(m_width / 2, m_ascent);




reply via email to

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