[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src/commands MoveClip.cpp MoveClip.h
From: |
Ben Levitt |
Subject: |
[Traverso-commit] traverso/src/commands MoveClip.cpp MoveClip.h |
Date: |
Fri, 21 Nov 2008 16:12:30 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Ben Levitt <benjie> 08/11/21 16:12:30
Modified files:
src/commands : MoveClip.cpp MoveClip.h
Log message:
Improve Fold Sheet to move markers while dragging
Fix a segv when folding a sheet from the timelineView
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveClip.cpp?cvsroot=traverso&r1=1.76&r2=1.77
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveClip.h?cvsroot=traverso&r1=1.34&r2=1.35
Patches:
Index: MoveClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveClip.cpp,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -b -r1.76 -r1.77
--- MoveClip.cpp 21 Nov 2008 06:41:05 -0000 1.76
+++ MoveClip.cpp 21 Nov 2008 16:12:29 -0000 1.77
@@ -111,7 +111,23 @@
TimeRef currentLocation =
TimeRef(cpointer().on_first_input_event_scene_x() * d->sv->timeref_scalefactor);
+ if (d->sv->get_trackview_under(cpointer().scene_pos())) {
d->pointedTrackIndex =
d->sv->get_trackview_under(cpointer().scene_pos())->get_track()->get_sort_index();
+ } else {
+ d->pointedTrackIndex = 0;
+ }
+
+ if (m_actionType == FOLD_SHEET) {
+ QList<Marker*> movingMarkers =
d->sv->get_sheet()->get_timeline()->get_markers();
+ foreach(Marker* marker, movingMarkers) {
+ if (marker->get_when() > currentLocation) {
+ MarkerAndOrigin markerAndOrigin;
+ markerAndOrigin.marker = marker;
+ markerAndOrigin.origin =
marker->get_when();
+ m_markers.append(markerAndOrigin);
+ }
+ }
+ }
if (m_actionType == FOLD_SHEET) {
QList<Marker*> movingMarkers =
d->sv->get_sheet()->get_timeline()->get_markers();
@@ -237,8 +253,8 @@
}
if (m_actionType == FOLD_SHEET) {
- foreach(Marker* marker, m_markers) {
- marker->set_when(marker->get_when() + m_posDiff);
+ foreach(MarkerAndOrigin markerAndOrigin, m_markers) {
+ markerAndOrigin.marker->set_when(markerAndOrigin.origin
+ m_posDiff);
}
}
@@ -257,8 +273,8 @@
}
if (m_actionType == FOLD_SHEET) {
- foreach(Marker* marker, m_markers) {
- marker->set_when(marker->get_when() - m_posDiff);
+ foreach(MarkerAndOrigin markerAndOrigin, m_markers) {
+
markerAndOrigin.marker->set_when(markerAndOrigin.origin);
}
}
@@ -315,6 +331,13 @@
// and used to move the group to it's new location.
m_group.move_to(m_newTrackIndex, m_trackStartLocation + m_posDiff);
+ // and used to move the markers
+ if (m_actionType == FOLD_SHEET) {
+ foreach(MarkerAndOrigin markerAndOrigin, m_markers) {
+ markerAndOrigin.marker->set_when(markerAndOrigin.origin
+ m_posDiff);
+ }
+ }
+
d->sv->update_shuttle_factor();
cpointer().get_viewport()->set_holdcursor_pos(d->sv->get_clips_viewport()->mapToScene(cpointer().pos()).toPoint());
Index: MoveClip.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveClip.h,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- MoveClip.h 21 Nov 2008 06:41:06 -0000 1.34
+++ MoveClip.h 21 Nov 2008 16:12:30 -0000 1.35
@@ -36,6 +36,11 @@
class ViewItem;
class Zoom;
+typedef struct {
+ Marker* marker;
+ TimeRef origin;
+} MarkerAndOrigin;
+
class MoveClip : public Command
{
Q_OBJECT
@@ -74,7 +79,7 @@
Sheet* m_sheet;
AudioClipGroup m_group;
- QList<Marker*> m_markers;
+ QList<MarkerAndOrigin> m_markers;
TimeRef m_trackStartLocation;
TimeRef m_posDiff;
ActionType m_actionType;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso/src/commands MoveClip.cpp MoveClip.h,
Ben Levitt <=