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/Move...


From: Remon Sijrier
Subject: [Traverso-commit] traverso resources/keymap.xml src/commands/Move...
Date: Wed, 11 Apr 2007 15:56:35 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/04/11 15:56:35

Modified files:
        resources      : keymap.xml 
        src/commands   : MoveClip.cpp MoveClip.h Zoom.cpp 
        src/core       : Command.cpp Song.cpp Song.h ViewPort.cpp 
        src/traverso   : Interface.cpp Interface.h 
        src/traverso/songcanvas: AudioClipView.cpp CurveView.cpp 
                                 FadeView.cpp PluginView.cpp 
                                 SongView.cpp SongView.h 
                                 TimeLineView.cpp TimeLineView.h 
                                 TrackPanelView.cpp TrackView.cpp 
                                 ViewItem.h 
        src/traverso/widgets: InfoWidgets.cpp InfoWidgets.h 
                              MessageWidget.cpp 

Log message:
        * MoveClip: to next/prev_snap disables the jog function
        * Song Info toolbar: default to horizontal layout only!
        * Re-enabled canvas items cursors, updated ViewPort and Command classes 
to make it work.
        * Moved un/redo buttons from main menu to Song info toolbar
        * added Mode combobox to switch between edit/effects mode
        * Song Info toolbar layout improved (I hope)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/keymap.xml?cvsroot=traverso&r1=1.49&r2=1.50
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveClip.cpp?cvsroot=traverso&r1=1.30&r2=1.31
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveClip.h?cvsroot=traverso&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Zoom.cpp?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Command.cpp?cvsroot=traverso&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.cpp?cvsroot=traverso&r1=1.78&r2=1.79
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.h?cvsroot=traverso&r1=1.42&r2=1.43
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ViewPort.cpp?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.cpp?cvsroot=traverso&r1=1.58&r2=1.59
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.h?cvsroot=traverso&r1=1.29&r2=1.30
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.cpp?cvsroot=traverso&r1=1.36&r2=1.37
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/CurveView.cpp?cvsroot=traverso&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/FadeView.cpp?cvsroot=traverso&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/PluginView.cpp?cvsroot=traverso&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongView.cpp?cvsroot=traverso&r1=1.39&r2=1.40
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongView.h?cvsroot=traverso&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TimeLineView.cpp?cvsroot=traverso&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TimeLineView.h?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TrackPanelView.cpp?cvsroot=traverso&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TrackView.cpp?cvsroot=traverso&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/ViewItem.h?cvsroot=traverso&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.cpp?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.h?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/MessageWidget.cpp?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.49
retrieving revision 1.50
diff -u -b -r1.49 -r1.50
--- resources/keymap.xml        10 Apr 2007 17:12:19 -0000      1.49
+++ resources/keymap.xml        11 Apr 2007 15:56:34 -0000      1.50
@@ -15,12 +15,12 @@
                </keyfact>
                <keyfact type="FKEY" key1="F1" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="set_editing_mode" modes="All" sortorder="52" instantanious="0" />
+                               <Object objectname="Song" 
slotsignature="set_editing_mode" modes="All" sortorder="52" instantanious="0" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="F2" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="set_curve_mode" modes="All" sortorder="53" instantanious="0" />
+                               <Object objectname="Song" 
slotsignature="set_effects_mode" modes="All" sortorder="53" instantanious="0" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="F11" >

Index: src/commands/MoveClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveClip.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- src/commands/MoveClip.cpp   10 Apr 2007 17:11:48 -0000      1.30
+++ src/commands/MoveClip.cpp   11 Apr 2007 15:56:34 -0000      1.31
@@ -156,6 +156,7 @@
        d->origTrackEndFrame = m_clip->get_track_end_frame();
        d->resync = config().get_property("AudioClip", "SyncDuringDrag", 
false).toBool();
        d->view->set_dragging(true);
+       d->bypassjog = false;
 }
 
 
@@ -194,14 +195,13 @@
                m_clip->set_left_edge(m_oldOppositeEdge);
        }
 
