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/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);
        




reply via email to

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