[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso resources/keymap.xml src/core/ContextP...
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso resources/keymap.xml src/core/ContextP... |
Date: |
Thu, 12 Apr 2007 12:32:07 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/04/12 12:32:07
Modified files:
resources : keymap.xml
src/core : ContextPointer.h InputEngine.cpp InputEngine.h
Song.h ViewPort.cpp ViewPort.h
src/traverso/songcanvas: AudioClipView.cpp CurveView.cpp
SongView.cpp SongView.h
src/traverso/widgets: InfoWidgets.cpp InfoWidgets.h
Log message:
* Enabled 'mode' checking in InputEngine. Depending on the given
mode(s) in the keymap,
an action will be performed or not.
As an example, [ C ] (copy clip) is now only valid in Edit mode.
* Better updating of the mode combobox, playhead info widget
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/keymap.xml?cvsroot=traverso&r1=1.52&r2=1.53
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ContextPointer.h?cvsroot=traverso&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/InputEngine.cpp?cvsroot=traverso&r1=1.43&r2=1.44
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/InputEngine.h?cvsroot=traverso&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.h?cvsroot=traverso&r1=1.44&r2=1.45
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ViewPort.cpp?cvsroot=traverso&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ViewPort.h?cvsroot=traverso&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.cpp?cvsroot=traverso&r1=1.38&r2=1.39
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/CurveView.cpp?cvsroot=traverso&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongView.cpp?cvsroot=traverso&r1=1.40&r2=1.41
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongView.h?cvsroot=traverso&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.cpp?cvsroot=traverso&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.h?cvsroot=traverso&r1=1.8&r2=1.9
Patches:
Index: resources/keymap.xml
===================================================================
RCS file: /sources/traverso/traverso/resources/keymap.xml,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- resources/keymap.xml 11 Apr 2007 23:07:32 -0000 1.52
+++ resources/keymap.xml 12 Apr 2007 12:32:06 -0000 1.53
@@ -7,6 +7,11 @@
<key key="CTRL" />
<key key="ALT" />
</ModifierKeys>
+ <Modes>
+ <mode name="All" id="0" />
+ <mode name="Edit" id="1" />
+ <mode name="Effects" id="2" />
+ </Modes>
<Keyfacts>
<keyfact type="FKEY" key1="H">
<Objects>
@@ -335,15 +340,15 @@
</keyfact>
<keyfact type="HKEY" key1="C" >
<Objects>
- <Object objectname="AudioClipView"
mousehint="LRUD" modes="All" sortorder="9" pluginname="TraversoCommands"
commandname="CopyClip" arguments="copy" />
+ <Object objectname="AudioClipView"
mousehint="LRUD" modes="Edit" sortorder="9" pluginname="TraversoCommands"
commandname="CopyClip" arguments="copy" />
</Objects>
</keyfact>
<keyfact type="HKEY" key1="MouseButtonLeft" >
<Objects>
<Object objectname="AudioClipView"
mousehint="LRUD" modes="All" pluginname="TraversoCommands"
commandname="MoveClip" arguments="move" />
<Object objectname="AudioClipView"
mousehint="LRUD" modes="All" sortorder="9" modifierkeys="CTRL"
pluginname="TraversoCommands" commandname="CopyClip" arguments="copy" />
- <Object objectname="CurveView" mousehint="LRUD"
slotsignature="drag_node" modes="EditMode" sortorder="3" instantanious="1" />
- <Object objectname="TimeLineView"
mousehint="LR" slotsignature="drag_marker" modes="EditMode" sortorder="3"
instantanious="1" />
+ <Object objectname="CurveView" mousehint="LRUD"
slotsignature="drag_node" modes="Effects" sortorder="3" instantanious="1" />
+ <Object objectname="TimeLineView"
mousehint="LR" slotsignature="drag_marker" modes="All" sortorder="3"
instantanious="1" />
<Object objectname="SongView" mousehint="LR"
slotsignature="work_cursor_move" modes="All" sortorder="14" instantanious="0" />
<Object objectname="TrackPanelGain" modes="All"
sortorder="7" pluginname="TraversoCommands" commandname="Gain" />
<Object objectname="TrackPanelPan"
mousehint="LR" modes="All" sortorder="8" pluginname="TraversoCommands"
commandname="TrackPan" />
@@ -351,9 +356,9 @@
</keyfact>
<keyfact type="HKEY" key1="D" >
<Objects>
- <Object objectname="AudioClipView"
mousehint="LRUD" modes="All" sortorder="3" pluginname="TraversoCommands"
commandname="MoveClip" arguments="move" />
- <Object objectname="CurveView" mousehint="LRUD"
slotsignature="drag_node" modes="EditMode" sortorder="3" instantanious="1" />
- <Object objectname="TimeLineView"
mousehint="LR" slotsignature="drag_marker" modes="EditMode" sortorder="3"
instantanious="1" />
+ <Object objectname="AudioClipView"
mousehint="LRUD" modes="Edit" sortorder="3" pluginname="TraversoCommands"
commandname="MoveClip" arguments="move" />
+ <Object objectname="CurveView" mousehint="LRUD"
slotsignature="drag_node" modes="Effects" sortorder="3" instantanious="1" />
+ <Object objectname="TimeLineView"
mousehint="LR" slotsignature="drag_marker" modes="All" sortorder="3"
instantanious="1" />
</Objects>
</keyfact>
<keyfact type="HKEY" key1="B" >
Index: src/core/ContextPointer.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/ContextPointer.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- src/core/ContextPointer.h 22 Mar 2007 13:35:42 -0000 1.12
+++ src/core/ContextPointer.h 12 Apr 2007 12:32:07 -0000 1.13
@@ -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: ContextPointer.h,v 1.12 2007/03/22 13:35:42 r_sijrier Exp $
+ $Id: ContextPointer.h,v 1.13 2007/04/12 12:32:07 r_sijrier Exp $
*/
#ifndef CONTEXTPOINTER_H
@@ -136,6 +136,13 @@
m_onFirstInputEventY = m_y;
}
+ inline int get_current_mode() const {
+ if (currentViewPort) {
+ return currentViewPort->get_current_mode();
+ }
+ return -1;
+ }
+
void grab_mouse();
void release_mouse();
void reset_cursor();
Index: src/core/InputEngine.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/InputEngine.cpp,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- src/core/InputEngine.cpp 10 Apr 2007 17:13:01 -0000 1.43
+++ src/core/InputEngine.cpp 12 Apr 2007 12:32:07 -0000 1.44
@@ -210,7 +210,7 @@
InputEngine::~ InputEngine( )
{
- foreach(IEAction* action, ieActions) {
+ foreach(IEAction* action, m_ieActions) {
delete action;
}
}
@@ -234,7 +234,7 @@
PENTER2;
IEAction* action = 0;
- foreach(IEAction* ieaction, ieActions) {
+ foreach(IEAction* ieaction, m_ieActions) {
if (ieaction->keySequence == keySequence) {
action = ieaction;
break;
@@ -289,6 +289,8 @@
IEAction::Data* data =
action->objectUsingModifierKeys.value(QString(item->metaObject()->className()));
+ // A match was found for actions using the modifier key
+ // let's see if it is valid for the current active modifier
keys!
if (data) {
PMESG("found match in objectUsingModierKeys");
bool modifierkeymatch = true;
@@ -310,6 +312,8 @@
}
}
+ // No match found for actions using a modifier key, let's see
if there
+ // is one in the 'normal' actions list.
if (! data ) {
data =
action->objects.value(QString(item->metaObject()->className()));
@@ -319,6 +323,15 @@
}
}
+ // Now that we found a match, we still have to check if
+ // the current mode is valid for this data!
+ QString currentmode =
m_modes.key(cpointer().get_current_mode());
+ QString allmodes = m_modes.key(0);
+ if ( (! data->modes.contains(currentmode)) && (!
data->modes.contains(allmodes))) {
+ PMESG("%s on %s is not valid for mode %s",
action->keySequence.data(), item->metaObject()->className(), QS_C(currentmode));
+ continue;
+ }
+
PMESG("Data found for %s!", item->metaObject()->className());
PMESG("setting slotsignature to %s", QS_C(data->slotsignature));
PMESG("setting pluginname to %s", QS_C(data->pluginname));
@@ -434,6 +447,7 @@
k = 0;
}
}
+
if (k && isHolding) {
if (k->begin_hold() != -1) {
k->set_valid(true);
@@ -588,7 +602,7 @@
// the eventcode must be != the current active holding
// command's eventcode!
if (index >= 0 && holdEventCode != eventcode) {
- IEAction* action = ieActions.at(index);
+ IEAction* action = m_ieActions.at(index);
broadcast_action(action, isAutoRepeat);
}
return;
@@ -792,7 +806,7 @@
PMESG3("First fact matches map in position %d",mapIndex);
// there is a single-fact action which matches this !! now must
check if is not an immediate action
- if (!ieActions.at(mapIndex)->isInstantaneous) {
+ if (!m_ieActions.at(mapIndex)->isInstantaneous) {
PMESG3("Although this could be an SINGLE PRESS Action,
it is not protected, so...");
// action is not an immediate action, so...
give_a_chance_for_second_fact();
@@ -870,7 +884,7 @@
int InputEngine::find_index_for_single_fact( int type, int key1, int key2 )
{
- foreach(IEAction* action, ieActions) {
+ foreach(IEAction* action, m_ieActions) {
if (action->type != type )
continue;
@@ -886,8 +900,8 @@
( action->fact2_key2 == 0 )
) {
// 'i' is a candidate for first press
- PMESG3("Found a match in map position %d, keyfact %s",
ieActions.indexOf(action), action->keySequence.data());
- return ieActions.indexOf(action);
+ PMESG3("Found a match in map position %d, keyfact %s",
m_ieActions.indexOf(action), action->keySequence.data());
+ return m_ieActions.indexOf(action);
}
}
@@ -974,7 +988,7 @@
// whole action type identified .
PMESG3("Searching for a %d action that matches %d,%d,%d,%d ",
wholeActionType, fact1_k1, fact1_k2, fact2_k1, fact2_k2);
- foreach(IEAction* action, ieActions) {
+ foreach(IEAction* action, m_ieActions) {
if ( action->type != wholeActionType )
continue;
int ap1k1 = action->fact1_key1;
@@ -997,7 +1011,7 @@
) {
// 'i' is a candidate the whole action
PMESG3("Found a match : action %s",
action->keySequence.data());
- return ieActions.indexOf(action);
+ return m_ieActions.indexOf(action);
}
}
PMESG3("No candidates found :-(");
@@ -1031,7 +1045,7 @@
void InputEngine::dispatch_action(int mapIndex)
{
PENTER2;
- broadcast_action(ieActions.at(mapIndex));
+ broadcast_action(m_ieActions.at(mapIndex));
}
@@ -1055,7 +1069,7 @@
}
if (wholeMapIndex>=0) {
- broadcast_action(ieActions.at(wholeMapIndex));
+ broadcast_action(m_ieActions.at(wholeMapIndex));
}
stop_collecting();
@@ -1140,11 +1154,13 @@
PMESG("Using keymap: %s", QS_C(keymap));
- foreach(IEAction* action, ieActions) {
+ foreach(IEAction* action, m_ieActions) {
delete action;
}
- ieActions.clear();
+ m_ieActions.clear();
+ m_modifierKeys.clear();
+ m_modes.clear();
QDomElement root = doc.documentElement();
@@ -1168,6 +1184,27 @@
}
+
+ QDomNode modesNode = root.firstChildElement("Modes");
+ QDomNode modeNode = modesNode.firstChild();
+
+ int id;
+ QString modename;
+
+ while( !modeNode.isNull() ) {
+ QDomElement e = modeNode.toElement();
+
+ modename = e.attribute("name", "");
+ id = e.attribute("id", "-1").toInt();
+
+ m_modes.insert(modename, id);
+
+ modeNode = modeNode.nextSibling();
+ }
+
+
+
+
QDomNode keyfactsNode = root.firstChildElement("Keyfacts");
QDomNode keyfactNode = keyfactsNode.firstChild();
@@ -1242,7 +1279,6 @@
data->slotsignature = e.attribute("slotsignature", "");
data->modes = e.attribute("modes", "").split(";");
- data->description = e.attribute("description", "");
data->instantanious = e.attribute("instantanious",
"0").toInt();
data->pluginname = e.attribute( "pluginname", "");
data->commandname = e.attribute( "commandname", "");
@@ -1303,8 +1339,8 @@
action->render_key_sequence(key1, key2);
bool exists = false;
- for (int i=0; i<ieActions.size(); ++i) {
- IEAction* existingaction = ieActions.at(i);
+ for (int i=0; i<m_ieActions.size(); ++i) {
+ IEAction* existingaction = m_ieActions.at(i);
if ( (action->fact1_key1 ==
existingaction->fact1_key1) &&
(action->fact1_key2 ==
existingaction->fact1_key2) &&
(action->fact2_key1 ==
existingaction->fact2_key1) &&
@@ -1321,7 +1357,7 @@
}
if (!exists) {
- ieActions.append(action);
+ m_ieActions.append(action);
PMESG2("ADDED action: type=%d keys=%d,%d,%d,%d useX=%d
useY=%d, slot=%s", action->type,
action->fact1_key1,action->fact1_key2,action->fact2_key1,action->fact2_key2,data->useX,data->useY,
QS_C(slot));
}
@@ -1331,13 +1367,13 @@
PMESG2("Optimizing map for best performance ...");
int optimizedActions=0;
- foreach(IEAction* action, ieActions) {
+ foreach(IEAction* action, m_ieActions) {
int c1A = action->fact1_key1;
int c2A = action->fact1_key2;
if ( (action->type == FKEY) ) {
bool alone = true;
- foreach(IEAction* aloneAction, ieActions) {
+ foreach(IEAction* aloneAction, m_ieActions) {
if (action == aloneAction)
continue;
int tt = aloneAction->type;
@@ -1364,7 +1400,7 @@
} else if ((action->type == FKEY2)) {
bool alone = true;
- foreach(IEAction* aloneAction, ieActions) {
+ foreach(IEAction* aloneAction, m_ieActions) {
if (action == aloneAction)
continue;
int tt = aloneAction->type;
@@ -1391,7 +1427,7 @@
action->isInstantaneous = false;
}
}
- PMESG2("Keymap initialized! %d actions registered ( %d instantanious)
.", ieActions.size(), optimizedActions);
+ PMESG2("Keymap initialized! %d actions registered ( %d instantanious)
.", m_ieActions.size(), optimizedActions);
return 1;
}
@@ -1465,8 +1501,8 @@
const QMetaObject* mo = item->metaObject();
const char* classname = mo->className();
- for (int i=0; i<ieActions.size(); i++) {
- IEAction* ieaction = ieActions.at(i);
+ for (int i=0; i<m_ieActions.size(); i++) {
+ IEAction* ieaction = m_ieActions.at(i);
IEAction::Data* iedata =
ieaction->objects.value(classname);
Index: src/core/InputEngine.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/InputEngine.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- src/core/InputEngine.h 4 Apr 2007 12:08:57 -0000 1.18
+++ src/core/InputEngine.h 12 Apr 2007 12:32:07 -0000 1.19
@@ -81,7 +81,6 @@
QVariantList arguments;
QList<int > modifierkeys;
QString slotsignature;
- QString description;
int instantanious;
QString pluginname;
QString commandname;
@@ -165,10 +164,11 @@
static const int PRESS_EVENT = 1;
static const int RELEASE_EVENT = 2;
- QList<IEAction* > ieActions;
+ QList<IEAction* > m_ieActions;
QList<int> m_modifierKeys;
QList<int> m_activeModifierKeys;
QHash<QString, CommandPlugin*> m_commandplugins;
+ QHash<QString, int> m_modes;
EventCatcher catcher;
Command* holdingCommand;
QString sCollectedNumber;
Index: src/core/Song.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.h,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- src/core/Song.h 12 Apr 2007 10:30:53 -0000 1.44
+++ src/core/Song.h 12 Apr 2007 12:32:07 -0000 1.45
@@ -67,8 +67,8 @@
~Song();
enum Mode {
- EDIT,
- EFFECTS
+ EDIT = 1,
+ EFFECTS = 2
};
// Get functions
Index: src/core/ViewPort.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ViewPort.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- src/core/ViewPort.cpp 12 Apr 2007 10:30:53 -0000 1.12
+++ src/core/ViewPort.cpp 12 Apr 2007 12:32:07 -0000 1.13
@@ -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: ViewPort.cpp,v 1.12 2007/04/12 10:30:53 r_sijrier Exp $
+$Id: ViewPort.cpp,v 1.13 2007/04/12 12:32:07 r_sijrier Exp $
*/
#include <QMouseEvent>
@@ -77,30 +77,30 @@
ViewPort::ViewPort(QWidget* parent)
: QGraphicsView(parent)
+ , m_mode(0)
{
PENTERCONS;
setFrameStyle(QFrame::NoFrame);
setAlignment(Qt::AlignLeft | Qt::AlignTop);
-
- setAttribute(Qt::WA_OpaquePaintEvent);
}
ViewPort::ViewPort(QGraphicsScene* scene, QWidget* parent)
: QGraphicsView(scene, parent)
+ , m_mode(0)
{
PENTERCONS;
setFrameStyle(QFrame::NoFrame);
setAlignment(Qt::AlignLeft | Qt::AlignTop);
-// setOptimizationFlag(DontAdjustForAntialiasing);
-// setOptimizationFlag(DontSavePainterState);
-// setOptimizationFlag(DontClipPainter);
+#if QT_VERSION >= 0x040300
+ setOptimizationFlag(DontAdjustForAntialiasing);
+ setOptimizationFlag(DontSavePainterState);
+ setOptimizationFlag(DontClipPainter);
+#endif
m_holdcursor = new HoldCursor();
scene->addItem(m_holdcursor);
m_holdcursor->hide();
-
-// setAttribute(Qt::WA_OpaquePaintEvent);
}
ViewPort::~ViewPort()
@@ -237,6 +237,11 @@
m_holdcursor->setPos(pos);
}
+void ViewPort::set_current_mode(int mode)
+{
+ m_mode = mode;
+}
+
/**********************************************************************/
@@ -298,4 +303,3 @@
}
//eof
-
Index: src/core/ViewPort.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/ViewPort.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- src/core/ViewPort.h 11 Apr 2007 21:19:18 -0000 1.12
+++ src/core/ViewPort.h 12 Apr 2007 12:32:07 -0000 1.13
@@ -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: ViewPort.h,v 1.12 2007/04/11 21:19:18 r_sijrier Exp $
+ $Id: ViewPort.h,v 1.13 2007/04/12 12:32:07 r_sijrier Exp $
*/
#ifndef VIEWPORT_H
@@ -49,10 +49,13 @@
void set_holdcursor(const QString& cursorName);
void set_holdcursor_text(const QString& text);
void set_holdcursor_pos(QPoint pos);
+ void set_current_mode(int mode);
void reset_cursor();
void set_jogging(bool jog);
+ int get_current_mode() const {return m_mode;}
+
protected:
virtual void enterEvent ( QEvent * );
@@ -67,7 +70,7 @@
void tabletEvent ( QTabletEvent * event );
private:
-
+ int m_mode;
HoldCursor* m_holdcursor;
QPoint m_oldMousePos;
QPointF lastMouseMoveScenePoint;
Index: src/traverso/songcanvas/AudioClipView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.cpp,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -b -r1.38 -r1.39
--- src/traverso/songcanvas/AudioClipView.cpp 11 Apr 2007 23:07:32 -0000
1.38
+++ src/traverso/songcanvas/AudioClipView.cpp 12 Apr 2007 12:32:07 -0000
1.39
@@ -101,7 +101,7 @@
void AudioClipView::paint(QPainter* painter, const QStyleOptionGraphicsItem
*option, QWidget *widget)
{
- PENTER;
+ PENTER2;
Q_UNUSED(widget);
Index: src/traverso/songcanvas/CurveView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/CurveView.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- src/traverso/songcanvas/CurveView.cpp 11 Apr 2007 15:56:35 -0000
1.26
+++ src/traverso/songcanvas/CurveView.cpp 12 Apr 2007 12:32:07 -0000
1.27
@@ -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: CurveView.cpp,v 1.26 2007/04/11 15:56:35 r_sijrier Exp $
+$Id: CurveView.cpp,v 1.27 2007/04/12 12:32:07 r_sijrier Exp $
*/
#include "CurveView.h"
@@ -200,7 +200,7 @@
void CurveView::paint( QPainter * painter, const QStyleOptionGraphicsItem *
option, QWidget * widget )
{
Q_UNUSED(widget);
- PENTER;
+ PENTER2;
painter->save();
@@ -330,7 +330,6 @@
void CurveView::hoverEnterEvent ( QGraphicsSceneHoverEvent * event )
{
- PENTER;
Q_UNUSED(event);
m_blinkColor = themer()->get_color("CurveNode:blink");
@@ -339,7 +338,6 @@
void CurveView::hoverLeaveEvent ( QGraphicsSceneHoverEvent * event )
{
- PENTER;
Q_UNUSED(event);
if (ie().is_holding()) {
@@ -358,7 +356,6 @@
void CurveView::hoverMoveEvent ( QGraphicsSceneHoverEvent * event )
{
- PENTER;
QPoint point((int)event->pos().x(), (int)event->pos().y());
update_softselected_node(point);
Index: src/traverso/songcanvas/SongView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongView.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -b -r1.40 -r1.41
--- src/traverso/songcanvas/SongView.cpp 11 Apr 2007 15:56:35 -0000
1.40
+++ src/traverso/songcanvas/SongView.cpp 12 Apr 2007 12:32:07 -0000
1.41
@@ -108,6 +108,7 @@
scalefactor = Peak::zoomStep[m_song->get_hzoom()];
+ song_mode_changed();
foreach(Track* track, m_song->get_tracks()) {
add_new_trackview(track);
@@ -117,6 +118,7 @@
connect(m_song, SIGNAL(trackAdded(Track*)), this,
SLOT(add_new_trackview(Track*)));
connect(m_song, SIGNAL(trackRemoved(Track*)), this,
SLOT(remove_trackview(Track*)));
connect(m_song, SIGNAL(lastFramePositionChanged()), this,
SLOT(update_scrollbars()));
+ connect(m_song, SIGNAL(modeChanged()), this, SLOT(song_mode_changed()));
connect(m_hScrollBar, SIGNAL(valueChanged(int)),
this,SLOT(set_snap_range(int)));
connect(&m_shuttletimer, SIGNAL(timeout() ), this, SLOT
(update_shuttle()) );
@@ -148,6 +150,14 @@
layout_tracks();
}
+void SongView::song_mode_changed()
+{
+ int mode = m_song->get_mode();
+ m_clipsViewPort->set_current_mode(mode);
+ m_tlvp->set_current_mode(mode);
+ m_tpvp->set_current_mode(mode);
+}
+
TrackView* SongView::get_trackview_under( QPointF point )
{
TrackView* view = 0;
Index: src/traverso/songcanvas/SongView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongView.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- src/traverso/songcanvas/SongView.h 12 Apr 2007 10:30:53 -0000 1.20
+++ src/traverso/songcanvas/SongView.h 12 Apr 2007 12:32:07 -0000 1.21
@@ -141,6 +141,7 @@
void update_shuttle();
void work_cursor_updated();
void play_head_updated();
+ void song_mode_changed();
};
Index: src/traverso/widgets/InfoWidgets.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- src/traverso/widgets/InfoWidgets.cpp 12 Apr 2007 10:30:53 -0000
1.10
+++ src/traverso/widgets/InfoWidgets.cpp 12 Apr 2007 12:32:07 -0000
1.11
@@ -374,9 +374,6 @@
}
int index = m_box->findData(song->get_id());
-
-// Q_ASSERT(index != -1);
-
m_box->setCurrentIndex(index);
}
@@ -407,14 +404,18 @@
if (!m_song) {
stop_smpte_update_timer();
- m_playpixmap = QPixmap();
+ m_playpixmap = find_pixmap(":/playstart");
return;
}
connect(m_song, SIGNAL(transferStopped()), this,
SLOT(stop_smpte_update_timer()));
connect(m_song, SIGNAL(transferStarted()), this,
SLOT(start_smpte_update_timer()));
+ if (m_song->is_transporting()) {
+ m_playpixmap = find_pixmap(":/playstop");
+ } else {
m_playpixmap = find_pixmap(":/playstart");
+ }
update();
}
@@ -430,30 +431,24 @@
currentsmpte = frame_to_smpte(m_song->get_transport_frame(),
m_song->get_rate());
}
- int bgcolor = 60;
int fc = 170;
- QColor background = QColor(bgcolor, bgcolor, bgcolor);
QColor fontcolor = QColor(fc, fc, fc);
if (m_song && m_song->is_transporting()) {
- background = QColor(40, 40, 40);
- fontcolor = QColor(bgcolor, bgcolor, bgcolor);
+ fc = 60;
+ fontcolor = QColor(fc, fc, fc);
}
painter.setFont(QFont("Bitstream Vera Sans", 13));
painter.setPen(fontcolor);
painter.fillRect(0, 0, width(), height(), QColor(247, 246, 255));
- painter.drawPixmap(4, 6, m_playpixmap);
+ painter.drawPixmap(8, 6, m_playpixmap);
painter.drawText(QRect(12, 4, width() - 6, height() - 6),
Qt::AlignCenter, currentsmpte);
}
void PlayHeadInfo::start_smpte_update_timer( )
{
-/* painter.setBrush(background);
- painter.setRenderHints(QPainter::Antialiasing);
- painter.drawRoundRect(0, 0, width(), height(), 20);*/
-
m_playpixmap = find_pixmap(":/playstop");
m_updateTimer.start(150);
}
@@ -583,11 +578,6 @@
redobutton->setText(tr("Redo"));
connect(action, SIGNAL(triggered( bool )), &pm(), SLOT(redo()));
- /* action = addAction(tr("Redo"));
- action->setIcon(QIcon(find_pixmap(":/redo-16")));
- action->setShortcuts(QKeySequence::Redo);
- connect(action, SIGNAL(triggered( bool )), this, SLOT(redo()));*/
-
QHBoxLayout* lay = new QHBoxLayout(this);
lay->addWidget(undobutton);
@@ -601,7 +591,6 @@
lay->addStretch(5);
lay->addWidget(m_mode);
lay->addWidget(m_selector);
-// lay->addSpacing(12);
setLayout(lay);
lay->setMargin(0);
@@ -623,9 +612,14 @@
if (m_song) {
connect(m_song, SIGNAL(snapChanged()), this,
SLOT(update_snap_state()));
+ connect(m_song, SIGNAL(modeChanged()), this,
SLOT(update_mode_state()));
update_snap_state();
+ update_mode_state();
+ m_snapAct->setEnabled(true);
+ m_mode->setEnabled(true);
} else {
m_snapAct->setEnabled(false);
+ m_mode->setEnabled(false);
}
}
@@ -634,6 +628,15 @@
m_snapAct->setChecked(m_song->is_snap_on());
}
+void SongInfo::update_mode_state()
+{
+ if (m_song->get_mode() == Song::EDIT) {
+ m_mode->setCurrentIndex(0);
+ } else {
+ m_mode->setCurrentIndex(1);
+ }
+}
+
void SongInfo::snap_state_changed(bool state)
{
if (! m_song) {
Index: src/traverso/widgets/InfoWidgets.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- src/traverso/widgets/InfoWidgets.h 12 Apr 2007 10:30:53 -0000 1.8
+++ src/traverso/widgets/InfoWidgets.h 12 Apr 2007 12:32:07 -0000 1.9
@@ -206,6 +206,7 @@
void update_snap_state();
void snap_state_changed(bool state);
void update_follow_state();
+ void update_mode_state();
void follow_state_changed(bool state);
void mode_index_changed(int index);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso resources/keymap.xml src/core/ContextP...,
Remon Sijrier <=