diff --git a/include/MainWindow.h b/include/MainWindow.h index 69090d855..5916893fc 100644 --- a/include/MainWindow.h +++ b/include/MainWindow.h @@ -69,8 +69,6 @@ public: return m_toolBar; } - // show MainWidget or WelcomeScreen - void setMainWidgetVisible( bool _visible ); //int addWidgetToToolBar( QWidget * _w, int _row = -1, int _col = -1 ); //void addSpacingToToolBar( int _size ); @@ -109,6 +107,7 @@ public: void setPlaybackMode( ProjectPlaybackMode _playbackMode ); + void showWelcomeScreen(bool _visible = true); public slots: void resetWindowTitle(); @@ -145,6 +144,7 @@ public slots: protected: virtual void closeEvent( QCloseEvent * _ce ); + virtual void showEvent( QShowEvent * _se ); virtual void focusOutEvent( QFocusEvent * _fe ); virtual void keyPressEvent( QKeyEvent * _ke ); virtual void keyReleaseEvent( QKeyEvent * _ke ); diff --git a/include/WelcomeScreen.h b/include/WelcomeScreen.h index 9f73476b7..d1e38b48a 100644 --- a/include/WelcomeScreen.h +++ b/include/WelcomeScreen.h @@ -53,7 +53,7 @@ private slots: private: - void switchView(); + void hideWelcomeScreen(); Ui::WelcomeScreen * ui; RecentResourceListModel * m_recentProjectsModel; diff --git a/src/core/main.cpp b/src/core/main.cpp index b91c15653..41227025f 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -458,6 +458,9 @@ int main( int argc, char * * argv ) engine::mainWindow()->showMaximized(); } engine::getSong()->loadProject( file_to_load ); + + // don't show welcome screen + engine::mainWindow()->showWelcomeScreen( false ); } else if( !file_to_import.isEmpty() ) { @@ -472,6 +475,9 @@ int main( int argc, char * * argv ) { engine::mainWindow()->showMaximized(); } + + // don't show welcome screen + engine::mainWindow()->showWelcomeScreen( false ); } else { @@ -484,6 +490,9 @@ int main( int argc, char * * argv ) { engine::mainWindow()->showMaximized(); } + + // show welcome screen + engine::mainWindow()->showWelcomeScreen(); } } else @@ -519,9 +528,7 @@ int main( int argc, char * * argv ) } } - const int ret = app->exec(); - delete app; - return( ret ); + return app->exec(); } diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index 8dc2874f5..dfb101be6 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -92,7 +92,6 @@ MainWindow::MainWindow() : vbox->setSpacing( 0 ); vbox->setMargin( 0 ); - QWidget * w = new QWidget( m_mainWidget ); QHBoxLayout * hbox = new QHBoxLayout( w ); hbox->setSpacing( 0 ); @@ -152,17 +151,14 @@ MainWindow::MainWindow() : vbox->addWidget( m_toolBar ); vbox->addWidget( w ); + m_updateTimer.start( 1000 / 20, this ); // 20 fps m_welcomeScreen = new WelcomeScreen( this ); - - setCentralWidget( m_welcomeScreen ); - - m_updateTimer.start( 1000 / 20, this ); // 20 fps + m_welcomeScreen->setVisible( false ); } - MainWindow::~MainWindow() { for( QList::Iterator it = m_tools.begin(); @@ -182,15 +178,14 @@ MainWindow::~MainWindow() - -void MainWindow::setMainWidgetVisible( bool _visible ) +void MainWindow::showWelcomeScreen(bool _visible) { - setCentralWidget( _visible ? m_mainWidget : m_welcomeScreen ); + m_welcomeScreen->setVisible( _visible ); + setCentralWidget( _visible ? m_welcomeScreen : m_mainWidget ); } - void MainWindow::finalize() { resetWindowTitle(); @@ -312,8 +307,7 @@ void MainWindow::finalize() // create the grid layout for the first buttons area QWidget * gridButtons_w = new QWidget( m_toolBar ); - QGridLayout * gridButtons_layout = new QGridLayout( gridButtons_w/*, 2, 1*/ ); - + QGridLayout * gridButtons_layout = new QGridLayout( gridButtons_w ); // create tool-buttons toolButton * project_new = new toolButton( @@ -1197,6 +1191,12 @@ void MainWindow::closeEvent( QCloseEvent * _ce ) } +void MainWindow::showEvent( QShowEvent * _se ) +{ + //showWelcomeScreen( false ); // must explicitly ask for welcome screen + _se->accept(); +} + void MainWindow::focusOutEvent( QFocusEvent * _fe ) diff --git a/src/gui/WelcomeScreen.cpp b/src/gui/WelcomeScreen.cpp index 964988aeb..3b33ed976 100644 --- a/src/gui/WelcomeScreen.cpp +++ b/src/gui/WelcomeScreen.cpp @@ -112,7 +112,7 @@ WelcomeScreen::~WelcomeScreen() void WelcomeScreen::createNewProject() { - switchView(); + hideWelcomeScreen(); } @@ -141,7 +141,7 @@ void WelcomeScreen::instantMidiAction() void WelcomeScreen::openRecentProject( const QModelIndex & _idx ) { - switchView(); + hideWelcomeScreen(); ResourceAction( m_recentProjectsModel->item( _idx ) ).loadProject(); } @@ -156,7 +156,7 @@ void WelcomeScreen::openCommunityResource( const QModelIndex & _idx ) switch( item->type() ) { case ResourceItem::TypeProject: - switchView(); + hideWelcomeScreen(); action.loadProject(); break; default: @@ -177,9 +177,9 @@ void WelcomeScreen::openOnlineResource( QListWidgetItem * _item ) -void WelcomeScreen::switchView() +void WelcomeScreen::hideWelcomeScreen() { - engine::mainWindow()->setMainWidgetVisible( true ); + engine::mainWindow()->showWelcomeScreen( false ); }