[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso resources/keymap.xml src/commands/CMak...
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso resources/keymap.xml src/commands/CMak... |
Date: |
Wed, 13 Feb 2008 23:02:17 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 08/02/13 23:02:17
Modified files:
resources : keymap.xml
src/commands : CMakeLists.txt MoveClip.cpp MoveClip.h
src/commands/plugins/TraversoCommands: TraversoCommands.cpp
src/core : AudioClipGroup.cpp AudioClipGroup.h
Log message:
* MoveClip now uses AudioClipGroup to
move/copy-move/fold-sheet/fold-track.
Currently not working: to_prev/next_snap() and moving to other tracks.
Suggestions anyone?
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/keymap.xml?cvsroot=traverso&r1=1.103&r2=1.104
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/CMakeLists.txt?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveClip.cpp?cvsroot=traverso&r1=1.64&r2=1.65
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveClip.h?cvsroot=traverso&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/plugins/TraversoCommands/TraversoCommands.cpp?cvsroot=traverso&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClipGroup.cpp?cvsroot=traverso&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClipGroup.h?cvsroot=traverso&r1=1.2&r2=1.3
Patches:
Index: resources/keymap.xml
===================================================================
RCS file: /sources/traverso/traverso/resources/keymap.xml,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -b -r1.103 -r1.104
--- resources/keymap.xml 13 Feb 2008 10:41:00 -0000 1.103
+++ resources/keymap.xml 13 Feb 2008 23:02:16 -0000 1.104
@@ -484,8 +484,8 @@
</keyfact>
<keyfact type="HKEY2" key1="D" key2="F" >
<Objects>
- <Object objectname="SheetView" mousehint="RL"
modes="All" sortorder="20" pluginname="TraversoCommands"
commandname="MultiMove" arguments="true" />
- <Object objectname="SheetView" mousehint="RL"
modes="All" sortorder="21" pluginname="TraversoCommands" modifierkeys="CTRL"
commandname="MultiMoveSingle" arguments="false" />
+ <Object objectname="TrackView" mousehint="LRUD"
modes="All" sortorder="20" pluginname="TraversoCommands" commandname="MoveClip"
arguments="fold_track" />
+ <Object objectname="SheetView" mousehint="LRUD"
modes="All" sortorder="21" pluginname="TraversoCommands" modifierkeys="CTRL"
commandname="MoveClip" arguments="fold_sheet" />
</Objects>
</keyfact>
<keyfact type="HKEY2" key1="Z" key2="V" >
Index: src/commands/CMakeLists.txt
===================================================================
RCS file: /sources/traverso/traverso/src/commands/CMakeLists.txt,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- src/commands/CMakeLists.txt 12 Feb 2008 10:52:39 -0000 1.8
+++ src/commands/CMakeLists.txt 13 Feb 2008 23:02:17 -0000 1.9
@@ -54,6 +54,10 @@
ADD_LIBRARY(${TRAVERSO_COMMANDS_LIBRARY} STATIC ${TRAVERSO_COMMANDS_SOURCES}
${TRAVERSO_COMMANDS_UI_SOURCES} ${TRAVERSO_COMMANDS_MOC_SOURCES})
+TARGET_LINK_LIBRARIES(traversocommands
+ traversocore
+)
+
IF(USE_PCH)
ADD_DEPENDENCIES(traversocommands precompiled_headers)
ENDIF(USE_PCH)
Index: src/commands/MoveClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveClip.cpp,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -b -r1.64 -r1.65
--- src/commands/MoveClip.cpp 13 Feb 2008 12:45:39 -0000 1.64
+++ src/commands/MoveClip.cpp 13 Feb 2008 23:02:17 -0000 1.65
@@ -24,8 +24,6 @@
#include "AudioClip.h"
#include "ContextPointer.h"
#include "InputEngine.h"
-#include "ProjectManager.h"
-#include "ResourcesManager.h"
#include "SnapList.h"
#include "Sheet.h"
#include "Track.h"
@@ -53,14 +51,14 @@
/**
* Creates a Move Clip or Copy Clip Command object.
*/
-MoveClip::MoveClip(AudioClipView* cv, QVariantList args)
- : Command(cv->get_clip(), "")
+MoveClip::MoveClip(ViewItem* view, QVariantList args)
+ : Command(view->get_context(), "")
, d(new Data)
{
- m_actionType = "move"; // default action!
+ QString action = "move"; // default action!
if (args.size() > 0) {
- m_actionType = args.at(0).toString();
+ action = args.at(0).toString();
}
if (args.size() > 1) {
d->verticalOnly = args.at(1).toBool();
@@ -68,29 +66,69 @@
d->verticalOnly = false;
}
- m_clip = cv->get_clip();
- d->view = cv;
- d->sv = d->view->get_sheetview();
- d->zoom = 0;
- m_sheet = d->sv->get_sheet();
- m_targetTrack = 0;
-
QString des;
- if (m_actionType == "copy") {
+ if (action == "copy") {
des = tr("Copy Clip");
- } else if (m_actionType == "move") {
+ m_actionType = COPY;
+ } else if (action == "move") {
des = tr("Move Clip");
- } else if (m_actionType == "move_to_start") {
+ m_actionType = MOVE;
+ } else if (action == "move_to_start") {
des = tr("Move Clip To Start");
- } else if (m_actionType == "move_to_end") {
+ m_actionType = MOVE_TO_START;
+ } else if (action == "move_to_end") {
des = tr("Move Clip To End");
+ m_actionType = MOVE_TO_END;
+ } else if (action == "fold_sheet") {
+ des = tr("Fold Sheet");
+ m_actionType = FOLD_SHEET;
+ } else if (action == "fold_track") {
+ des = tr("Fold Track");
+ m_actionType = FOLD_TRACK;
+ } else {
+ PERROR("MoveClip: Unknown action type: %s", QS_C(action));
}
setText(des);
- if (m_actionType == "move_to_start" || m_actionType == "move_to_end") {
- init_data();
+ if (m_actionType == FOLD_SHEET || m_actionType == FOLD_TRACK) {
+
+ TimeRef currentLocation =
TimeRef(cpointer().on_first_input_event_scene_x() * d->sv->timeref_scalefactor);
+
+ QList<AudioClip*> movingClips;
+ QList<Track*> tracks;
+
+ if (m_actionType == FOLD_TRACK) {
+ TrackView* tv = qobject_cast<TrackView*>(view);
+ Q_ASSERT(tv);
+ d->sv= tv->get_sheetview();
+ tracks.append(tv->get_track());
+ } else {
+ d->sv = qobject_cast<SheetView*>(view);
+ Q_ASSERT(d->sv);
+ tracks = d->sv->get_sheet()->get_tracks();
+ }
+
+ foreach(Track* track, tracks) {
+ QList<AudioClip*> clips = track->get_cliplist();
+ foreach(AudioClip* clip, clips) {
+ if (clip->get_track_end_location() >
currentLocation) {
+ movingClips.append(clip);
+ }
+ }
+ }
+
+ m_group.set_clips(movingClips);
+
+ } else {
+ AudioClipView* cv = qobject_cast<AudioClipView*>(view);
+ Q_ASSERT(cv);
+ d->sv = cv->get_sheetview();
+ m_group.add_clip(cv->get_clip());
}
+
+ d->zoom = 0;
+ m_sheet = d->sv->get_sheet();
}
@@ -104,34 +142,24 @@
}
}
-void MoveClip::init_data()
-{
- if (m_actionType == "copy") {
- m_clip = resources_manager()->get_clip(m_clip->get_id());
- m_clip->set_sheet(m_sheet);
- m_clip->set_track(d->view->get_clip()->get_track());
-
m_clip->set_track_start_location(m_clip->get_track_start_location() +
TimeRef(d->sv->timeref_scalefactor * 3));
-
- Command::process_command(m_clip->get_track()->add_clip(m_clip,
false));
- }
-
- m_clip->set_snappable(false);
- m_originTrack = m_targetTrack = m_clip->get_track();
- m_originalTrackStartLocation = m_clip->get_track_start_location();
- d->origTrackEndLocation = m_clip->get_track_end_location();
- d->origXPos = cpointer().on_first_input_event_scene_x();
- d->origPos = QPointF(d->origXPos,
cpointer().on_first_input_event_scene_y());
- d->sv->start_shuttle(true, true);
-}
-
-
int MoveClip::begin_hold()
{
- d->sv->stop_follow_play_head();
+ m_trackStartLocation = m_group.get_track_start_location();
- init_data();
+ if (m_actionType == COPY) {
+ // FIXME Memory leak here!
+ QList<AudioClip*> newclips = m_group.copy_clips();
+ m_group.set_clips(newclips);
+ m_group.add_all_clips_to_tracks();
+ m_group.move_to(m_trackStartLocation +
TimeRef(d->sv->timeref_scalefactor * 3));
+ }
- m_clip->set_as_moving(true);
+ m_group.set_snappable(false);
+ m_group.set_as_moving(true);
+
+ d->sv->stop_follow_play_head();
+ d->sv->start_shuttle(true, true);
+ d->sceneXStartPos = cpointer().on_first_input_event_scene_x();
return 1;
}
@@ -139,8 +167,8 @@
int MoveClip::finish_hold()
{
- m_clip->set_snappable(true);
- m_clip->set_as_moving(false);
+ m_group.set_snappable(true);
+ m_group.set_as_moving(false);
d->sv->start_shuttle(false);
@@ -156,17 +184,14 @@
delete d;
d = 0;
- if (m_actionType == "copy") {
- Command::process_command(m_targetTrack->remove_clip(m_clip,
false));
- Command::process_command(m_originTrack->remove_clip(m_clip,
false));
- } else {
- m_sheet->move_clip(m_targetTrack, m_originTrack, m_clip,
m_originalTrackStartLocation);
+ if (m_actionType == COPY) {
+ m_group.remove_all_clips_from_tracks();
}
- if (m_originTrack == m_targetTrack && m_posDiff == qint64(0) &&
- ! (m_actionType == "copy" || m_actionType == "move_to_start"
|| m_actionType == "move_to_end") ) {
+/* if (m_originTrack == m_targetTrack && m_posDiff == qint64(0) &&
+ ! (m_actionType == COPY || m_actionType == MOVE_TO_START ||
m_actionType == MOVE_TO_END) ) {
return -1;
- }
+ }*/
return 1;
}
@@ -175,17 +200,17 @@
int MoveClip::do_action()
{
PENTER;
- if (m_actionType == "move") {
- m_sheet->move_clip(m_originTrack, m_targetTrack, m_clip,
m_originalTrackStartLocation + m_posDiff);
+ if (m_actionType == MOVE || m_actionType == FOLD_SHEET || m_actionType
== FOLD_TRACK) {
+ m_group.move_to(m_trackStartLocation + m_posDiff);
}
- else if (m_actionType == "copy") {
- Command::process_command(m_targetTrack->add_clip(m_clip,
false));
- m_clip->set_track_start_location(m_originalTrackStartLocation +
m_posDiff);
+ else if (m_actionType == COPY) {
+ m_group.add_all_clips_to_tracks();
+ m_group.move_to(m_trackStartLocation + m_posDiff);
}
- else if (m_actionType == "move_to_start") {
+ else if (m_actionType == MOVE_TO_START) {
move_to_start(false);
}
- else if (m_actionType == "move_to_end") {
+ else if (m_actionType == MOVE_TO_END) {
move_to_end(false);
}
@@ -197,10 +222,10 @@
{
PENTER;
- if (m_actionType == "copy") {
- Command::process_command(m_targetTrack->remove_clip(m_clip,
false));
+ if (m_actionType == COPY) {
+ m_group.remove_all_clips_from_tracks();
} else {
- m_sheet->move_clip(m_targetTrack, m_originTrack, m_clip,
m_originalTrackStartLocation);
+ m_group.move_to(m_trackStartLocation);
}
return 1;
@@ -214,54 +239,44 @@
int MoveClip::jog()
{
- if (!m_clip) {
- return 0;
- }
-
-
if (d->zoom) {
d->zoom->jog();
return 0;
}
-
- QPointF diffPoint(cpointer().scene_pos() - d->origPos);
-
- d->origPos = cpointer().scene_pos();
-
+ // Detect if we moved up/down tracks.
+ // FIXME!
TrackView* trackView =
d->sv->get_trackview_under(cpointer().scene_pos());
if (trackView) {
- m_targetTrack = trackView->get_track();
}
- int newXPos = cpointer().scene_x();
-
- TimeRef diff_f = TimeRef((cpointer().scene_x() - d->origXPos) *
d->sv->timeref_scalefactor);
- if (d->verticalOnly) {
- diff_f = TimeRef();
+ // Calculate the distance moved based on the current scene x pos and
the initial one.
+ // Only assign if we the movements is allowed in horizontal direction
+ TimeRef diff_f;
+ if (!d->verticalOnly) {
+ diff_f = (cpointer().scene_x() - d->sceneXStartPos) *
d->sv->timeref_scalefactor;
}
+ // If the moved distance (diff_f) makes as go beyond the left most
position (== 0, or TimeRef())
+ // set the newTrackStartLocation to 0. Else calculate it based on the
original track start location
+ // and the distance moved.
TimeRef newTrackStartLocation;
- TimeRef newTrackEndLocation = d->origTrackEndLocation + diff_f;
-
- if (diff_f < TimeRef() && m_originalTrackStartLocation < (-1 * diff_f))
{
+ if (diff_f < TimeRef() && m_trackStartLocation < (-1 * diff_f)) {
newTrackStartLocation = qint64(0);
} else {
- newTrackStartLocation = m_originalTrackStartLocation + diff_f;
+ newTrackStartLocation = m_trackStartLocation + diff_f;
}
+ // substract the snap distance, if snap is turned on.
if (m_sheet->is_snap_on() && !d->verticalOnly) {
- newTrackStartLocation -=
m_sheet->get_snap_list()->calculate_snap_diff(newTrackStartLocation,
newTrackEndLocation);
+ newTrackStartLocation -=
m_sheet->get_snap_list()->calculate_snap_diff(newTrackStartLocation,
newTrackStartLocation + m_group.get_length());
}
- m_posDiff = newTrackStartLocation - m_originalTrackStartLocation;
-
- // store the new position only if the clip was moved, but not if it
stuck to a snap position
- if (m_originalTrackStartLocation != newTrackStartLocation) {
- d->origPos.setX(newXPos);
- }
+ // Now that the new track start location is known, the position diff
can be calculated
+ m_posDiff = newTrackStartLocation - m_trackStartLocation;
- m_sheet->move_clip(m_clip->get_track(), m_targetTrack, m_clip,
newTrackStartLocation);
+ // and used to move the group to it's new location.
+ m_group.move_to(m_trackStartLocation + m_posDiff);
d->sv->update_shuttle_factor();
@@ -278,14 +293,14 @@
Q_UNUSED(autorepeat);
ie().bypass_jog_until_mouse_movements_exceeded_manhattenlength();
- TimeRef trackStartLocation =
m_sheet->get_snap_list()->next_snap_pos(m_clip->get_track_start_location());
+/* TimeRef trackStartLocation =
m_sheet->get_snap_list()->next_snap_pos(m_clip->get_track_start_location());
TimeRef trackEndLocation =
m_sheet->get_snap_list()->next_snap_pos(m_clip->get_track_end_location());
qint64 startdiff = (trackStartLocation -
m_clip->get_track_start_location()).universal_frame();
qint64 enddiff = (trackEndLocation -
m_clip->get_track_end_location()).universal_frame();
qint64 diff = (abs(startdiff) < abs(enddiff)) ? startdiff : enddiff;
trackStartLocation = m_clip->get_track_start_location() + diff;
- m_posDiff = trackStartLocation - m_originalTrackStartLocation;
- m_clip->set_track_start_location(trackStartLocation);
+ m_posDiff = trackStartLocation - m_trackStartLocation;
+ m_clip->set_track_start_location(trackStartLocation);*/
}
void MoveClip::prev_snap_pos(bool autorepeat)
@@ -293,27 +308,27 @@
Q_UNUSED(autorepeat);
ie().bypass_jog_until_mouse_movements_exceeded_manhattenlength();
- TimeRef trackStartLocation =
m_sheet->get_snap_list()->prev_snap_pos(m_clip->get_track_start_location());
+/* TimeRef trackStartLocation =
m_sheet->get_snap_list()->prev_snap_pos(m_clip->get_track_start_location());
TimeRef trackEndLocation =
m_sheet->get_snap_list()->prev_snap_pos(m_clip->get_track_end_location());
qint64 startdiff = (trackStartLocation -
m_clip->get_track_start_location()).universal_frame();
qint64 enddiff = (trackEndLocation -
m_clip->get_track_end_location()).universal_frame();
qint64 diff = (abs(startdiff) < abs(enddiff)) ? startdiff : enddiff;
trackStartLocation = m_clip->get_track_start_location() + diff;
- m_posDiff = trackStartLocation - m_originalTrackStartLocation;
- m_clip->set_track_start_location(trackStartLocation);
+ m_posDiff = trackStartLocation - m_trackStartLocation;
+ m_clip->set_track_start_location(trackStartLocation);*/
}
void MoveClip::move_to_start(bool autorepeat)
{
Q_UNUSED(autorepeat)
- TimeRef location;
- m_clip->set_track_start_location(location);
+ TimeRef location; // location == 0
+ m_group.move_to(location);
}
void MoveClip::move_to_end(bool autorepeat)
{
Q_UNUSED(autorepeat)
-
m_clip->set_track_start_location(m_clip->get_sheet()->get_last_location());
+ m_group.move_to(m_sheet->get_last_location());
}
void MoveClip::start_zoom(bool autorepeat)
@@ -329,7 +344,7 @@
delete d->zoom;
d->zoom = 0;
cpointer().get_viewport()->set_holdcursor(":/cursorHoldLrud");
- d->origXPos -= int((d->origPos - cpointer().scene_pos()).x());
+ d->sceneXStartPos -= int((d->origPos -
cpointer().scene_pos()).x());
d->origPos = cpointer().scene_pos();
d->sv->start_shuttle(true, true);
}
Index: src/commands/MoveClip.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveClip.h,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- src/commands/MoveClip.h 13 Feb 2008 12:45:39 -0000 1.28
+++ src/commands/MoveClip.h 13 Feb 2008 23:02:17 -0000 1.29
@@ -26,12 +26,13 @@
#include <QPoint>
#include <defines.h>
+#include "AudioClipGroup.h"
class AudioClip;
class Sheet;
class Track;
class SheetView;
-class AudioClipView;
+class ViewItem;
class Zoom;
class MoveClip : public Command
@@ -42,7 +43,7 @@
Q_CLASSINFO("start_zoom", tr("Jog Zoom"));
public :
- MoveClip(AudioClipView* clipView, QVariantList args);
+ MoveClip(ViewItem* view, QVariantList args);
~MoveClip();
int begin_hold();
@@ -56,27 +57,30 @@
void set_cursor_shape(int useX, int useY);
private :
+ enum ActionType {
+ MOVE,
+ COPY,
+ FOLD_TRACK,
+ FOLD_SHEET,
+ MOVE_TO_START,
+ MOVE_TO_END
+ };
+
Sheet* m_sheet;
+ AudioClipGroup m_group;
AudioClip* m_clip;
- TimeRef m_originalTrackStartLocation;
+ TimeRef m_trackStartLocation;
TimeRef m_posDiff;
- Track* m_originTrack;
- Track* m_targetTrack;
- QString m_actionType;
+ ActionType m_actionType;
struct Data {
- int origXPos;
- TimeRef xoffset;
+ int sceneXStartPos;
SheetView* sv;
- AudioClipView* view;
QPointF origPos;
- TimeRef origTrackEndLocation;
- bool resync;
bool verticalOnly;
Zoom* zoom;
};
-
Data* d;
void init_data();
Index: src/commands/plugins/TraversoCommands/TraversoCommands.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/commands/plugins/TraversoCommands/TraversoCommands.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- src/commands/plugins/TraversoCommands/TraversoCommands.cpp 13 Feb 2008
12:45:40 -0000 1.25
+++ src/commands/plugins/TraversoCommands/TraversoCommands.cpp 13 Feb 2008
23:02:17 -0000 1.26
@@ -263,16 +263,16 @@
case MoveClipCommand:
{
- AudioClipView* view = qobject_cast<AudioClipView*>(obj);
+ ViewItem* view = qobject_cast<ViewItem*>(obj);
if (!view) {
PERROR("TraversoCommands: Supplied QObject was
not an AudioClipView! "
"MoveClipCommand needs an AudioClipView
as argument");
return 0;
}
- if (view->get_clip()->is_locked()) {
- return 0;
- }
+// if (view->get_clip()->is_locked()) {
+// return 0;
+// }
return new MoveClip(view, arguments);
}
Index: src/core/AudioClipGroup.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClipGroup.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- src/core/AudioClipGroup.cpp 13 Feb 2008 15:29:14 -0000 1.2
+++ src/core/AudioClipGroup.cpp 13 Feb 2008 23:02:17 -0000 1.3
@@ -22,6 +22,10 @@
#include "AudioClipGroup.h"
#include "AudioClip.h"
+#include "Command.h"
+#include "ProjectManager.h"
+#include "ResourcesManager.h"
+#include "Track.h"
#include "Debugger.h"
@@ -46,6 +50,12 @@
update_track_start_and_end_locations();
}
+void AudioClipGroup::set_clips(QList< AudioClip * > clips)
+{
+ m_clips = clips;
+ update_track_start_and_end_locations();
+}
+
void AudioClipGroup::move_to(TimeRef location)
{
foreach(AudioClip* clip, m_clips) {
@@ -82,3 +92,33 @@
clip->set_as_moving(move);
}
}
+
+QList<AudioClip*> AudioClipGroup::copy_clips()
+{
+ QList<AudioClip*> newclips;
+
+ foreach(AudioClip* clip, m_clips) {
+ AudioClip* newclip =
resources_manager()->get_clip(clip->get_id());
+ newclip->set_sheet(clip->get_sheet());
+ newclip->set_track(clip->get_track());
+
newclip->set_track_start_location(clip->get_track_start_location());
+ newclips.append(newclip);
+ }
+
+ return newclips;
+}
+
+void AudioClipGroup::add_all_clips_to_tracks()
+{
+ foreach(AudioClip* clip, m_clips) {
+ Command::process_command(clip->get_track()->add_clip(clip,
false));
+ }
+}
+
+void AudioClipGroup::remove_all_clips_from_tracks()
+{
+ foreach(AudioClip* clip, m_clips) {
+ Command::process_command(clip->get_track()->remove_clip(clip,
false));
+ }
+}
+
Index: src/core/AudioClipGroup.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClipGroup.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- src/core/AudioClipGroup.h 13 Feb 2008 15:29:14 -0000 1.2
+++ src/core/AudioClipGroup.h 13 Feb 2008 23:02:17 -0000 1.3
@@ -33,11 +33,16 @@
AudioClipGroup(QList<AudioClip*> clips);
void add_clip(AudioClip* clip);
+ void set_clips(QList<AudioClip*> clips);
void move_to(TimeRef location);
void set_snappable(bool snap);
void set_as_moving(bool move);
+ QList<AudioClip*> copy_clips();
+ void add_all_clips_to_tracks();
+ void remove_all_clips_from_tracks();
+
TimeRef get_track_start_location() const {return m_trackStartLocation;}
TimeRef get_track_end_location() const {return m_trackEndLocation;}
TimeRef get_length() const {return m_trackEndLocation -
m_trackStartLocation;}
- [Traverso-commit] traverso resources/keymap.xml src/commands/CMak...,
Remon Sijrier <=