Move play, record and stop signals to superclass

This commit is contained in:
Lukas W
2014-12-07 18:50:40 +01:00
parent 3e9cc61042
commit 86f2c866b6
5 changed files with 74 additions and 94 deletions

View File

@@ -41,6 +41,12 @@ class Editor : public QMainWindow
public:
void setPauseIcon(bool displayPauseIcon=true);
protected slots:
virtual void play();
virtual void record();
virtual void recordAccompany();
virtual void stop();
signals:
protected:

View File

@@ -65,10 +65,7 @@ public:
};
SongEditor( Song * _song );
virtual ~SongEditor();
void setPauseIcon( bool pause );
~SongEditor();
public slots:
void scrolled( int _new_pos );
@@ -81,11 +78,6 @@ public slots:
private slots:
void setHighQuality( bool );
void play();
void record();
void recordAccompany();
void stop();
void masterVolumeChanged( int _new_val );
void masterVolumePressed();
void masterVolumeMoved( int _new_val );
@@ -114,12 +106,6 @@ private:
QScrollBar * m_leftRightScroll;
QWidget * m_toolBar;
ToolButton * m_playButton;
ToolButton * m_recordButton;
ToolButton * m_recordAccompanyButton;
ToolButton * m_stopButton;
LcdSpinBox * m_tempoSpinBox;
Timeline * m_timeLine;
@@ -152,6 +138,12 @@ public:
SongEditor* m_editor;
protected slots:
void play();
void record();
void recordAccompany();
void stop();
private:
ToolButton * m_addBBTrackButton;
ToolButton * m_addSampleTrackButton;

View File

@@ -2040,11 +2040,6 @@ AutomationEditorWindow::AutomationEditorWindow() :
tr( "Click here if you want to stop playing of the "
"current pattern." ) );
// Set up signals)
connect(m_playButton, SIGNAL(clicked()), this, SLOT(play()));
connect(m_stopButton, SIGNAL(clicked()), this, SLOT(stop()));
// Edit mode buttons
m_drawButton = new ToolButton(embed::getIconPixmap( "edit_draw" ),

View File

@@ -39,6 +39,22 @@ void Editor::setPauseIcon(bool displayPauseIcon)
m_playButton->setIcon(embed::getIconPixmap("play"));
}
void Editor::play()
{
}
void Editor::record()
{
}
void Editor::recordAccompany()
{
}
void Editor::stop()
{
}
Editor::Editor(bool record) :
m_toolBar(new QToolBar(this)),
m_playButton(nullptr),
@@ -46,6 +62,8 @@ Editor::Editor(bool record) :
m_recordAccompanyButton(nullptr),
m_stopButton(nullptr)
{
m_toolBar->setContextMenuPolicy(Qt::PreventContextMenu);
auto addButton = [this](const char* pixmap_name, QString text, QString objectName) {
ToolButton* button = new ToolButton(embed::getIconPixmap(pixmap_name), text);
button->setObjectName(objectName);
@@ -55,11 +73,12 @@ Editor::Editor(bool record) :
// Set up play button
m_playButton = addButton("play", tr("Play (Space)"), "playButton");
m_playButton->setShortcut(Qt::Key_Space);
// Set up record buttons if wanted
if (record)
{
m_recordButton= addButton("record", tr("Record"), "recordButton");
m_recordButton = addButton("record", tr("Record"), "recordButton");
m_recordAccompanyButton = addButton("record_accompany", tr("Record while playing"), "recordAccompanyButton");
}
@@ -68,6 +87,15 @@ Editor::Editor(bool record) :
// Add toolbar to window
addToolBar(Qt::TopToolBarArea, m_toolBar);
// Set up connections
connect(m_playButton, SIGNAL(clicked()), this, SLOT(play()));
if (record)
{
connect(m_recordButton, SIGNAL(clicked()), this, SLOT(record()));
connect(m_recordAccompanyButton, SIGNAL(clicked()), this, SLOT(recordAccompany()));
}
connect(m_stopButton, SIGNAL(clicked()), this, SLOT(stop()));
}
Editor::~Editor()

View File

@@ -299,61 +299,6 @@ void SongEditor::setModeEdit()
void SongEditor::setPauseIcon( bool pause )
{
if( pause == true )
{
m_playButton->setIcon( embed::getIconPixmap( "pause" ) );
}
else
{
m_playButton->setIcon( embed::getIconPixmap( "play" ) );
}
}
void SongEditor::play()
{
if( Engine::getSong()->playMode() != Song::Mode_PlaySong )
{
Engine::getSong()->playSong();
}
else
{
Engine::getSong()->togglePause();
}
}
void SongEditor::record()
{
m_song->record();
}
void SongEditor::recordAccompany()
{
m_song->playAndRecord();
}
void SongEditor::stop()
{
m_song->stop();
Engine::pianoRoll()->stopRecording();
}
void SongEditor::keyPressEvent( QKeyEvent * _ke )
{
if( /*_ke->modifiers() & Qt::ShiftModifier*/
@@ -384,17 +329,6 @@ void SongEditor::keyPressEvent( QKeyEvent * _ke )
m_song->setPlayPos( t, Song::Mode_PlaySong );
}
}
else if( _ke->key() == Qt::Key_Space )
{
if( m_song->isPlaying() )
{
stop();
}
else
{
play();
}
}
else if( _ke->key() == Qt::Key_Home )
{
m_song->setPlayPos( 0, Song::Mode_PlaySong );
@@ -679,19 +613,12 @@ SongEditorWindow::SongEditorWindow(Song* song) :
// Set up buttons
m_playButton->setToolTip(tr("Play song (Space)"));
connect(m_playButton, SIGNAL(clicked()), m_editor, SLOT(play()));
if (m_recordButton && m_recordAccompanyButton)
{
m_recordButton->setToolTip(tr("Record samples from Audio-device"));
connect(m_recordButton, SIGNAL(clicked()), m_editor, SLOT(record()));
m_recordAccompanyButton->setToolTip(tr( "Record samples from Audio-device while playing song or BB track"));
connect(m_recordAccompanyButton, SIGNAL(clicked()), m_editor, SLOT(recordAccompany()));
}
m_stopButton->setToolTip(tr( "Stop song (Space)" ));
connect(m_stopButton, SIGNAL(clicked()), m_editor, SLOT(stop()));
m_addBBTrackButton = new ToolButton(
embed::getIconPixmap("add_bb_track"),
@@ -767,3 +694,35 @@ SongEditorWindow::SongEditorWindow(Song* song) :
parentWidget()->move( 5, 5 );
parentWidget()->show();
}
void SongEditorWindow::play()
{
if( Engine::getSong()->playMode() != Song::Mode_PlaySong )
{
Engine::getSong()->playSong();
}
else
{
Engine::getSong()->togglePause();
}
}
void SongEditorWindow::record()
{
m_editor->m_song->record();
}
void SongEditorWindow::recordAccompany()
{
m_editor->m_song->playAndRecord();
}
void SongEditorWindow::stop()
{
m_editor->m_song->stop();
Engine::pianoRoll()->stopRecording();
}