[Top][All Lists]
[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
+
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso src/traverso/CMakeLists.txt src/traver...,
Nicola Doebelin <=