[Top][All Lists]
[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" >
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso resources/keymap.xml src/commands/Spli...,
Remon Sijrier <=