traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso src/traverso/CMakeLists.txt src/traver...


From: Nicola Doebelin
Subject: [Traverso-commit] traverso src/traverso/CMakeLists.txt src/traver...
Date: Tue, 13 May 2008 23:24:36 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Nicola Doebelin <n_doebelin>    08/05/13 23:24:35

Modified files:
        src/traverso   : CMakeLists.txt Interface.cpp Interface.h 
                         traverso.pro traverso.qrc 
        src/traverso/widgets: InfoWidgets.cpp InfoWidgets.h 
Added files:
        resources/images/icons: media-seek-backward.png 
                                media-seek-backward.svgz 
                                media-seek-forward.png 
                                media-seek-forward.svgz 
                                media-skip-backward.png 
                                media-skip-backward.svgz 
                                media-skip-forward.png 
                                media-skip-forward.svgz 
        src/traverso/widgets: TransportConsoleWidget.cpp 
                              TransportConsoleWidget.h 

Log message:
        * new transport console added
        * InfoToolBar removed

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/images/icons/media-seek-backward.png?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/images/icons/media-seek-backward.svgz?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/images/icons/media-seek-forward.png?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/images/icons/media-seek-forward.svgz?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/images/icons/media-skip-backward.png?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/images/icons/media-skip-backward.svgz?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/images/icons/media-skip-forward.png?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/images/icons/media-skip-forward.svgz?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/CMakeLists.txt?cvsroot=traverso&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.cpp?cvsroot=traverso&r1=1.136&r2=1.137
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.h?cvsroot=traverso&r1=1.55&r2=1.56
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/traverso.pro?cvsroot=traverso&r1=1.82&r2=1.83
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/traverso.qrc?cvsroot=traverso&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.cpp?cvsroot=traverso&r1=1.61&r2=1.62
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.h?cvsroot=traverso&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/TransportConsoleWidget.cpp?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/TransportConsoleWidget.h?cvsroot=traverso&rev=1.1

Patches:
Index: src/traverso/CMakeLists.txt
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/CMakeLists.txt,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- src/traverso/CMakeLists.txt 18 Feb 2008 08:17:32 -0000      1.12
+++ src/traverso/CMakeLists.txt 13 May 2008 23:24:32 -0000      1.13
@@ -50,6 +50,7 @@
 widgets/ResourcesWidget.cpp
 widgets/CorrelationMeterWidget.cpp
 widgets/SpectralMeterWidget.cpp
