traverso-commit
[Top][All Lists]
Advanced

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

[Traverso-commit] traverso/src commands/MoveClip.cpp commands/Mov...


From: Remon Sijrier
Subject: [Traverso-commit] traverso/src commands/MoveClip.cpp commands/Mov...
Date: Thu, 05 Apr 2007 17:53:48 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/04/05 17:53:48

Modified files:
        src/commands   : MoveClip.cpp MoveClip.h 
        src/core       : Song.cpp Song.h Track.cpp Track.h 

Log message:
        * Added convenience function Song::move_clip()
        * fixed scrollbar weirdness when moving/copying a clip
        * MoveClip updated, though the un/redo functions could still be a 
little better coded...

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveClip.cpp?cvsroot=traverso&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveClip.h?cvsroot=traverso&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.cpp?cvsroot=traverso&r1=1.77&r2=1.78
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.h?cvsroot=traverso&r1=1.41&r2=1.42
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Track.cpp?cvsroot=traverso&r1=1.47&r2=1.48
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Track.h?cvsroot=traverso&r1=1.26&r2=1.27

Patches:
Index: commands/MoveClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveClip.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- commands/MoveClip.cpp       2 Apr 2007 21:05:43 -0000       1.27
+++ commands/MoveClip.cpp       5 Apr 2007 17:53:48 -0000       1.28
@@ -84,7 +84,7 @@
        
        d->view = cv;
        d->sv = d->view->get_songview();
