traverso-commit
[Top][All Lists]
Advanced

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

[Traverso-commit] traverso resources/keymap.xml src/commands/Spli...


From: Remon Sijrier
Subject: [Traverso-commit] traverso resources/keymap.xml src/commands/Spli...
Date: Wed, 25 Apr 2007 21:23:41 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/04/25 21:23:41

Modified files:
        resources      : keymap.xml 
        src/commands   : SplitClip.cpp SplitClip.h 
        src/traverso/ui: PluginSelectorDialog.ui 

Log message:
        * implemented [ X ], let's see how it works out. I think I like it more 
then
        first setting work cursor and then splitting

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/keymap.xml?cvsroot=traverso&r1=1.59&r2=1.60
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/SplitClip.cpp?cvsroot=traverso&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/SplitClip.h?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/PluginSelectorDialog.ui?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.59
retrieving revision 1.60
diff -u -b -r1.59 -r1.60
--- resources/keymap.xml        25 Apr 2007 13:48:14 -0000      1.59
+++ resources/keymap.xml        25 Apr 2007 21:23:40 -0000      1.60
@@ -375,6 +375,11 @@
                                <Object objectname="SongView" mousehint="UD" 
modes="All" sortorder="7" pluginname="TraversoCommands" commandname="ArmTracks" 
 arguments="" />
                        </Objects>
                </keyfact>
+               <keyfact type="HKEY" key1="X" >
+                       <Objects>
+                               <Object objectname="AudioClipView" modes="All" 
sortorder="15" pluginname="TraversoCommands" commandname="SplitClip" />
+                       </Objects>
+               </keyfact>
                
                
                

Index: src/commands/SplitClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/SplitClip.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- src/commands/SplitClip.cpp  2 Apr 2007 21:05:43 -0000       1.17
+++ src/commands/SplitClip.cpp  25 Apr 2007 21:23:40 -0000      1.18
@@ -24,28 +24,52 @@
 #include <libtraversocore.h>
 #include <SongView.h>
 #include <AudioClipView.h>
+#include <QGraphicsLineItem>
+#include <ViewItem.h>
 
 // Always put me below _all_ includes, this is needed
 // in case we run with memory leak detection enabled!
 #include "Debugger.h"
 
+class SplitCursor : public ViewItem
+{
+       Q_OBJECT
+public:
+               
+       SplitCursor(ViewItem* parent)
+       : ViewItem(parent, 0) 
+       {
+               m_boundingRect = QRectF(0, 0, 1, 
parent->boundingRect().height());
+       }
+       void paint(QPainter* painter, const QStyleOptionGraphicsItem*, 
QWidget*) 
+       {
+               painter->drawLine(0, 0, 0, (int)m_boundingRect.height());
+       }
+};
+
+#include "SplitClip.moc"
+
 SplitClip::SplitClip(AudioClipView* view)
        : Command(view->get_clip(), tr("Split Clip"))
 {
        m_clip = view->get_clip();
        m_sv = view->get_songview();
+       m_cv = view;
        m_track = m_clip->get_track();
        leftClip = 0;
        rightClip = 0;
+       m_splitPoint = 0;
        Q_ASSERT(m_clip->get_song());
 }
 
 
 int SplitClip::prepare_actions()
 {
-       nframes_t splitPoint = cpointer().scene_x() * m_sv->scalefactor;
+       if (! m_splitPoint) {
+               m_splitPoint = cpointer().scene_x() * m_sv->scalefactor;
+       }
 
-       if (splitPoint <= m_clip->get_track_start_frame() || splitPoint >= 
m_clip->get_track_start_frame() + m_clip->get_length()) {
+       if (m_splitPoint <= m_clip->get_track_start_frame() || m_splitPoint >= 
m_clip->get_track_start_frame() + m_clip->get_length()) {
                return -1;
        }
 
@@ -54,11 +78,11 @@
        
        leftClip->set_song(m_clip->get_song());
        leftClip->set_track_start_frame( m_clip->get_track_start_frame() );
-       leftClip->set_right_edge(splitPoint);
+       leftClip->set_right_edge(m_splitPoint);
        
        rightClip->set_song(m_clip->get_song());
-       rightClip->set_left_edge(splitPoint);
-       rightClip->set_track_start_frame( splitPoint);
+       rightClip->set_left_edge(m_splitPoint);
+       rightClip->set_track_start_frame(m_splitPoint);
 
        return 1;
 }
@@ -94,5 +118,57 @@
        return 1;
 }
 
