[Top][All Lists]
[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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso/src core/Marker.cpp core/Marker.h core...,
Nicola Doebelin <=