[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso resources/keymap.xml src/traverso/song...
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso resources/keymap.xml src/traverso/song... |
Date: |
Mon, 26 Nov 2007 19:16:30 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/11/26 19:16:30
Modified files:
resources : keymap.xml
src/traverso/songcanvas: CurveView.cpp CurveView.h
Log message:
* Added [ D V ] for vertical node moving
* also show gain decrease when using scroll wheel, up/down arrow keys
during node drag.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/keymap.xml?cvsroot=traverso&r1=1.89&r2=1.90
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/CurveView.cpp?cvsroot=traverso&r1=1.70&r2=1.71
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/CurveView.h?cvsroot=traverso&r1=1.17&r2=1.18
Patches:
Index: resources/keymap.xml
===================================================================
RCS file: /sources/traverso/traverso/resources/keymap.xml,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -b -r1.89 -r1.90
--- resources/keymap.xml 26 Nov 2007 18:39:58 -0000 1.89
+++ resources/keymap.xml 26 Nov 2007 19:16:29 -0000 1.90
@@ -439,6 +439,12 @@
<Object objectname="Song" modes="All"
sortorder="4" pluginname="TraversoCommands" commandname="Gain" />
</Objects>
</keyfact>
+ <keyfact type="HKEY2" key1="D" key2="V" >
+ <Objects>
+ <Object objectname="CurveView" mousehint="UD"
slotsignature="drag_node_vertical_only" modes="Effects" sortorder="4" />
+ </Objects>
+ </keyfact>
+
<keyfact type="D_FKEY" key1="T" >
Index: src/traverso/songcanvas/CurveView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/CurveView.cpp,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -b -r1.70 -r1.71
--- src/traverso/songcanvas/CurveView.cpp 26 Nov 2007 18:58:07 -0000
1.70
+++ src/traverso/songcanvas/CurveView.cpp 26 Nov 2007 19:16:29 -0000
1.71
@@ -40,7 +40,12 @@
#define NODE_SOFT_SELECTION_DISTANCE 40
-DragNode::DragNode(CurveNode* node, CurveView* curveview, qint64 scalefactor,
TimeRef rangeMin, TimeRef rangeMax, const QString& des)
+DragNode::DragNode(CurveNode* node,
+ CurveView* curveview,
+ qint64 scalefactor,
+ TimeRef rangeMin,
+ TimeRef rangeMax,
+ const QString& des)
: Command(curveview->get_context(), des)
, d(new Private)
{
@@ -49,6 +54,12 @@
d->rangeMax = rangeMax;
d->curveView = curveview;
d->scalefactor = scalefactor;
+ d->verticalOnly = false;
+}
+
+void DragNode::set_vertical_only()
+{
+ d->verticalOnly = true;
}
int DragNode::prepare_actions()
@@ -93,13 +104,13 @@
void DragNode::move_up(bool )
{
m_newValue = m_newValue + ( 1 / d->curveView->boundingRect().height());
- do_action();
+ calculate_and_set_node_values();
}
void DragNode::move_down(bool )
{
m_newValue = m_newValue - ( 1 / d->curveView->boundingRect().height());
- do_action();
+ calculate_and_set_node_values();
}
void DragNode::set_cursor_shape(int useX, int useY)
@@ -117,7 +128,9 @@
d->mousepos = mousepos;
+ if (!d->verticalOnly) {
m_newWhen = m_newWhen + dx * d->scalefactor;
+ }
m_newValue = m_newValue - ( dy / d->curveView->boundingRect().height());
TimeRef startoffset = d->curveView->get_start_offset();
@@ -128,6 +141,11 @@
m_newWhen = startoffset.universal_frame();
}
+ return calculate_and_set_node_values();
+}
+
+int DragNode::calculate_and_set_node_values()
+{
if (m_newValue < 0.0) {
m_newValue = 0.0;
}
@@ -154,6 +172,7 @@
}
+
CurveView::CurveView(SongView* sv, ViewItem* parentViewItem, Curve* curve)
: ViewItem(parentViewItem, curve)
, m_curve(curve)
@@ -542,6 +561,21 @@
return ie().did_not_implement();
}
+
+Command * CurveView::drag_node_vertical_only()
+{
+ DragNode* drag = qobject_cast<DragNode*>(drag_node());
+
+ if (!drag) {
+ return 0;
+ }
+
+ drag->set_vertical_only();
+
+ return drag;
+}
+
+
void CurveView::node_moved( )
{
if (!m_blinkingNode) {
@@ -629,3 +663,4 @@
return group;
}
+
Index: src/traverso/songcanvas/CurveView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/CurveView.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- src/traverso/songcanvas/CurveView.h 26 Nov 2007 18:58:07 -0000 1.17
+++ src/traverso/songcanvas/CurveView.h 26 Nov 2007 19:16:29 -0000 1.18
@@ -39,8 +39,13 @@
Q_CLASSINFO("move_up", tr("Move Up"));
Q_CLASSINFO("move_down", tr("Move Down"));
- public:
- DragNode(CurveNode* node, CurveView* curveview, qint64
scalefactor, TimeRef rangeMin, TimeRef rangeMax, const QString& des);
+public:
+ DragNode(CurveNode* node,
+ CurveView* curveview,
+ qint64 scalefactor,
+ TimeRef rangeMin,
+ TimeRef rangeMax,
+ const QString& des);
int prepare_actions();
int do_action();
@@ -50,8 +55,9 @@
int begin_hold();
int jog();
void set_cursor_shape(int useX, int useY);
+ void set_vertical_only();
- private :
+private :
class Private {
public:
CurveView* curveView;
@@ -59,6 +65,7 @@
TimeRef rangeMin;
TimeRef rangeMax;
QPoint mousepos;
+ bool verticalOnly;
};
Private* d;
@@ -68,8 +75,10 @@
double m_newWhen;
double m_newValue;
+ int calculate_and_set_node_values();
- public slots:
+
+public slots:
void move_up(bool autorepeat);
void move_down(bool autorepeat);
};
@@ -82,6 +91,7 @@
Q_CLASSINFO("remove_node", tr("Remove node"))
Q_CLASSINFO("remove_all_nodes", tr("Remove all Nodes"))
Q_CLASSINFO("drag_node", tr("Move node"))
+ Q_CLASSINFO("drag_node_vertical_only", tr("Move node (vertical only)"))
public:
CurveView(SongView* sv, ViewItem* parentViewItem, Curve* curve);
@@ -123,6 +133,7 @@
Command* remove_node();
Command* remove_all_nodes();
Command* drag_node();
+ Command* drag_node_vertical_only();
private slots:
void add_curvenode_view(CurveNode* node);