diff --git a/include/Editor.h b/include/Editor.h index ccc4af494..0b4fa96bb 100644 --- a/include/Editor.h +++ b/include/Editor.h @@ -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: diff --git a/include/SongEditor.h b/include/SongEditor.h index b51b22e1c..3fff287a9 100644 --- a/include/SongEditor.h +++ b/include/SongEditor.h @@ -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; diff --git a/src/gui/AutomationEditor.cpp b/src/gui/AutomationEditor.cpp index a80b118d8..491b16eb0 100644 --- a/src/gui/AutomationEditor.cpp +++ b/src/gui/AutomationEditor.cpp @@ -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" ), diff --git a/src/gui/Editor.cpp b/src/gui/Editor.cpp index e292ced1b..e8b40a091 100644 --- a/src/gui/Editor.cpp +++ b/src/gui/Editor.cpp @@ -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() diff --git a/src/gui/SongEditor.cpp b/src/gui/SongEditor.cpp index c7a47d55f..cf7f9973c 100644 --- a/src/gui/SongEditor.cpp +++ b/src/gui/SongEditor.cpp @@ -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(); +}