From c85b912362e6887fd2b20d7a8cb8a3d8003414ad Mon Sep 17 00:00:00 2001 From: Hugo Beauzee-Luyssen Date: Thu, 10 Dec 2009 19:10:58 +0100 Subject: [PATCH] The wizzard now really creates a project. If a project is currently oppened, it is closed. --- src/GUI/wizard/ProjectWizard.cpp | 4 ++++ src/Project/ProjectManager.cpp | 22 +++++++++++++--------- src/Project/ProjectManager.h | 2 +- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/GUI/wizard/ProjectWizard.cpp b/src/GUI/wizard/ProjectWizard.cpp index f3c34474..c50c136d 100644 --- a/src/GUI/wizard/ProjectWizard.cpp +++ b/src/GUI/wizard/ProjectWizard.cpp @@ -34,6 +34,8 @@ #include "WelcomePage.h" #include "OpenPage.h" +#include + ProjectWizard::ProjectWizard( QWidget* parent ) : QWizard( parent ) { @@ -98,6 +100,8 @@ void ProjectWizard::accept() { SettingsManager::getInstance()->commit(); } + ProjectManager::getInstance()->newProject( + SettingsManager::getInstance()->getValue( "project", "ProjectName" )->get().toString() ); emit flush(); QDialog::accept(); return ; diff --git a/src/Project/ProjectManager.cpp b/src/Project/ProjectManager.cpp index 4b43f5b3..9595a54f 100644 --- a/src/Project/ProjectManager.cpp +++ b/src/Project/ProjectManager.cpp @@ -93,6 +93,9 @@ void ProjectManager::loadProject( const QString& fileName ) if ( fileName.length() == 0 ) return; + if ( closeProject() == false ) + return ; + // Append the item to the recents list m_recentsProjects.removeAll( fileName ); m_recentsProjects.prepend( fileName ); @@ -102,8 +105,6 @@ void ProjectManager::loadProject( const QString& fileName ) QSettings s; s.setValue( "RecentsProjects", m_recentsProjects ); - closeProject(); - m_projectFile = new QFile( fileName ); m_domDocument = new QDomDocument; @@ -176,22 +177,25 @@ void ProjectManager::saveProject( bool saveAs /*= true*/ ) emit projectSaved(); } -//void ProjectManager::newProject( const QString &projectName ) -//{ -// if ( closeProject() -// m_fi -//} +void ProjectManager::newProject( const QString &projectName ) +{ + if ( closeProject() == false ) + return ; + m_projectName = projectName; + emit projectUpdated( m_projectName, true ); +} -void ProjectManager::closeProject() +bool ProjectManager::closeProject() { if ( askForSaveIfModified() == false ) - return ; + return false; if ( m_projectFile != NULL ) { delete m_projectFile; m_projectFile = NULL; } emit projectClosed(); + return true; } bool ProjectManager::askForSaveIfModified() diff --git a/src/Project/ProjectManager.h b/src/Project/ProjectManager.h index 7bac2e89..b95efeed 100644 --- a/src/Project/ProjectManager.h +++ b/src/Project/ProjectManager.h @@ -43,7 +43,7 @@ public: void saveProject( bool saveAs = true ); bool needSave() const; QStringList recentsProjects() const; - void closeProject(); + bool closeProject(); bool askForSaveIfModified(); private: -- GitLab