diff --git a/include/AutomationEditor.h b/include/AutomationEditor.h index 8105e63c6..d203ac25e 100644 --- a/include/AutomationEditor.h +++ b/include/AutomationEditor.h @@ -267,6 +267,8 @@ public: AutomationEditor* m_editor; + QSize sizeHint() const; + signals: void currentPatternChanged(); diff --git a/include/BBEditor.h b/include/BBEditor.h index 1e2bda33c..d13d1cc45 100644 --- a/include/BBEditor.h +++ b/include/BBEditor.h @@ -43,6 +43,8 @@ public: BBEditor( BBTrackContainer * _tc ); ~BBEditor(); + QSize sizeHint() const; + const BBTrackContainerView* trackContainerView() const { return m_trackContainerView; } diff --git a/include/PianoRoll.h b/include/PianoRoll.h index 1d7cd1146..0d87c752a 100644 --- a/include/PianoRoll.h +++ b/include/PianoRoll.h @@ -379,6 +379,8 @@ public: return "pianoroll"; } + QSize sizeHint() const; + signals: void currentPatternChanged(); diff --git a/include/SongEditor.h b/include/SongEditor.h index eb42b1ea4..4f523dbb2 100644 --- a/include/SongEditor.h +++ b/include/SongEditor.h @@ -137,6 +137,8 @@ class SongEditorWindow : public Editor public: SongEditorWindow(Song* song); + QSize sizeHint() const; + SongEditor* m_editor; protected slots: diff --git a/src/gui/AutomationEditor.cpp b/src/gui/AutomationEditor.cpp index 46ef53f1b..b949b3396 100644 --- a/src/gui/AutomationEditor.cpp +++ b/src/gui/AutomationEditor.cpp @@ -2280,18 +2280,6 @@ AutomationEditorWindow::AutomationEditorWindow() : setFocusPolicy( Qt::StrongFocus ); setFocus(); setWindowIcon( embed::getIconPixmap( "automation" ) ); - - // Add us to workspace - if( Engine::mainWindow()->workspace() ) - { - parentWidget()->resize( INITIAL_WIDTH, INITIAL_HEIGHT ); - parentWidget()->hide(); - } - else - { - resize( INITIAL_WIDTH, INITIAL_HEIGHT ); - hide(); - } } @@ -2335,6 +2323,11 @@ int AutomationEditorWindow::quantization() const return m_editor->quantization(); } +QSize AutomationEditorWindow::sizeHint() const +{ + return {INITIAL_WIDTH, INITIAL_HEIGHT}; +} + void AutomationEditorWindow::play() { m_editor->play(); diff --git a/src/gui/BBEditor.cpp b/src/gui/BBEditor.cpp index a8d631481..ef3291f32 100644 --- a/src/gui/BBEditor.cpp +++ b/src/gui/BBEditor.cpp @@ -114,11 +114,6 @@ BBEditor::BBEditor( BBTrackContainer* tc ) : m_toolBar->addWidget( add_bar ); m_toolBar->addSeparator(); - parentWidget()->layout()->setSizeConstraint( QLayout::SetMinimumSize ); - parentWidget()->resize( minimumWidth(), 300 ); - parentWidget()->move( 610, 5 ); - parentWidget()->show(); - connect( &tc->m_bbComboBoxModel, SIGNAL( dataChanged() ), m_trackContainerView, SLOT( updatePosition() ) ); @@ -134,13 +129,15 @@ BBEditor::BBEditor( BBTrackContainer* tc ) : } - - BBEditor::~BBEditor() { } +QSize BBEditor::sizeHint() const +{ + return {minimumWidth(), 300}; +} void BBEditor::removeBBView( int bb ) @@ -149,8 +146,6 @@ void BBEditor::removeBBView( int bb ) } - - void BBEditor::play() { if( Engine::getSong()->playMode() != Song::Mode_PlayBB ) @@ -164,8 +159,6 @@ void BBEditor::play() } - - void BBEditor::stop() { Engine::getSong()->stop(); diff --git a/src/gui/Editor.cpp b/src/gui/Editor.cpp index 57042b623..0e911b960 100644 --- a/src/gui/Editor.cpp +++ b/src/gui/Editor.cpp @@ -98,11 +98,6 @@ Editor::Editor(bool record) : connect(m_recordAccompanyButton, SIGNAL(clicked()), this, SLOT(recordAccompany())); } connect(m_stopButton, SIGNAL(clicked()), this, SLOT(stop())); - - - // Add editor to main window - Engine::mainWindow()->workspace()->addSubWindow(this); - parentWidget()->setAttribute(Qt::WA_DeleteOnClose, false); } Editor::~Editor() diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index 86a4ea65d..fb99d60bb 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -530,6 +530,28 @@ void MainWindow::finalize() SetupDialog sd( SetupDialog::AudioSettings ); sd.exec(); } + + // Add editor subwindows + for (QWidget* widget : QList{ + Engine::automationEditor(), + Engine::getBBEditor(), + Engine::pianoRoll(), + Engine::songEditor() + }) + { + QMdiSubWindow* window = workspace()->addSubWindow(widget); + window->setWindowIcon(widget->windowIcon()); + window->setAttribute(Qt::WA_DeleteOnClose, false); + window->resize(widget->sizeHint()); + } + + Engine::automationEditor()->parentWidget()->hide(); + Engine::getBBEditor()->parentWidget()->move( 610, 5 ); + Engine::getBBEditor()->parentWidget()->show(); + Engine::pianoRoll()->parentWidget()->move(5, 5); + Engine::pianoRoll()->parentWidget()->hide(); + Engine::songEditor()->parentWidget()->move(5, 5); + Engine::songEditor()->parentWidget()->show(); } diff --git a/src/gui/PianoRoll.cpp b/src/gui/PianoRoll.cpp index b6f8e737d..81cb01ae7 100644 --- a/src/gui/PianoRoll.cpp +++ b/src/gui/PianoRoll.cpp @@ -4222,18 +4222,6 @@ PianoRollWindow::PianoRollWindow() : setWindowIcon( embed::getIconPixmap( "piano" ) ); setCurrentPattern( NULL ); - if( Engine::mainWindow()->workspace() ) - { - parentWidget()->resize(m_toolBar->sizeHint().width()+10, INITIAL_PIANOROLL_HEIGHT); - parentWidget()->move( 5, 5 ); - parentWidget()->hide(); - } - else - { - resize( m_toolBar->sizeHint().width()+10, INITIAL_PIANOROLL_HEIGHT ); - hide(); - } - // Connections connect(m_editor, SIGNAL(currentPatternChanged()), this, SIGNAL(currentPatternChanged())); } @@ -4294,8 +4282,12 @@ void PianoRollWindow::saveSettings(QDomDocument & doc, QDomElement & de) MainWindow::saveWidgetState(this, de); } - void PianoRollWindow::loadSettings(const QDomElement & de) { MainWindow::restoreWidgetState(this, de); } + +QSize PianoRollWindow::sizeHint() const +{ + return {m_toolBar->sizeHint().width()+10, INITIAL_PIANOROLL_HEIGHT}; +} diff --git a/src/gui/SongEditor.cpp b/src/gui/SongEditor.cpp index 10c76d4bc..adb6747c8 100644 --- a/src/gui/SongEditor.cpp +++ b/src/gui/SongEditor.cpp @@ -680,10 +680,11 @@ SongEditorWindow::SongEditorWindow(Song* song) : m_toolBar->addSeparator(); m_toolBar->addWidget( zoom_lbl ); m_toolBar->addWidget( m_zoomingComboBox ); +} - parentWidget()->resize( 600, 300 ); - parentWidget()->move( 5, 5 ); - parentWidget()->show(); +QSize SongEditorWindow::sizeHint() const +{ + return {600, 300}; }