-       d->song = d->sv->get_song();
+       m_song = d->sv->get_song();
        m_targetTrack = 0;
 
        if (m_actionType == "move_to_start" ||
@@ -162,7 +162,8 @@
 {
        if (m_actionType == "copy") {
                d->newclip = 
resources_manager()->get_clip(d->view->get_clip()->get_id());
-               d->newclip->set_song(d->song);
+               d->newclip->set_song(m_song);
+               d->newclip->set_track(d->view->get_clip()->get_track());
                
d->newclip->set_track_start_frame(d->view->get_clip()->get_track_start_frame() 
+ d->xoffset);
                
                printf("Orig Clip has id %lld\n", 
d->view->get_clip()->get_id());
@@ -218,11 +219,8 @@
 
        if (!m_targetTrack) {
                Command::process_command(m_originTrack->remove_clip(m_clip, 
false));
-               m_targetTrack = (Track*) 0;
        } else {
-               Command::process_command(m_originTrack->remove_clip(m_clip, 
false));
-               m_clip->set_track_start_frame(m_originalTrackFirstFrame + 
m_posDiff);
-               Command::process_command(m_targetTrack->add_clip(m_clip, 
false));
+               m_song->move_clip(m_originTrack, m_targetTrack, m_clip, 
m_originalTrackFirstFrame + m_posDiff);
        }
        
        if (m_actionType == "copy") {
@@ -282,8 +280,7 @@
        
 //     printf("newPos x, y is %f, %f\n", newPos.x(), newPos.y());
        
-       if (m_actionType != "anchored_left_edge_move" && m_actionType != 
"anchored_right_edge_move")
-       {
+       if (m_actionType != "anchored_left_edge_move" && m_actionType != 
"anchored_right_edge_move") {
                TrackView* trackView = 
d->sv->get_trackview_under(cpointer().scene_pos());
                if (!trackView) {
        //              printf("no trackview returned\n");
@@ -314,9 +311,9 @@
        int snapEndDiff = 0;
        int snapDiff = 0;
 
-       if (d->song->is_snap_on()) {
+       if (m_song->is_snap_on()) {
 
-               SnapList* slist = d->song->get_snap_list();
+               SnapList* slist = m_song->get_snap_list();
 
                // check if there is anything to snap
                bool start_snapped = false;

Index: commands/MoveClip.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveClip.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- commands/MoveClip.h 29 Mar 2007 21:09:42 -0000      1.13
+++ commands/MoveClip.h 5 Apr 2007 17:53:48 -0000       1.14
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: MoveClip.h,v 1.13 2007/03/29 21:09:42 benjie Exp $
+    $Id: MoveClip.h,v 1.14 2007/04/05 17:53:48 r_sijrier Exp $
 */
 
 #ifndef MOVECLIPACTION_H
@@ -52,6 +52,7 @@
         int jog();
        
 private :
+       Song*           m_song;
         AudioClip*     m_clip;
         nframes_t      m_originalTrackFirstFrame;
         nframes_t      m_posDiff;
@@ -65,7 +66,6 @@
                int             hScrollbarValue;
                int             xoffset;
                AudioClip*      newclip;
-               Song*           song;
                SongView*       sv;
                AudioClipView*  view;
                QPoint          origPos;

Index: core/Song.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.cpp,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -b -r1.77 -r1.78
--- core/Song.cpp       4 Apr 2007 10:09:22 -0000       1.77
+++ core/Song.cpp       5 Apr 2007 17:53:48 -0000       1.78
@@ -903,5 +903,18 @@
        return 0;
 }
 
+void Song::move_clip(Track * from, Track * too, AudioClip * clip, nframes_t 
pos)
+{
+       if (from == too) {
+               clip->set_track_start_frame(pos);
+               return;
+       }
+       
+       Command::process_command(from->remove_clip(clip, false, true));
+       Command::process_command(too->add_clip(clip, false, true));
+
+       clip->set_track_start_frame(pos);
+}
+
 // eof
 

Index: core/Song.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.h,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -b -r1.41 -r1.42
--- core/Song.h 5 Apr 2007 13:15:39 -0000       1.41
+++ core/Song.h 5 Apr 2007 17:53:48 -0000       1.42
@@ -107,6 +107,7 @@
        
        void solo_track(Track* track);
        void create(int tracksToCreate);
+       void move_clip(Track* from, Track* too, AudioClip* clip, nframes_t pos);
        Command* add_track(Track* track, bool historable=true);
        Command* remove_track(Track* track, bool historable=true);
        

Index: core/Track.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Track.cpp,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- core/Track.cpp      4 Apr 2007 12:08:57 -0000       1.47
+++ core/Track.cpp      5 Apr 2007 17:53:48 -0000       1.48
@@ -209,10 +209,12 @@
 }
 
 
-Command* Track::remove_clip(AudioClip* clip, bool historable)
+Command* Track::remove_clip(AudioClip* clip, bool historable, bool ismove)
 {
        PENTER;
+       if (! ismove) {
        m_song->get_audioclip_manager()->remove_clip(clip);
+       }
        return new AddRemove(this, clip, historable, m_song,
                "private_remove_clip(AudioClip*)", 
"audioClipRemoved(AudioClip*)",
                "private_add_clip(AudioClip*)", "audioClipAdded(AudioClip*)", 
@@ -220,11 +222,13 @@
 }
 
 
-Command* Track::add_clip(AudioClip* clip, bool historable)
+Command* Track::add_clip(AudioClip* clip, bool historable, bool ismove)
 {
        PENTER;
        clip->set_track(this);
+       if (! ismove) {
        m_song->get_audioclip_manager()->add_clip(clip);
+       }
        return new AddRemove(this, clip, historable, m_song,
                "private_add_clip(AudioClip*)", "audioClipAdded(AudioClip*)",
                "private_remove_clip(AudioClip*)", 
"audioClipRemoved(AudioClip*)", 

Index: core/Track.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Track.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- core/Track.h        3 Apr 2007 14:18:54 -0000       1.26
+++ core/Track.h        5 Apr 2007 17:53:48 -0000       1.27
@@ -54,10 +54,10 @@
 
        static const int INITIAL_HEIGHT = 100;
 
-       Command* add_clip(AudioClip* clip, bool historable=true);
+       Command* add_clip(AudioClip* clip, bool historable=true, bool 
ismove=false);
        Command* add_plugin(Plugin* plugin);
 
-       Command* remove_clip(AudioClip* clip, bool historable=true);
+       Command* remove_clip(AudioClip* clip, bool historable=true, bool 
ismove=false);
        Command* remove_plugin(Plugin* plugin);
        
        Command* init_recording();




reply via email to

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