-       d->view->set_dragging(false);
-       
        return 1;
 }
 
 
 int MoveClip::prepare_actions()
 {
+       d->view->set_dragging(false);
        delete d;
        
        return 1;
@@ -270,7 +270,7 @@
 int MoveClip::jog()
 {
        
-       if (! m_clip) {
+       if (! m_clip || d->bypassjog) {
                return 0;
        }
        
@@ -390,6 +390,7 @@
 void MoveClip::next_snap_pos(bool autorepeat)
 {
        Q_UNUSED(autorepeat);
+       d->bypassjog = true;
        d->snappos = m_song->get_snap_list()->next_snap_pos(d->snappos);
        m_posDiff = d->snappos - m_originalTrackFirstFrame;
        m_clip->set_track_start_frame(d->snappos);
@@ -398,6 +399,7 @@
 void MoveClip::prev_snap_pos(bool autorepeat)
 {
        Q_UNUSED(autorepeat);
+       d->bypassjog = true;
        d->snappos = m_song->get_snap_list()->prev_snap_pos(d->snappos);
        m_posDiff = d->snappos - m_originalTrackFirstFrame;
        m_clip->set_track_start_frame(d->snappos);

Index: src/commands/MoveClip.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveClip.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- src/commands/MoveClip.h     6 Apr 2007 09:29:03 -0000       1.15
+++ src/commands/MoveClip.h     11 Apr 2007 15:56:34 -0000      1.16
@@ -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: MoveClip.h,v 1.15 2007/04/06 09:29:03 r_sijrier Exp $
+    $Id: MoveClip.h,v 1.16 2007/04/11 15:56:34 r_sijrier Exp $
 */
 
 #ifndef MOVECLIPACTION_H
@@ -72,6 +72,7 @@
                nframes_t       origTrackStartFrame;
                nframes_t       origTrackEndFrame;
                bool            resync;
+               bool            bypassjog;
                nframes_t       snappos;
        };
                        

Index: src/commands/Zoom.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Zoom.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- src/commands/Zoom.cpp       3 Apr 2007 21:25:25 -0000       1.9
+++ src/commands/Zoom.cpp       11 Apr 2007 15:56:34 -0000      1.10
@@ -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: Zoom.cpp,v 1.9 2007/04/03 21:25:25 benjie Exp $
+    $Id: Zoom.cpp,v 1.10 2007/04/11 15:56:34 r_sijrier Exp $
 */
 
 #include <libtraversocore.h>
@@ -29,6 +29,7 @@
 #include <QPoint>
 #include <ViewPort.h>
 #include <ClipsViewPort.h>
+#include <QApplication>
 
 // Always put me below _all_ includes, this is needed
 // in case we run with memory leak detection enabled!
@@ -69,8 +70,7 @@
        Q_UNUSED(useX);
        Q_UNUSED(useY);
        
-       ViewPort* view = cpointer().get_viewport();
-       view->viewport()->setCursor(QCursor(find_pixmap(":/cursorZoom")));
+       QApplication::setOverrideCursor(QCursor(find_pixmap(":/cursorZoom")));
        mousePos = QCursor::pos();      
 }
 

Index: src/core/Command.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Command.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- src/core/Command.cpp        2 Apr 2007 21:05:43 -0000       1.14
+++ src/core/Command.cpp        11 Apr 2007 15:56:35 -0000      1.15
@@ -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: Command.cpp,v 1.14 2007/04/02 21:05:43 r_sijrier Exp $
+$Id: Command.cpp,v 1.15 2007/04/11 15:56:35 r_sijrier Exp $
 */
 
 #include "Command.h"
@@ -248,11 +248,11 @@
        ViewPort* view = cpointer().get_viewport();
        
        if (useX && useY) {
-               
view->viewport()->setCursor(QCursor(find_pixmap(":/cursorHoldLrud")));
+               
QApplication::setOverrideCursor(QCursor(find_pixmap(":/cursorHoldLrud")));
        } else if (useX) {
-               
view->viewport()->setCursor(QCursor(find_pixmap(":/cursorHoldLr")));
+               
QApplication::setOverrideCursor(QCursor(find_pixmap(":/cursorHoldLr")));
        } else if (useY) {
-               
view->viewport()->setCursor(QCursor(find_pixmap(":/cursorHoldUd")));
+               
QApplication::setOverrideCursor(QCursor(find_pixmap(":/cursorHoldUd")));
        } else{
                view->reset_cursor();
        }

Index: src/core/Song.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.cpp,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -b -r1.78 -r1.79
--- src/core/Song.cpp   5 Apr 2007 17:53:48 -0000       1.78
+++ src/core/Song.cpp   11 Apr 2007 15:56:35 -0000      1.79
@@ -152,6 +152,7 @@
        seeking = 0;
        // TODO seek to old position on project exit ?
        transportFrame = 0;
+       m_mode = EDIT;
        
        m_pluginChain = new PluginChain(this, this);
        m_timeline = new TimeLine(this);
@@ -916,5 +917,19 @@
        clip->set_track_start_frame(pos);
 }
 
+Command* Song::set_editing_mode( )
+{
+       m_mode = EDIT;
+       emit modeChanged();
+       return 0;
+}
+
+Command* Song::set_effects_mode( )
+{
+       m_mode = EFFECTS;
+       emit modeChanged();
+       return 0;
+}
+
 // eof
 

Index: src/core/Song.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.h,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- src/core/Song.h     5 Apr 2007 17:53:48 -0000       1.42
+++ src/core/Song.h     11 Apr 2007 15:56:35 -0000      1.43
@@ -64,12 +64,18 @@
        Song(Project* project, const QDomNode node);
        ~Song();
 
+       enum Mode {
+               EDIT,
+               EFFECTS
+       };
+
        // Get functions
        int get_hzoom() const { return m_hzoom;}
        int get_rate();
        int get_bitdepth();
        int get_numtracks() const {return m_tracks.size();}
        int get_track_index(qint64 id) const;
+       int get_mode() const {return m_mode;}
        
        nframes_t get_transport_frame() const;
        nframes_t get_working_frame() const {return workingFrame;}
@@ -154,6 +160,7 @@
        float                   m_gain;
        QString                 artists;
        QString                 title;
+       int             m_mode;
        int                     m_hzoom;
        bool                    rendering;
        bool                    changed;
@@ -191,6 +198,8 @@
        Command* toggle_solo();
        Command* toggle_mute();
        Command* toggle_arm();
+       Command* set_editing_mode();
+       Command* set_effects_mode();
 
 signals:
        void trackRemoved(Track* );
@@ -207,6 +216,7 @@
        void propertyChanged();
        void setCursorAtEdge();
        void masterGainChanged();
+       void modeChanged();
 
 private slots:
        void private_add_track(Track* track);

Index: src/core/ViewPort.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ViewPort.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- src/core/ViewPort.cpp       10 Apr 2007 19:37:57 -0000      1.9
+++ src/core/ViewPort.cpp       11 Apr 2007 15:56:35 -0000      1.10
@@ -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.9 2007/04/10 19:37:57 r_sijrier Exp $
+$Id: ViewPort.cpp,v 1.10 2007/04/11 15:56:35 r_sijrier Exp $
 */
 
 #include <QMouseEvent>
@@ -112,12 +112,12 @@
 void ViewPort::mouseMoveEvent(QMouseEvent* e)
 {
        PENTER3;
-       
-       // Changing the cursor, or perhaps some other thing generates
-       // a mouse move event, while the mouse really move, so we check
-       // if the mouse cursor really has changed position!
+       // Qt generates mouse move events when the scrollbars move
+       // since a mouse move event generates a jog() call for the 
+       // active holding command, this has a number of nasty side effects :-(
+       // For now, we ignore such events....
        if (e->pos() == m_oldMousePos) {
-//             return;
+               return;
        }
        m_oldMousePos = e->pos();
        QGraphicsView::mouseMoveEvent(e);
@@ -187,14 +187,14 @@
 
 void ViewPort::reset_cursor( )
 {
-       viewport()->unsetCursor();
+       QApplication::restoreOverrideCursor ();
        m_holdcursor->hide();
        m_holdcursor->reset();
 }
 
 void ViewPort::set_holdcursor( const QString & cursorName )
 {
-       viewport()->setCursor(Qt::BlankCursor);
+       QApplication::setOverrideCursor(Qt::BlankCursor);
        
        m_holdcursor->setPos(cpointer().scene_pos());
        m_holdcursor->set_type(cursorName);

Index: src/traverso/Interface.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.cpp,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -b -r1.58 -r1.59
--- src/traverso/Interface.cpp  11 Apr 2007 04:04:24 -0000      1.58
+++ src/traverso/Interface.cpp  11 Apr 2007 15:56:35 -0000      1.59
@@ -102,7 +102,7 @@
 {
        PENTERCONS;
        setWindowTitle("Traverso");
-       setMinimumSize(150, 100);
+       setMinimumSize(400, 300);
        setWindowIcon(QPixmap (":/windowicon") );
        //         setMaximumWidth(1024);
        //         setMaximumHeight(768);
@@ -429,17 +429,6 @@
        
        action = menu->addAction(tr("&About Traverso"));
        connect(action, SIGNAL(triggered(bool)), this, SLOT(about_traverso()));
-       
-       
-       action = menuBar()->addAction(tr("Undo"));
-       action->setIcon(QIcon(find_pixmap(":/undo-16")));
-       action->setShortcuts(QKeySequence::Undo);
-       connect(action, SIGNAL(triggered( bool )), this, SLOT(undo()));
-       
-       action = menuBar()->addAction(tr("Redo"));
-       action->setIcon(QIcon(find_pixmap(":/redo-16")));
-       action->setShortcuts(QKeySequence::Redo);
-       connect(action, SIGNAL(triggered( bool )), this, SLOT(redo()));
 }
 
 void Interface::process_context_menu_action( QAction * action )
@@ -797,16 +786,6 @@
        return QSize(800, 600);
 }
 
-void Interface::undo()
-{
-       pm().get_undogroup()->undo();
-}
-
-void Interface::redo()
-{
-       pm().get_undogroup()->redo();
-}
-
 Command* Interface::show_newsong_dialog()
 {
        if (! m_newSongDialog) {

Index: src/traverso/Interface.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.h,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -b -r1.29 -r1.30
--- src/traverso/Interface.h    5 Apr 2007 13:15:06 -0000       1.29
+++ src/traverso/Interface.h    11 Apr 2007 15:56:35 -0000      1.30
@@ -157,8 +157,6 @@
        
 private slots:
        void delete_songwidget(Song*);
-       void undo();
-       void redo();
 };
 
 

Index: src/traverso/songcanvas/AudioClipView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.cpp,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -b -r1.36 -r1.37
--- src/traverso/songcanvas/AudioClipView.cpp   10 Apr 2007 17:11:48 -0000      
1.36
+++ src/traverso/songcanvas/AudioClipView.cpp   11 Apr 2007 15:56:35 -0000      
1.37
@@ -82,7 +82,7 @@
        connect(m_clip, SIGNAL(fadeRemoved(FadeCurve*)), this, 
SLOT(remove_fadeview( FadeCurve*)));
        connect(m_clip, SIGNAL(positionChanged(Snappable*)), this, 
SLOT(position_changed()));
        
-       connect(m_sv, SIGNAL(viewModeChanged()), this, SLOT(repaint()));
+       connect(m_song, SIGNAL(modeChanged()), this, SLOT(repaint()));
        
        if (m_clip->recording_state() == AudioClip::RECORDING) {
                start_recording();
@@ -91,6 +91,7 @@
        
 //     setFlags(ItemIsSelectable | ItemIsMovable);
        setAcceptsHoverEvents(true);
+       setCursor(QCursor(find_pixmap(":/cursorFloatOverClip")));
 }
 
 AudioClipView::~ AudioClipView()
@@ -197,7 +198,7 @@
                painter->drawLine(1, m_infoAreaHeight, 1, m_height);*/
        }
        
-       if (!m_sv->viewmode == CurveMode) {
+       if (m_song->get_mode() == Song::EFFECTS) {
 //             curveView->paint(painter, option, widget);
        }
        
@@ -396,7 +397,7 @@
                // Macroview, paint waveform with painterpath
                } else {
                        
-                       if (m_sv->viewmode == EditMode) {
+                       if (m_song->get_mode() == Song::EDIT) {
                                
p->setPen(themer()->get_color("AudioClip:wavemacroview:outline"));
                                if (m_fillwave) {
                                        
p->setBrush(themer()->get_color("AudioClip:wavemacroview:brush"));
@@ -654,7 +655,9 @@
 
 void AudioClipView::hoverEnterEvent(QGraphicsSceneHoverEvent * event)
 {
-       Q_UNUSED(event);
+       if (ie().is_holding()) {
+               return;
+       }
 
        update(m_boundingRect);
 }

Index: src/traverso/songcanvas/CurveView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/CurveView.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- src/traverso/songcanvas/CurveView.cpp       10 Apr 2007 17:11:48 -0000      
1.25
+++ src/traverso/songcanvas/CurveView.cpp       11 Apr 2007 15:56:35 -0000      
1.26
@@ -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.25 2007/04/10 17:11:48 r_sijrier Exp $
+$Id: CurveView.cpp,v 1.26 2007/04/11 15:56:35 r_sijrier Exp $
 */
 
 #include "CurveView.h"
@@ -29,6 +29,8 @@
 #include <Curve.h>
 #include <CurveNode.h>
 #include <ContextPointer.h>
+#include <Song.h>
+
 #include <AddRemove.h>
 
 #include <Debugger.h>
@@ -179,7 +181,7 @@
        connect(m_curve, SIGNAL(nodeAdded(CurveNode*)), this, 
SLOT(add_curvenode_view(CurveNode*)));
        connect(m_curve, SIGNAL(nodeRemoved(CurveNode*)), this, 
SLOT(remove_curvenode_view(CurveNode*)));
        connect(m_curve, SIGNAL(nodePositionChanged()), this, 
SLOT(node_moved()));
-       connect(m_sv, SIGNAL(viewModeChanged()), this, SLOT(set_view_mode()));
+       connect(m_sv->get_song(), SIGNAL(modeChanged()), this, 
SLOT(set_view_mode()));
        
        setAcceptsHoverEvents(true);
        
@@ -207,7 +209,7 @@
        
        QPen pen;
        
-       if (m_sv->viewmode == CurveMode) {
+       if (m_sv->get_song()->get_mode() == Song::EFFECTS) {
                pen.setColor(themer()->get_color("Curve:active"));
        } else {
                pen.setColor(themer()->get_color("Curve:inactive"));
@@ -368,6 +370,10 @@
 
 void CurveView::update_softselected_node( QPoint pos )
 {
+       if (ie().is_holding()) {
+               return;
+       }
+       
        CurveNodeView* prevNode = m_blinkingNode;
        m_blinkingNode = m_nodeViews.first();
        
@@ -505,7 +511,7 @@
 
 void CurveView::set_view_mode()
 {
-       if (m_sv->viewmode == CurveMode) {
+       if (m_sv->get_song()->get_mode() == Song::EFFECTS) {
                show();
        } else {
                hide();

Index: src/traverso/songcanvas/FadeView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/FadeView.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- src/traverso/songcanvas/FadeView.cpp        2 Apr 2007 21:05:43 -0000       
1.12
+++ src/traverso/songcanvas/FadeView.cpp        11 Apr 2007 15:56:35 -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: FadeView.cpp,v 1.12 2007/04/02 21:05:43 r_sijrier Exp $
+$Id: FadeView.cpp,v 1.13 2007/04/11 15:56:35 r_sijrier Exp $
 */
 
 #include "FadeView.h"
@@ -33,7 +33,8 @@
 #include <InputEngine.h>
 #include <AddRemove.h>
 
-#include "Song.h"
+#include <Song.h>
+#include <Utils.h>
 
 #include <Debugger.h>
 
@@ -61,6 +62,7 @@
        
        load_theme_data();
        setAcceptsHoverEvents(true);
+       setCursor(QCursor(find_pixmap(":/cursorFloatOverFade")));
        
        connect(m_fadeCurve, SIGNAL(stateChanged()), this, 
SLOT(state_changed()));
        connect(m_fadeCurve, SIGNAL(rangeChanged()), this, 
SLOT(state_changed()));

Index: src/traverso/songcanvas/PluginView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/PluginView.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- src/traverso/songcanvas/PluginView.cpp      23 Feb 2007 13:52:38 -0000      
1.10
+++ src/traverso/songcanvas/PluginView.cpp      11 Apr 2007 15:56:35 -0000      
1.11
@@ -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: PluginView.cpp,v 1.10 2007/02/23 13:52:38 r_sijrier Exp $
+$Id: PluginView.cpp,v 1.11 2007/04/11 15:56:35 r_sijrier Exp $
 */
 
 #include "PluginView.h"
@@ -58,6 +58,7 @@
        m_boundingRect = QRectF(0, 0, 100, 25);
        
        setAcceptsHoverEvents(true);
+       setCursor(QCursor(find_pixmap(":/cursorFloatOverPlugin")));
 }
 
 PluginView::~PluginView( )

Index: src/traverso/songcanvas/SongView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongView.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -b -r1.39 -r1.40
--- src/traverso/songcanvas/SongView.cpp        10 Apr 2007 19:37:57 -0000      
1.39
+++ src/traverso/songcanvas/SongView.cpp        11 Apr 2007 15:56:35 -0000      
1.40
@@ -88,7 +88,7 @@
        m_vScrollBar = songwidget->m_vScrollBar;
        m_hScrollBar = songwidget->m_hScrollBar;
        
-       set_editing_mode();
+       m_song->set_editing_mode();
        
        m_clipsViewPort->scene()->addItem(this);
        
@@ -495,20 +495,6 @@
                                        scalefactor);
 }
 
-Command * SongView::set_editing_mode( )
-{
-       viewmode = EditMode;
-       emit viewModeChanged();
-       return 0;
-}
-
-Command * SongView::set_curve_mode( )
-{
-       viewmode = CurveMode;
-       emit viewModeChanged();
-       return 0;
-}
-
 Command* SongView::scroll_up( )
 {
        QScrollBar* scrollbar = m_clipsViewPort->verticalScrollBar();

Index: src/traverso/songcanvas/SongView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongView.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- src/traverso/songcanvas/SongView.h  5 Apr 2007 13:15:07 -0000       1.18
+++ src/traverso/songcanvas/SongView.h  11 Apr 2007 15:56:35 -0000      1.19
@@ -86,7 +86,6 @@
        int vscrollbar_value() const;
 
        int             scalefactor;
-       ViewMode        viewmode;
 
 private:
         Song*                  m_song;
@@ -134,8 +133,6 @@
         Command* goto_end();
        Command* play_cursor_move();
        Command* work_cursor_move();
-       Command* set_editing_mode();
-       Command* set_curve_mode();
        Command* add_marker();
        Command* playhead_to_workcursor();
        
@@ -146,9 +143,6 @@
        void update_shuttle();
        void work_cursor_updated();
        void play_head_updated();
-       
-signals:
-       void viewModeChanged();
 };
 
 

Index: src/traverso/songcanvas/TimeLineView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TimeLineView.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- src/traverso/songcanvas/TimeLineView.cpp    10 Apr 2007 17:11:48 -0000      
1.19
+++ src/traverso/songcanvas/TimeLineView.cpp    11 Apr 2007 15:56:35 -0000      
1.20
@@ -319,7 +319,6 @@
 
        if (m_blinkingMarker) {
                m_blinkingMarker->set_active(true);
-//             m_blinkTimer.start(40);
        }
 }
 
@@ -333,7 +332,6 @@
                return;
        }
        
-//     m_blinkTimer.stop();
        if (m_blinkingMarker) {
                // TODO add these functions, or something else to 
                // let the user know which marker is to be moved!

Index: src/traverso/songcanvas/TimeLineView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TimeLineView.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- src/traverso/songcanvas/TimeLineView.h      9 Apr 2007 14:00:57 -0000       
1.6
+++ src/traverso/songcanvas/TimeLineView.h      11 Apr 2007 15:56:35 -0000      
1.7
@@ -56,7 +56,6 @@
        QList<MarkerView* > m_markerViews;
        TimeLine*       m_timeline;
        MarkerView*     m_blinkingMarker;
-       QTimer          m_blinkTimer;
        QColor          m_blinkColor;
        int             m_samplerate;
 

Index: src/traverso/songcanvas/TrackPanelView.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/traverso/songcanvas/TrackPanelView.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- src/traverso/songcanvas/TrackPanelView.cpp  5 Apr 2007 22:55:37 -0000       
1.18
+++ src/traverso/songcanvas/TrackPanelView.cpp  11 Apr 2007 15:56:35 -0000      
1.19
@@ -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: TrackPanelView.cpp,v 1.18 2007/04/05 22:55:37 r_sijrier Exp $
+$Id: TrackPanelView.cpp,v 1.19 2007/04/11 15:56:35 r_sijrier Exp $
 */
 
 #include <QGraphicsScene>
@@ -101,7 +101,7 @@
        
 //     setFlags(ItemIsSelectable | ItemIsMovable);
 //     setAcceptsHoverEvents(true);
-
+       setCursor(QCursor(find_pixmap(":/cursorFloatOverTrack")));
 }
 
 TrackPanelView::~TrackPanelView( )

Index: src/traverso/songcanvas/TrackView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TrackView.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- src/traverso/songcanvas/TrackView.cpp       29 Mar 2007 11:12:06 -0000      
1.25
+++ src/traverso/songcanvas/TrackView.cpp       11 Apr 2007 15:56:35 -0000      
1.26
@@ -35,6 +35,7 @@
 #include <Song.h>
 #include <Track.h>
 #include <AudioClip.h>
+#include <Utils.h>
 
 #include <PluginSelectorDialog.h>
 
@@ -55,7 +56,7 @@
 
        m_track = track;
        setFlags(ItemIsSelectable | ItemIsMovable);
-//     setAcceptsHoverEvents(true);
+       setCursor(QCursor(find_pixmap(":/cursorFloatOverTrack")));
 
        m_panel = new TrackPanelView(this);
        calculate_bounding_rect();
@@ -204,6 +205,5 @@
        return 0; 
 }
 
-//eof
-
 
+//eof

Index: src/traverso/songcanvas/ViewItem.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/ViewItem.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- src/traverso/songcanvas/ViewItem.h  5 Apr 2007 22:55:37 -0000       1.13
+++ src/traverso/songcanvas/ViewItem.h  11 Apr 2007 15:56:35 -0000      1.14
@@ -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: ViewItem.h,v 1.13 2007/04/05 22:55:37 r_sijrier Exp $
+$Id: ViewItem.h,v 1.14 2007/04/11 15:56:35 r_sijrier Exp $
 */
 
 #ifndef VIEW_ITEM_H
@@ -60,11 +60,6 @@
        ~ViewItem() {};
        
        enum {Type = UserType + 1};
-       enum ViewMode {
-               EditMode,
-               CurveMode,
-               PluginMode
-       };
        
        QRectF boundingRect() const;
        virtual void calculate_bounding_rect() {

Index: src/traverso/widgets/InfoWidgets.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- src/traverso/widgets/InfoWidgets.cpp        4 Apr 2007 00:08:22 -0000       
1.8
+++ src/traverso/widgets/InfoWidgets.cpp        11 Apr 2007 15:56:35 -0000      
1.9
@@ -43,9 +43,7 @@
 // in case we run with memory leak detection enabled!
 #include "Debugger.h"
 
-static const int INFOBAR_HEIGH_VER_ORIENTATION = 30;
-static const int INFOBAR_HEIGH_HOR_ORIENTATION = 28;
-static const int SYS_INFOBAR_HEIGHT_HOR_ORIENTATION = 24;
+static const int INFOBAR_HEIGH_HOR_ORIENTATION = 25;
 
 
 SystemResources::SystemResources(QWidget * parent)
@@ -65,11 +63,13 @@
        m_writeBufferStatus->add_range_color(0, 40, QColor(255, 0, 0));
        m_writeBufferStatus->add_range_color(40, 60, QColor(255, 255, 0));
        m_writeBufferStatus->add_range_color(60, 100, QColor(227, 254, 227));
+       m_writeBufferStatus->setMinimumWidth(60);
        
        m_readBufferStatus->set_range(0, 100);
        m_readBufferStatus->add_range_color(0, 40, QColor(255, 0, 0));
        m_readBufferStatus->add_range_color(40, 60, QColor(255, 255, 0));
        m_readBufferStatus->add_range_color(60, 100, QColor(227, 254, 227));
+       m_readBufferStatus->setMinimumWidth(60);
        
        m_cpuUsage->set_range(0, 100);
        m_cpuUsage->set_int_rounding(false);
@@ -82,6 +82,17 @@
        m_writeBufferStatus->set_text("W");
        m_cpuUsage->set_text("CPU");
        
+       QHBoxLayout* lay = new QHBoxLayout(this);
+       lay->addSpacing(6);
+       lay->addWidget(m_icon);
+       lay->addWidget(m_readBufferStatus);
+       lay->addWidget(m_writeBufferStatus);
+       lay->addWidget(m_cpuUsage);
+       lay->setMargin(0);
+       lay->addSpacing(6);
+       setLayout(lay);
+       setFrameStyle(QFrame::NoFrame);
+       
        connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(update_status()));
        
        update_status();
@@ -110,49 +121,13 @@
 }
 
 
-void SystemResources::set_orientation(Qt::Orientation orientation)
-{
-       QLayout* lay = layout();
-       
-       if (lay) delete lay;
-       
-       InfoWidget::set_orientation(orientation);
-       
-       if (m_orientation == Qt::Horizontal) {
-               QHBoxLayout* lay = new QHBoxLayout(this);
-               lay->addSpacing(6);
-               lay->addWidget(m_icon);
-               lay->addWidget(m_readBufferStatus);
-               lay->addWidget(m_writeBufferStatus);
-               lay->addWidget(m_cpuUsage);
-               lay->setMargin(0);
-               lay->addSpacing(6);
-               setLayout(lay);
-//             setFrameStyle(QFrame::StyledPanel);
-               setFrameStyle(QFrame::NoFrame);
-       } else {
-               QVBoxLayout* lay = new QVBoxLayout(this);
-               lay->addWidget(m_readBufferStatus);
-               lay->addWidget(m_writeBufferStatus);
-               lay->addWidget(m_cpuUsage);
-               lay->setMargin(0);
-               setFrameStyle(QFrame::StyledPanel);
-               setLayout(lay);
-       }
-}
-
 QSize SystemResources::sizeHint() const
 {
-       if (m_orientation == Qt::Horizontal) {
-               return QSize(250, SYS_INFOBAR_HEIGHT_HOR_ORIENTATION);
-       }
-       
-       return QSize(100, SYS_INFOBAR_HEIGHT_HOR_ORIENTATION);
+       return QSize(250, INFOBAR_HEIGH_HOR_ORIENTATION);
 }
 
 
 
-
 DriverInfo::DriverInfo( QWidget * parent )
        : InfoWidget(parent)
 {
@@ -161,12 +136,17 @@
        m_driver->setToolTip(tr("Click to configure audiodevice"));
        m_driver->setFlat(true);
        m_driver->setFocusPolicy(Qt::NoFocus);
-       m_latency = new QLabel(this);
-       m_xruns = new QLabel(this);
-       m_rateBitdepth = new QLabel(this);
        
        driverConfigWidget = 0;
        
+       QHBoxLayout* lay = new QHBoxLayout(this);
+       lay->addWidget(m_driver);
+       lay->setMargin(0);
+       setLayout(lay);
+       
+//     setFrameStyle(QFrame::StyledPanel);
+       setFrameStyle(QFrame::NoFrame);
+       
        connect(&audiodevice(), SIGNAL(driverParamsChanged()), this, 
SLOT(update_driver_info()));
        connect(&audiodevice(), SIGNAL(bufferUnderRun()), this, 
SLOT(update_xrun_info()));
        connect(m_driver, SIGNAL(clicked( bool )), this, 
SLOT(show_driver_config_widget()));
@@ -182,73 +162,33 @@
 
 void DriverInfo::draw_information( )
 {
+       QString text;
        QString latency = QString::number( ( (float)  
(audiodevice().get_buffer_size() * 2) / audiodevice().get_sample_rate() ) * 
1000, 'f', 2 ).append(" ms ");
        
-       QByteArray xruns = "";
+       QByteArray xruns;
        if (xrunCount) {
                xruns = QByteArray::number(xrunCount).prepend(" xruns ");
        }
        
-       m_driver->setText(audiodevice().get_driver_type());
-       m_latency->setText(" @ " + latency);
-       
m_rateBitdepth->setText(QString::number(audiodevice().get_sample_rate()) + 
+       text = audiodevice().get_driver_type() + "   " +
+                       QString::number(audiodevice().get_sample_rate()) + 
                        "/" + 
-                       QString::number(audiodevice().get_bit_depth()));
-       m_xruns->setText(xruns);
+                       QString::number(audiodevice().get_bit_depth()) +
+                       " @ " + latency +
+                       xruns;
+       
+       m_driver->setText(text);
 }
 
 void DriverInfo::update_xrun_info( )
 {
-       set_orientation(Qt::Horizontal);
        xrunCount++;
        draw_information();
 }
 
-void DriverInfo::set_orientation(Qt::Orientation orientation)
-{
-       QLayout* lay = layout();
-       
-       if (lay) delete lay;
-       
-       InfoWidget::set_orientation(orientation);
-       
-       if (m_orientation == Qt::Horizontal) {
-               QHBoxLayout* lay = new QHBoxLayout(this);
-               
-               lay->addWidget(m_driver);
-               lay->addWidget(m_rateBitdepth);
-               lay->addWidget(m_latency);
-               if (xrunCount > 0) {
-                       lay->addWidget(m_xruns);
-               }
-               
-               lay->setMargin(0);
-               setLayout(lay);
-//             setFrameStyle(QFrame::StyledPanel);
-               setFrameStyle(QFrame::NoFrame);
-       } else {
-               QVBoxLayout* lay = new QVBoxLayout(this);
-               
-               lay->addWidget(m_driver);
-               lay->addWidget(m_rateBitdepth);
-               lay->addWidget(m_latency);
-               if (xrunCount > 0) {
-                       lay->addWidget(m_xruns);
-               }
-               
-               lay->setMargin(0);
-               setFrameStyle(QFrame::StyledPanel);
-               setLayout(lay);
-       }
-}
-
 QSize DriverInfo::sizeHint() const
 {
-       if (m_orientation == Qt::Horizontal) {
-               return QSize(250, INFOBAR_HEIGH_HOR_ORIENTATION);
-       }
-       
-       return QSize(90, INFOBAR_HEIGH_VER_ORIENTATION);
+       return QSize(150, INFOBAR_HEIGH_HOR_ORIENTATION);
 }
 
 void DriverInfo::show_driver_config_widget( )
@@ -357,10 +297,7 @@
 
 QSize HDDSpaceInfo::sizeHint() const
 {
-       if (m_orientation == Qt::Horizontal)
-               return QSize(110, SYS_INFOBAR_HEIGHT_HOR_ORIENTATION);
-       
-       return QSize(100, SYS_INFOBAR_HEIGHT_HOR_ORIENTATION);
+       return QSize(70, INFOBAR_HEIGH_HOR_ORIENTATION);
 }
 
 
@@ -372,6 +309,7 @@
        setFrameStyle(QFrame::NoFrame);
        
        m_box = new QComboBox;
+       m_box->setMinimumWidth(140);
        
        QHBoxLayout* lay = new QHBoxLayout;
        lay->setMargin(0);
@@ -403,8 +341,9 @@
 {
        m_box->clear();
        foreach(Song* song, m_project->get_songs()) {
-               
m_box->addItem(QString::number(m_project->get_song_index(song->get_id())) +
-                       " " + song->get_title(),
+               m_box->addItem("Song " +
+                       
QString::number(m_project->get_song_index(song->get_id())) +
+                       ": " + song->get_title(),
                       song->get_id());
        }
 }
@@ -421,14 +360,6 @@
        update_songs();
 }
 
-QSize SongSelector::sizeHint() const
-{
-       if (m_orientation == Qt::Horizontal)
-               return QSize(140, INFOBAR_HEIGH_HOR_ORIENTATION);
-       
-       return QSize(100, INFOBAR_HEIGH_VER_ORIENTATION);
-}
-
 void SongSelector::index_changed(int index)
 {
        qint64 id = m_box->itemData(index).toLongLong();
@@ -455,9 +386,6 @@
        : InfoWidget(parent)
 {
        setAutoFillBackground(false);
-       
-       setToolTip(tr("Playhead position<br /><br />Click to change Playhead 
behavior"));
-       
        connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(update()));
 }
 
@@ -510,15 +438,15 @@
        painter.setFont(QFont("Bitstream Vera Sans", 13));
        painter.setPen(fontcolor);
        
-/*     painter.setBrush(background);
-       painter.setRenderHints(QPainter::Antialiasing);
-       painter.drawRoundRect(0, 0, width(), height(), 20);*/
-       
        painter.drawText(QRect(0, 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_updateTimer.start(150);
 }
 
@@ -530,60 +458,25 @@
 
 QSize PlayHeadInfo::sizeHint() const
 {
-       if (m_orientation == Qt::Horizontal)
                return QSize(140, INFOBAR_HEIGH_HOR_ORIENTATION);
-       
-       return QSize(100, INFOBAR_HEIGH_VER_ORIENTATION);
 }
 
 
 
-
-
 InfoToolBar::InfoToolBar(QWidget * parent)
        : QToolBar(parent)
 {
        setObjectName(tr("Main Toolbar"));
        
-       driverInfo = new DriverInfo(this);
-       m_widgets.append(driverInfo);
+       setMovable(false);
        
        m_songinfo = new SongInfo(this);
-       m_widgets.append(m_songinfo);
-       
-
-       connect(this, SIGNAL(orientationChanged(Qt::Orientation)), this, 
SLOT(orientation_changed(Qt::Orientation)));
-       
-       orientation_changed(orientation());
-}
-
-
-void InfoToolBar::orientation_changed(Qt::Orientation orientation)
-{
-       clear();
        
-       QAction* action;
-       if (orientation == Qt::Horizontal) {
-               action = addWidget(driverInfo);
-               action->setVisible(true);
-               addSeparator();
-               action = addWidget(m_songinfo);
-               action->setVisible(true);
-               addSeparator();
-       } else {
-               action = addWidget(m_songinfo);
+       QAction* action = addWidget(m_songinfo);
                action->setVisible(true);
-               action = addWidget(driverInfo);
-               action->setVisible(true);
-       }
-       
-       foreach(InfoWidget* widget, m_widgets) {
-               widget->set_orientation(orientation);
-       }
 }
 
 
-
 InfoWidget::InfoWidget(QWidget* parent)
        : QFrame(parent)
        , m_song(0)
@@ -617,10 +510,6 @@
        m_song = song;
 }
 
-void InfoWidget::set_orientation(Qt::Orientation orientation)
-{
-       m_orientation = orientation;
-}
 
 SongInfo::SongInfo(QWidget * parent)
        : InfoWidget(parent)
@@ -642,52 +531,67 @@
        m_follow->setDefaultAction(m_followAct);
        m_follow->setFocusPolicy(Qt::NoFocus);
        
+       m_mode = new QComboBox(this);
+       m_mode->addItem("Mode: Edit");
+       m_mode->addItem("Mode: Effects");
+       m_mode->setFocusPolicy(Qt::NoFocus);
+       
        m_record = new QPushButton(tr("Record"));
        m_record->setFocusPolicy(Qt::NoFocus);
        m_record->setEnabled(false);
        m_record->setIcon(find_pixmap(":/redled-16"));
-       m_record->setMaximumHeight(22);
        
-       connect(m_snapAct, SIGNAL(triggered(bool)), this, 
SLOT(snap_state_changed(bool)));
-       connect(m_followAct, SIGNAL(triggered(bool)), this, 
SLOT(follow_state_changed(bool)));
-       connect(&config(), SIGNAL(configChanged()), this, 
SLOT(update_follow_state()));
-       update_follow_state();
-}
-
-void SongInfo::set_orientation(Qt::Orientation orientation)
-{
-       QLayout* lay = layout();
        
-       if (lay) delete lay;
+       QToolButton* undobutton = new QToolButton(this);
+       QAction* action = new QAction(tr("Undo"), this);
+       action->setIcon(QIcon(find_pixmap(":/undo-16")));
+       action->setShortcuts(QKeySequence::Undo);
+       undobutton->setDefaultAction(action);
+       undobutton->setFocusPolicy(Qt::NoFocus);
+       undobutton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+       undobutton->setText(tr("Undo"));
+       connect(action, SIGNAL(triggered( bool )), &pm(), SLOT(undo()));
+       
+       QToolButton* redobutton = new QToolButton(this);
+       action = new QAction(tr("Redo"), this);
+       action->setIcon(QIcon(find_pixmap(":/redo-16")));
+       action->setShortcuts(QKeySequence::Redo);
+       redobutton->setDefaultAction(action);
+       redobutton->setFocusPolicy(Qt::NoFocus);
+       redobutton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+       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()));*/
        
-       InfoWidget::set_orientation(orientation);
-       
-       if (m_orientation == Qt::Horizontal) {
                QHBoxLayout* lay = new QHBoxLayout(this);
                
-               lay->addWidget(m_playhead);
-               lay->addWidget(m_record);
+       lay->addWidget(m_mode);
                lay->addWidget(m_snap);
                lay->addWidget(m_follow);
+       lay->addWidget(m_record);
+       lay->addWidget(m_playhead);
                lay->addWidget(m_selector);
+       lay->addStretch(5);
+//     lay->addSpacing(12);
+       lay->addWidget(undobutton);
+       lay->addWidget(redobutton);
                
                setLayout(lay);
                lay->setMargin(0);
                
                setFrameStyle(QFrame::NoFrame);
-       } else {
-               QVBoxLayout* lay = new QVBoxLayout(this);
+       setMaximumHeight(INFOBAR_HEIGH_HOR_ORIENTATION);
                
-               lay->addWidget(m_playhead);
-               lay->addWidget(m_record);
-               lay->addWidget(m_snap);
-               lay->addWidget(m_follow);
-               lay->addWidget(m_selector);
+       connect(m_snapAct, SIGNAL(triggered(bool)), this, 
SLOT(snap_state_changed(bool)));
+       connect(m_followAct, SIGNAL(triggered(bool)), this, 
SLOT(follow_state_changed(bool)));
+       connect(&config(), SIGNAL(configChanged()), this, 
SLOT(update_follow_state()));
+       connect(m_mode, SIGNAL(currentIndexChanged(int)), this, 
SLOT(mode_index_changed(int)));
                
-               lay->setMargin(0);
-               setFrameStyle(QFrame::StyledPanel);
-               setLayout(lay);
-       }
+       update_follow_state();
 }
 
 void SongInfo::set_song(Song* song)
@@ -726,16 +630,22 @@
        config().save();
 }
 
-QSize SongInfo::sizeHint() const
+void SongInfo::mode_index_changed(int index)
 {
-       if (m_orientation == Qt::Horizontal) {
-               return QSize(500, INFOBAR_HEIGH_HOR_ORIENTATION);
+       if (index == 0) {
+               m_song->set_editing_mode();
+       } else {
+               m_song->set_effects_mode();
        }
+}
        
-       return QSize(90, INFOBAR_HEIGH_VER_ORIENTATION * 5 - 6);
-       
+QSize SongInfo::sizeHint() const
+{
+       return QSize(400, INFOBAR_HEIGH_HOR_ORIENTATION);
 }
 
+
+
 SysInfoToolBar::SysInfoToolBar(QWidget * parent)
        : QToolBar(parent)
 {
@@ -743,31 +653,26 @@
        message = new MessageWidget(this);
        resourcesInfo = new SystemResources(this);
        hddInfo = new HDDSpaceInfo(this);
+       driverInfo = new DriverInfo(this);
        
        setMovable(false);
        
-       connect(this, SIGNAL(orientationChanged(Qt::Orientation)), this, 
SLOT(orientation_changed(Qt::Orientation)));
-       
-       orientation_changed(orientation());
-}
-
-void SysInfoToolBar::orientation_changed(Qt::Orientation orientation)
-{
-       clear();
-       
        QAction* action;
        
+       action = addWidget(driverInfo);
+       action->setVisible(true);
+       addSeparator();
        action = addWidget(message);
        action->setVisible(true);
        addSeparator();
        action = addWidget(resourcesInfo);
-       resourcesInfo->set_orientation(orientation);
        action->setVisible(true);
        addSeparator();
        action = addWidget(hddInfo);
        action->setVisible(true);
-}
 
+       setMaximumHeight(INFOBAR_HEIGH_HOR_ORIENTATION);
+}
 
 SystemValueBar::SystemValueBar(QWidget * parent)
        : QWidget(parent)
@@ -846,7 +751,7 @@
 
 QSize SystemValueBar::sizeHint() const
 {
-       return QSize(70, 25);
+       return QSize(60, 25);
 }
 
 void SystemValueBar::set_int_rounding(bool rounding)

Index: src/traverso/widgets/InfoWidgets.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- src/traverso/widgets/InfoWidgets.h  4 Apr 2007 00:08:22 -0000       1.6
+++ src/traverso/widgets/InfoWidgets.h  11 Apr 2007 15:56:35 -0000      1.7
@@ -50,10 +50,8 @@
 protected:
        Song*           m_song;
        Project*        m_project;
-       Qt::Orientation m_orientation;
        
        virtual QSize sizeHint() const {return QSize(size());}
-       virtual void set_orientation(Qt::Orientation orientation);
 
 private:
        friend class InfoToolBar;
@@ -73,7 +71,6 @@
         SystemResources(QWidget* parent = 0);
 
 protected:
-       void set_orientation(Qt::Orientation orientation);
        QSize sizeHint () const;
        
 private:
@@ -100,15 +97,11 @@
         ~DriverInfo() {};
 
 protected:
-       void set_orientation(Qt::Orientation orientation);
        QSize sizeHint () const;
 
 private:
         QTimer         updateTimer;
        QPushButton*    m_driver;
-       QLabel*         m_rateBitdepth;
-       QLabel*         m_latency;
-       QLabel*         m_xruns;
         int            xrunCount;
        QuickDriverConfigWidget* driverConfigWidget;
        
@@ -152,9 +145,6 @@
 public:
        SongSelector(QWidget* parent=0);
 
-protected:
-       QSize sizeHint() const; 
-
 private:
        QComboBox* m_box;
 
@@ -167,7 +157,6 @@
        void update_songs();
        void change_index_to(Song* song);
        void index_changed(int index);
-               
 };
 
 
@@ -206,7 +195,6 @@
        QAction *get_follow_action() {return m_followAct;};
        
 protected:
-       void set_orientation(Qt::Orientation orientation);
        QSize sizeHint() const; 
        
 protected slots:
@@ -217,11 +205,13 @@
        void snap_state_changed(bool state);
        void update_follow_state();
        void follow_state_changed(bool state);
+       void mode_index_changed(int index);
        
 private:
        PlayHeadInfo*   m_playhead;
        SongSelector*   m_selector;
        QToolButton*    m_snap;
+       QComboBox*      m_mode;
        QAction*        m_snapAct;
        QToolButton*    m_follow;
        QAction*        m_followAct;
@@ -231,27 +221,18 @@
 
 class InfoToolBar : public QToolBar
 {
-       Q_OBJECT
-
 public:
        InfoToolBar(QWidget* parent);
        QAction *get_snap_action() {return m_songinfo->get_snap_action();};
        QAction *get_follow_action() {return m_songinfo->get_follow_action();};
 
 private:
-       QList<InfoWidget* > m_widgets;
-       DriverInfo* driverInfo;
        SongInfo*       m_songinfo;
-       
-private slots:
-       void orientation_changed(Qt::Orientation orientation);
 };
 
 
 class SysInfoToolBar : public QToolBar
 {
-       Q_OBJECT
-
 public:
        SysInfoToolBar(QWidget* parent);
 
@@ -259,9 +240,7 @@
        SystemResources* resourcesInfo;
        HDDSpaceInfo* hddInfo;
        MessageWidget* message;
-       
-private slots:
-       void orientation_changed(Qt::Orientation orientation);
+       DriverInfo* driverInfo;
 };
 
 
@@ -302,7 +281,3 @@
 
 //eof
 
-
-
-
-

Index: src/traverso/widgets/MessageWidget.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/MessageWidget.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- src/traverso/widgets/MessageWidget.cpp      16 Mar 2007 00:10:26 -0000      
1.2
+++ src/traverso/widgets/MessageWidget.cpp      11 Apr 2007 15:56:35 -0000      
1.3
@@ -67,7 +67,6 @@
 {
        QHBoxLayout* lay = new QHBoxLayout;
        lay->setMargin(1);
-//     lay->addStretch(5);
        
        m_button = new QPushButton;
        
m_button->setIcon(style()->standardIcon(QStyle::SP_MessageBoxInformation).pixmap(14,
 14));
@@ -76,8 +75,10 @@
        
        MessageWidgetPrivate* message = new MessageWidgetPrivate(this);
                
+       lay->addSpacing(6);
        lay->addWidget(message);
        lay->addWidget(m_button);
+       lay->addSpacing(6);
        
        setLayout(lay);
 




reply via email to

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