+widgets/TransportConsoleWidget.cpp
 )
 
 SET(TRAVERSO_UI_FILES
@@ -108,6 +109,7 @@
 widgets/MeterWidget.h
 widgets/SpectralMeterWidget.h
 widgets/CorrelationMeterWidget.h
+widgets/TransportConsoleWidget.h
 )
 
 QT4_ADD_RESOURCES(TRAVERSO_RESOURCES

Index: src/traverso/Interface.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.cpp,v
retrieving revision 1.136
retrieving revision 1.137
diff -u -b -r1.136 -r1.137
--- src/traverso/Interface.cpp  12 May 2008 20:44:45 -0000      1.136
+++ src/traverso/Interface.cpp  13 May 2008 23:24:32 -0000      1.137
@@ -52,6 +52,7 @@
 #include "widgets/ResourcesWidget.h"
 #include "widgets/CorrelationMeterWidget.h"
 #include "widgets/SpectralMeterWidget.h"
+#include "widgets/TransportConsoleWidget.h"
 
 #include "dialogs/settings/SettingsDialog.h"
 #include "dialogs/project/ProjectManagerDialog.h"
@@ -160,8 +161,12 @@
        busMonitorDW->setWidget(busMonitor);
        addDockWidget(Qt::RightDockWidgetArea, busMonitorDW);
        
-       m_infoBar = new InfoToolBar(this);
-       addToolBar(m_infoBar);
+       transportDW = new QDockWidget(tr("Transport Console"), this);
+       transportDW->setObjectName("TransportConsoleDockWidget");
+       transportConsole = new TransportConsoleWidget(transportDW);
+       transportDW->setWidget(transportConsole);
+       addDockWidget(Qt::RightDockWidgetArea, transportDW);
+       transportDW->hide();
        
        m_sysinfo = new SysInfoToolBar(this);
        addToolBar(Qt::BottomToolBarArea, m_sysinfo);
@@ -570,6 +575,7 @@
        m_viewMenu->addAction(historyDW->toggleViewAction());
        m_viewMenu->addAction(busMonitorDW->toggleViewAction());
        m_viewMenu->addAction(AudioSourcesDW->toggleViewAction());
+       m_viewMenu->addAction(transportDW->toggleViewAction());
 
        action = m_viewMenu->addAction(tr("Marker Editor..."));
        connect(action, SIGNAL(triggered(bool)), this, 
SLOT(show_marker_dialog()));
@@ -581,8 +587,6 @@
        
        m_viewMenu->addSeparator();
        
-       m_viewMenu->addAction(m_infoBar->toggleViewAction());
-       m_infoBar->toggleViewAction()->setText(tr("Sheet Toolbar"));
        m_viewMenu->addAction(m_sysinfo->toggleViewAction());
        m_sysinfo->toggleViewAction()->setText(tr("System Information"));
        

Index: src/traverso/Interface.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.h,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -b -r1.55 -r1.56
--- src/traverso/Interface.h    12 May 2008 20:44:45 -0000      1.55
+++ src/traverso/Interface.h    13 May 2008 23:24:33 -0000      1.56
@@ -52,6 +52,7 @@
 class SheetWidget;
 class CorrelationMeterWidget;
 class SpectralMeterWidget;
+class TransportConsoleWidget;
 class SettingsDialog;
 class ProjectManagerDialog;
 class OpenProjectDialog;
@@ -113,7 +114,9 @@
        QDockWidget*            AudioSourcesDW;
        ResourcesWidget*        audiosourcesview;
        QDockWidget*            correlationMeterDW;
+       QDockWidget*            transportDW;
        CorrelationMeterWidget* correlationMeter;
+       TransportConsoleWidget* transportConsole;
        QDockWidget*            spectralMeterDW;
        SpectralMeterWidget*    spectralMeter;
        SettingsDialog*         m_settingsdialog;
@@ -121,7 +124,7 @@
        OpenProjectDialog*      m_openProjectDialog;
        InsertSilenceDialog*    m_insertSilenceDialog;
        MarkerDialog*           m_markerDialog;
-       InfoToolBar*            m_infoBar;
+//     InfoToolBar*            m_infoBar;
        SysInfoToolBar*         m_sysinfo;
        BusSelectorDialog*      m_busSelector;
        NewSheetDialog*         m_newSheetDialog;
@@ -132,7 +135,6 @@
        Project*                m_project;
        bool                    m_isFollowing;
 
-
        BusMonitor*             busMonitor;
        QToolBar*               mainToolBar;
        QToolButton*            openGlButton;

Index: src/traverso/traverso.pro
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/traverso.pro,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -b -r1.82 -r1.83
--- src/traverso/traverso.pro   7 Nov 2007 22:02:48 -0000       1.82
+++ src/traverso/traverso.pro   13 May 2008 23:24:33 -0000      1.83
@@ -37,6 +37,7 @@
        CorrelationMeterWidget.h \
        SpectralMeterWidget.h \
        QuickDriverConfigWidget.h \
+       widgets/TransportConsoleWidget.h \
        precompile.h \
        dialogs/settings/Pages.h \
        dialogs/settings/SettingsDialog.h \
@@ -70,6 +71,7 @@
        CorrelationMeterWidget.cpp \
        SpectralMeterWidget.cpp \
        QuickDriverConfigWidget.cpp \
+       widgets/TransportConsoleWidget.cpp \
        dialogs/settings/Pages.cpp \
        dialogs/settings/SettingsDialog.cpp \
        dialogs/project/ProjectManagerDialog.cpp \

Index: src/traverso/traverso.qrc
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/traverso.qrc,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- src/traverso/traverso.qrc   12 May 2008 16:47:50 -0000      1.27
+++ src/traverso/traverso.qrc   13 May 2008 23:24:33 -0000      1.28
@@ -38,6 +38,11 @@
                <file 
alias="performance">../../resources/images/performance.png</file>
                <file 
alias="playstart">../../resources/images/icons/media-playback-start.png</file>
                <file 
alias="playstop">../../resources/images/icons/media-playback-stop.png</file>
+               <file 
alias="skipleft">../../resources/images/icons/media-skip-backward.png</file>
+               <file 
alias="skipright">../../resources/images/icons/media-skip-forward.png</file>
+               <file 
alias="seekleft">../../resources/images/icons/media-seek-backward.png</file>
+               <file 
alias="seekright">../../resources/images/icons/media-seek-forward.png</file>
+               <file 
alias="record">../../resources/images/icons/media-record.png</file>
                <file 
alias="projectmanagement">../../resources/images/icons/32X32/projects.png</file>
                <file 
alias="sheetmanagement">../../resources/images/icons/32X32/sheets.png</file>
                <file 
alias="audiosourcesmanagement">../../resources/images/icons/32X32/audiosources.png</file>

Index: src/traverso/widgets/InfoWidgets.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.cpp,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -b -r1.61 -r1.62
--- src/traverso/widgets/InfoWidgets.cpp        12 May 2008 20:44:46 -0000      
1.61
+++ src/traverso/widgets/InfoWidgets.cpp        13 May 2008 23:24:34 -0000      
1.62
@@ -393,126 +393,6 @@
 
 
 
-PlayHeadInfo::PlayHeadInfo(QWidget* parent)
-       : InfoWidget(parent)
-{
-       setAutoFillBackground(false);
-       setToolTip(tr("Start/stop playback. You should use the SpaceBar! ;-)"));
-       setMinimumWidth(160);
-       create_background();
-       connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(update()));
-}
-
-
-void PlayHeadInfo::set_project(Project* project )
-{
-       if (! project) {
-               stop_sheet_update_timer();
-       }
-       
-       InfoWidget::set_project(project);
-}
-
-void PlayHeadInfo::set_sheet(Sheet* sheet)
-{
-       m_sheet = sheet;
-       
-       if (!m_sheet) {
-               stop_sheet_update_timer();
-               m_playpixmap = find_pixmap(":/playstart");
-               return;
-       }
-       
-       connect(m_sheet, SIGNAL(transferStopped()), this, 
SLOT(stop_sheet_update_timer()));
-       connect(m_sheet, SIGNAL(transferStarted()), this, 
SLOT(start_sheet_update_timer()));
-       connect(m_sheet, SIGNAL(transportPosSet()), this, SLOT(update()));
-       
-       
-       if (m_sheet->is_transport_rolling()) {
-               m_playpixmap = find_pixmap(":/playstop");
-       } else {
-               m_playpixmap = find_pixmap(":/playstart");
-       }
-       
-       update();
-}
-
-void PlayHeadInfo::paintEvent(QPaintEvent* )
-{
-       QPainter painter(this);
-       QString currentTime;
-       
-       if (!m_sheet) {
-               currentTime = "0:00.0";
-       } else {
-               currentTime = 
timeref_to_ms_2(m_sheet->get_transport_location());
-       }
-       
-       int fc = 170;
-       QColor fontcolor = QColor(fc, fc, fc);
-       
-       if (m_sheet && m_sheet->is_transport_rolling()) {
-               fc = 60;
-               fontcolor = QColor(fc, fc, fc);
-       }
-       
-       painter.setFont(themer()->get_font("Playhead:fontscale:info"));
-       painter.setPen(fontcolor);
-       
-       painter.drawPixmap(0, 0, m_background);
-       painter.drawPixmap(8, (height() - m_playpixmap.height()) / 2, 
m_playpixmap);
-       painter.drawText(QRect(30, 4, width(), height() - 6), Qt::AlignCenter, 
currentTime);
-}
-
-void PlayHeadInfo::start_sheet_update_timer( )
-{
-       m_playpixmap = find_pixmap(":/playstop");
-       m_updateTimer.start(150);
-}
-
-void PlayHeadInfo::stop_sheet_update_timer( )
-{
-       m_updateTimer.stop();
-       m_playpixmap = find_pixmap(":/playstart");
-       update();
-}
-
-QSize PlayHeadInfo::sizeHint() const
-{
-       return QSize(120, SONG_TOOLBAR_HEIGHT);
-}
-
-void PlayHeadInfo::resizeEvent(QResizeEvent * e)
-{
-       Q_UNUSED(e);
-       create_background();
-}
-
-
-void PlayHeadInfo::create_background()
-{
-       m_background = QPixmap(size());
-       QPainter painter(&m_background);
-       painter.setRenderHints(QPainter::Antialiasing);
-       m_background.fill(palette().background().color());
-       int round = 12;
-       painter.setPen(QColor(50, 50, 50));
-       painter.setBrush(QColor(250, 251, 255));
-       painter.drawRoundRect(m_background.rect(), round, round);
-}
-
-void PlayHeadInfo::mousePressEvent(QMouseEvent * event)
-{
-       if (! m_sheet) {
-               return;
-       }
-       
-       if (event->button() == Qt::LeftButton) {
-               m_sheet->start_transport();
-       }
-}
-
-
 
 
 InfoWidget::InfoWidget(QWidget* parent)