+int SplitClip::begin_hold()
+{
+       m_sv->start_shuttle(true, true);
+       m_splitcursor = new SplitCursor(m_cv);
+       return 1;
+}
+
+int SplitClip::finish_hold()
+{
+       delete m_splitcursor;
+       m_cv->update();
+       m_sv->start_shuttle(false);
+       return 1;
+}
+
+void SplitClip::cancel_action()
+{
+       finish_hold();
+}
+
+void SplitClip::set_cursor_shape(int useX, int useY)
+{
+       Q_UNUSED(useX);
+       Q_UNUSED(useY);
+       
+       cpointer().get_viewport()->set_holdcursor(":/cursorHoldLr");
+}
+
+
+int SplitClip::jog()
+{
+       int x = cpointer().scene_x();
+
+       if (x < 0) {
+               x = 0;
+       }
+
+       m_splitPoint = x * m_sv->scalefactor;
+
+       if (m_clip->get_song()->is_snap_on()) {
+               SnapList* slist = m_clip->get_song()->get_snap_list();
+               m_splitPoint = slist->get_snap_value(m_splitPoint);
+       }
+       
+       m_splitcursor->setPos(m_splitPoint / m_sv->scalefactor, 0);
+       m_sv->update_shuttle_factor();
+       
cpointer().get_viewport()->set_holdcursor_text(frame_to_smpte(m_splitPoint, 
m_clip->get_song()->get_rate()));
+       
cpointer().get_viewport()->set_holdcursor_pos(QPoint(cpointer().scene_x() - 16, 
cpointer().scene_y() - 16));
+       
+       return 1;
+}
+
 // eof
 

Index: src/commands/SplitClip.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/SplitClip.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- src/commands/SplitClip.h    16 Mar 2007 00:09:43 -0000      1.3
+++ src/commands/SplitClip.h    25 Apr 2007 21:23:40 -0000      1.4
@@ -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: SplitClip.h,v 1.3 2007/03/16 00:09:43 r_sijrier Exp $
+    $Id: SplitClip.h,v 1.4 2007/04/25 21:23:40 r_sijrier Exp $
 */
 
 #ifndef SPLITCLIPACTION_H
@@ -30,6 +30,7 @@
 class Track;
 class SongView;
 class AudioClipView;
+class SplitCursor;
 
 class SplitClip : public Command
 {
@@ -41,12 +42,22 @@
         int do_action();
         int undo_action();
 
+       int begin_hold();
+       int finish_hold();
+       void cancel_action();
+       void set_cursor_shape(int useX, int useY);
+
+       int jog();
+       
 private :
        SongView* m_sv;
+       AudioClipView* m_cv;
         Track* m_track;
         AudioClip* m_clip;
         AudioClip* leftClip;
         AudioClip* rightClip;
+       nframes_t m_splitPoint;
+       SplitCursor* m_splitcursor;
 };
 
 #endif

Index: src/traverso/ui/PluginSelectorDialog.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/PluginSelectorDialog.ui,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- src/traverso/ui/PluginSelectorDialog.ui     25 Apr 2007 17:49:24 -0000      
1.2
+++ src/traverso/ui/PluginSelectorDialog.ui     25 Apr 2007 21:23:40 -0000      
1.3
@@ -10,7 +10,7 @@
    </rect>
   </property>
   <property name="windowTitle" >
-   <string>Dialog</string>
+   <string>Plugin Selector</string>
   </property>
   <layout class="QVBoxLayout" >
    <property name="margin" >




reply via email to

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