@@ -543,69 +423,6 @@
 }
 
 
-
-InfoToolBar::InfoToolBar(QWidget * parent)
-       : QToolBar(parent)
-{
-       setObjectName(tr("Main Toolbar"));
-       
-       connect(&pm(), SIGNAL(projectLoaded(Project*)), this, 
SLOT(set_project(Project*)));
-
-       m_playhead = new PlayHeadInfo(this);
-
-       m_recAct = new QAction(tr("Record"), this);
-       m_recAct->setToolTip(tr("Set Sheet Recordable. <br /><br />Hit Spacebar 
afterwards to start recording!"));
-       connect(m_recAct, SIGNAL(triggered(bool)), this, 
SLOT(recording_action_clicked()));
-       
-       // the order in which the actions are added determines the order of 
appearance in the toolbar
-       addAction(m_recAct);
-       addWidget(m_playhead);
-}
-
-
-void InfoToolBar::set_project(Project * project)
-{
-       m_project = project;
-}
-
-void InfoToolBar::set_sheet(Sheet* sheet)
-{
-       m_sheet = sheet;
-       
-       if (m_sheet) {
-               connect(m_sheet, SIGNAL(recordingStateChanged()), this, 
SLOT(update_recording_state()));
-               m_recAct->setEnabled(true);
-       } else {
-               m_recAct->setEnabled(false);
-       }
-}
-
-
-
-void InfoToolBar::recording_action_clicked()
-{
-       m_sheet->set_recordable();
-}
-
-void InfoToolBar::update_recording_state()
-{
-       if (m_sheet->is_recording()) {
-               m_recAct->setIcon(find_pixmap(":/redled-16"));
-               QString recordFormat = config().get_property("Recording", 
"FileFormat", "wav").toString();
-               int count = 0;
-               foreach(Track* track, m_sheet->get_tracks()) {
-                       if (track->armed()) {
-                               count++;
-                       }
-               }
-               info().information(tr("Recording to %1 Tracks, encoding format: 
%2").arg(count).arg(recordFormat));
-       } else {
-               m_recAct->setIcon(find_pixmap(":/redledinactive-16"));
-       }
-}
-
-
-
 SysInfoToolBar::SysInfoToolBar(QWidget * parent)
        : QToolBar(parent)
 {

Index: src/traverso/widgets/InfoWidgets.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- src/traverso/widgets/InfoWidgets.h  12 May 2008 20:44:46 -0000      1.24
+++ src/traverso/widgets/InfoWidgets.h  13 May 2008 23:24:34 -0000      1.25
@@ -140,61 +140,6 @@
 };
 
 
-class PlayHeadInfo : public InfoWidget
-{
-       Q_OBJECT
-
-public:
-       PlayHeadInfo(QWidget* parent = 0);
-       ~PlayHeadInfo() {};
-
-protected:
-       void mousePressEvent ( QMouseEvent * event );
-       void paintEvent( QPaintEvent* e);
-       void resizeEvent( QResizeEvent * e );
-       QSize sizeHint() const; 
-       
-private:
-       QTimer m_updateTimer;
-       QPixmap m_playpixmap;
-       QPixmap m_background;
-       
-       void create_background();
-
-protected slots:
-       void set_project(Project* );
-       void set_sheet(Sheet* );
-       
-private slots:
-       void start_sheet_update_timer();
-       void stop_sheet_update_timer();
-};
-
-
-class InfoToolBar : public QToolBar
-{
-Q_OBJECT
-public:
-       InfoToolBar(QWidget* parent);
-
-protected:
-       Sheet*          m_sheet;
-       Project*        m_project;
-
-private:
-       PlayHeadInfo*   m_playhead;
-       QAction*        m_recAct;
-
-protected slots:
-       void set_project(Project* project);
-       void set_sheet(Sheet* );
-
-private slots:
-       void recording_action_clicked();
-       void update_recording_state();
-};
-
-
 class SysInfoToolBar : public QToolBar
 {
 public:

Index: resources/images/icons/media-seek-backward.png
===================================================================
RCS file: resources/images/icons/media-seek-backward.png
diff -N resources/images/icons/media-seek-backward.png
Binary files /dev/null and /tmp/cvsoIg1sv differ

Index: resources/images/icons/media-seek-backward.svgz
===================================================================
RCS file: resources/images/icons/media-seek-backward.svgz
diff -N resources/images/icons/media-seek-backward.svgz
Binary files /dev/null and /tmp/cvsXbQDSv differ

Index: resources/images/icons/media-seek-forward.png
===================================================================
RCS file: resources/images/icons/media-seek-forward.png
diff -N resources/images/icons/media-seek-forward.png
Binary files /dev/null and /tmp/cvsyAsn4t differ

Index: resources/images/icons/media-seek-forward.svgz
===================================================================
RCS file: resources/images/icons/media-seek-forward.svgz
diff -N resources/images/icons/media-seek-forward.svgz
Binary files /dev/null and /tmp/cvsrwQWcu differ

Index: resources/images/icons/media-skip-backward.png
===================================================================
RCS file: resources/images/icons/media-skip-backward.png
diff -N resources/images/icons/media-skip-backward.png
Binary files /dev/null and /tmp/cvsu77zjx differ

Index: resources/images/icons/media-skip-backward.svgz
===================================================================
RCS file: resources/images/icons/media-skip-backward.svgz
diff -N resources/images/icons/media-skip-backward.svgz
Binary files /dev/null and /tmp/cvsjHFFzx differ

Index: resources/images/icons/media-skip-forward.png
===================================================================
RCS file: resources/images/icons/media-skip-forward.png
diff -N resources/images/icons/media-skip-forward.png
Binary files /dev/null and /tmp/cvsawn0jy differ

Index: resources/images/icons/media-skip-forward.svgz
===================================================================
RCS file: resources/images/icons/media-skip-forward.svgz
diff -N resources/images/icons/media-skip-forward.svgz
Binary files /dev/null and /tmp/cvszs4Tzw differ

Index: src/traverso/widgets/TransportConsoleWidget.cpp
===================================================================
RCS file: src/traverso/widgets/TransportConsoleWidget.cpp
diff -N src/traverso/widgets/TransportConsoleWidget.cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/traverso/widgets/TransportConsoleWidget.cpp     13 May 2008 23:24:35 
-0000      1.1
@@ -0,0 +1,300 @@
+/*
+    Copyright (C) 2008 Nicola Doebelin
+
+    This file is part of Traverso
+
+    Traverso is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
+
+*/
+
+#include "TransportConsoleWidget.h"
+#include "libtraversocore.h"
+#include "Themer.h"
+#include "defines.h"
+
+#include <QPixmap>
+#include <QGridLayout>
+#include <QToolButton>
+#include <QAction>
+#include <QSize>
+#include <QFrame>
+
+// Always put me below _all_ includes, this is needed
+// in case we run with memory leak detection enabled!
+#include "Debugger.h"
+
+static const int HEIGHT_THRESHOLD = 90;
+
+TransportConsoleWidget::TransportConsoleWidget(QWidget* parent)
+       : QWidget(parent)
+{
+       m_layout = new QGridLayout(this);
+       m_label = new QLabel(this);
+       m_label->setAlignment(Qt::AlignCenter);
+       m_label->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, 
QSizePolicy::Expanding));
+       m_label->setMinimumWidth(80);
+       m_label->setScaledContents(true);
+       m_label->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
+
+       QToolButton* buttonToStart = new QToolButton(this);
+       QToolButton* buttonToLeft = new QToolButton(this);
+       QToolButton* buttonRec = new QToolButton(this);
+       QToolButton* buttonPlay = new QToolButton(this);
+       QToolButton* buttonToRight = new QToolButton(this);
+       QToolButton* buttonToEnd = new QToolButton(this);
+
+       buttonToStart->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, 
QSizePolicy::Preferred));
+       buttonToLeft->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, 
QSizePolicy::Preferred));
+       buttonRec->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, 
QSizePolicy::Preferred));
+       buttonPlay->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, 
QSizePolicy::Preferred));
+       buttonToRight->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, 
QSizePolicy::Preferred));
+       buttonToEnd->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, 
QSizePolicy::Preferred));
+
+       m_toStartAction = new QAction(this);
+       m_toLeftAction = new QAction(this);
+       m_recAction = new QAction(this);
+       m_playAction = new QAction(this);
+       m_toEndAction = new QAction(this);
+       m_toRightAction = new QAction(this);
+
+       m_recAction->setCheckable(true);
+       m_playAction->setCheckable(true);
+
+       m_toStartAction->setIcon(QIcon(":/skipleft"));
+       m_toLeftAction->setIcon(QIcon(":/seekleft"));
+       m_recAction->setIcon(QIcon(":/record"));
+       m_playAction->setIcon(QIcon(":/playstart"));
+       m_toEndAction->setIcon(QIcon(":/skipright"));
+       m_toRightAction->setIcon(QIcon(":/seekright"));
+
+       connect(m_toStartAction, SIGNAL(triggered()), this, SLOT(to_start()));
+       connect(m_toLeftAction, SIGNAL(triggered()), this, SLOT(to_left()));
+       connect(m_recAction, SIGNAL(triggered()), this, SLOT(rec_toggled()));
+       connect(m_playAction, SIGNAL(triggered()), this, SLOT(play_toggled()));
+       connect(m_toEndAction, SIGNAL(triggered()), this, SLOT(to_end()));
+       connect(m_toRightAction, SIGNAL(triggered()), this, SLOT(to_right()));
+
+       buttonToStart->setDefaultAction(m_toStartAction);
+       buttonToLeft->setDefaultAction(m_toLeftAction);
+       buttonRec->setDefaultAction(m_recAction);
+       buttonPlay->setDefaultAction(m_playAction);
+       buttonToEnd->setDefaultAction(m_toEndAction);
+       buttonToRight->setDefaultAction(m_toRightAction);
+
+       m_layout->addWidget(m_label,    0, 0, 1, 6);
+       m_layout->addWidget(buttonToStart, 1, 0, 1, 1);
+       m_layout->addWidget(buttonToLeft,  1, 1, 1, 1);
+       m_layout->addWidget(buttonRec,     1, 2, 1, 1);
+       m_layout->addWidget(buttonPlay,    1, 3, 1, 1);
+       m_layout->addWidget(buttonToRight, 1, 4, 1, 1);
+       m_layout->addWidget(buttonToEnd,   1, 5, 1, 1);
+
+       connect(&pm(), SIGNAL(projectLoaded(Project*)), this, 
SLOT(set_project(Project*)));
+       connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(update_label()));
+       place_label();
+}
+
+
+void TransportConsoleWidget::set_project(Project* project)
+{
+       m_project = project;
+       if (m_project) {
+               connect(m_project, SIGNAL(currentSheetChanged(Sheet*)), this, 
SLOT(set_sheet(Sheet*)));
+       } else {
+               m_updateTimer.stop();
+               set_sheet(0);
+       }
+}
+
+void TransportConsoleWidget::set_sheet(Sheet* sheet)
+{
+       m_sheet = sheet;
+
+       if (!m_sheet)
+       {
+               m_updateTimer.stop();
+               return;
+       }
+
+       connect(m_sheet, SIGNAL(recordingStateChanged()), this, 
SLOT(update_recording_state()));
+       connect(m_sheet, SIGNAL(transferStarted()), this, 
SLOT(transfer_started()));
+       connect(m_sheet, SIGNAL(transferStopped()), this, 
SLOT(transfer_stopped()));
+       connect(m_sheet, SIGNAL(transportPosSet()), this, SLOT(update_label()));
+
+       update_label();
+}
+
+void TransportConsoleWidget::to_start()
+{
+       if (!m_sheet)
+       {
+               return;
+       }
+
+       m_sheet->set_transport_pos((TimeRef)0.0);
+       m_sheet->set_work_at((TimeRef)0.0);
+}
+
+void TransportConsoleWidget::to_left()
+{
+       if (!m_sheet)
+       {
+               return;
+       }
+
+       SnapList* slist = m_sheet->get_snap_list();
+       TimeRef p = m_sheet->get_transport_location();
+       TimeRef newpos = slist->prev_snap_pos(p);
+       m_sheet->set_transport_pos(newpos);
+}
+
+void TransportConsoleWidget::rec_toggled()
+{
+       if (!m_sheet)
+       {
+               return;
+       }
+
+       m_sheet->set_recordable();
+}
+
+void TransportConsoleWidget::play_toggled()
+{
+       if (!m_sheet)
+       {
+               return;
+       }
+
+       m_sheet->start_transport();
+}
+
+void TransportConsoleWidget::to_end()
+{
+       if (!m_sheet)
+       {
+               return;
+       }
+
+       // stop the transport, no need to play any further than the end of the 
sheet
+       if (m_sheet->is_transport_rolling())
+       {
+               m_sheet->start_transport();
+       }
+       m_sheet->set_transport_pos(m_sheet->get_last_location());
+}
+
+void TransportConsoleWidget::to_right()
+{
+       if (!m_sheet)
+       {
+               return;
+       }
+
+       SnapList* slist = m_sheet->get_snap_list();
+       TimeRef p = m_sheet->get_transport_location();
+       TimeRef newpos = slist->next_snap_pos(p);
+       m_sheet->set_transport_pos(newpos);
+}
+
+void TransportConsoleWidget::transfer_started()
+{
+       m_updateTimer.start(100);
+       m_playAction->setChecked(true);
+       m_playAction->setIcon(QIcon(":/playstop"));
+       m_recAction->setEnabled(false);
+
+       // this is needed when the record button is pressed, but no track is 
armed.
+       // uncheck the rec button in that case
+       if (!m_sheet->is_recording()) {
+               m_recAction->setChecked(false);
+       }
+}
+
+void TransportConsoleWidget::transfer_stopped()
+{
+       m_updateTimer.stop();
+       m_playAction->setChecked(false);
+       m_playAction->setIcon(QIcon(":/playstart"));
+       m_recAction->setEnabled(true);
+}
+
+void TransportConsoleWidget::update_recording_state()
+{
+       if (!m_sheet)
+       {
+               return;
+       }
+
+       if (m_sheet->is_recording()) {
+               QString recordFormat = config().get_property("Recording", 
"FileFormat", "wav").toString();
+               int count = 0;
+               foreach(Track* track, m_sheet->get_tracks()) {
+                       if (track->armed()) {
+                               count++;
+                       }
+               }
+               info().information(tr("Recording to %1 Tracks, encoding format: 
%2").arg(count).arg(recordFormat));
+               m_recAction->setChecked(true);
+       } else {
+               m_recAction->setChecked(false);
+       }
+}
+
+void TransportConsoleWidget::resizeEvent(QResizeEvent * e)
+{
+       // scale the font in the text label
+       QFont font = m_label->font();
+       int fs = 0.6 * m_label->height();
+       font.setPixelSize(fs);
+       m_label->setFont(font);
+
+       // position the text label depending on the widget size
+       if ((e->oldSize().height() >= HEIGHT_THRESHOLD) && (e->size().height() 
< HEIGHT_THRESHOLD))
+       {
+               place_label();
+       }
+
+       if ((e->oldSize().height() < HEIGHT_THRESHOLD) && (e->size().height() 
>= HEIGHT_THRESHOLD))
+       {
+               place_label();
+       }
+}
+
+void TransportConsoleWidget::place_label()
+{
+       if (height() < HEIGHT_THRESHOLD)
+       {
+               m_layout->removeWidget(m_label);
+               m_layout->addWidget(m_label, 1, 6, 1, 1);
+       } else {
+               m_layout->removeWidget(m_label);
+               m_layout->addWidget(m_label, 0, 0, 1, 6);
+       }
+}
+
+void TransportConsoleWidget::update_label()
+{
+       QString currentTime;
+       
+       if (!m_sheet) {
+               currentTime = "0:00.0";
+       } else {
+               currentTime = 
timeref_to_ms_2(m_sheet->get_transport_location());
+       }
+       m_label->setText(currentTime);
+}
+
+//eof
+

Index: src/traverso/widgets/TransportConsoleWidget.h
===================================================================
RCS file: src/traverso/widgets/TransportConsoleWidget.h
diff -N src/traverso/widgets/TransportConsoleWidget.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/traverso/widgets/TransportConsoleWidget.h       13 May 2008 23:24:35 
-0000      1.1
@@ -0,0 +1,79 @@
+/*
+    Copyright (C) 2008 Nicola Doebelin
+ 
+    This file is part of Traverso
+ 
+    Traverso is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
+ 
+*/
+
+#ifndef TRANSPORTCONSOLEWIDGET_H
+#define TRANSPORTCONSOLEWIDGET_H
+
+#include <QWidget>
+#include <QGridLayout>
+#include <QLabel>
+
+#include "InfoWidgets.h"
+
+class Project;
+class Sheet;
+
+
+class TransportConsoleWidget : public QWidget
+{
+Q_OBJECT
+
+public:
+        TransportConsoleWidget(QWidget* parent);
+
+protected:
+       void resizeEvent(QResizeEvent*);
+
+private:
+       QGridLayout*    m_layout;
+       Project*        m_project;
+       Sheet*          m_sheet;
+       QAction*        m_toStartAction;
+       QAction*        m_toLeftAction;
+       QAction*        m_recAction;
+       QAction*        m_playAction;
+       QAction*        m_toEndAction;
+       QAction*        m_toRightAction;
+       QLabel*         m_label;
+       QTimer          m_updateTimer;
+
+       void place_label();
+
+protected slots:
+       void set_project(Project*);
+       void set_sheet(Sheet*);
+
+private slots:
+       void to_start();
+       void to_left();
+       void rec_toggled();
+       void play_toggled();
+       void to_end();
+       void to_right();
+
+       void transfer_started();
+       void transfer_stopped();
+       void update_recording_state();
+       void update_label();
+};
+
+#endif
+




reply via email to

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