From 4300ebcd636bd85cf25b8540a3d819b38ccdcb2f Mon Sep 17 00:00:00 2001 From: Roberto Raggi <roberto.raggi@nokia.com> Date: Thu, 12 Mar 2009 18:31:50 +0100 Subject: [PATCH] load the generated project. --- .../genericprojectwizard.cpp | 40 +++++++++++++++++-- .../genericprojectwizard.h | 2 + 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.cpp b/src/plugins/genericprojectmanager/genericprojectwizard.cpp index f4c0653e6d1..fd7007843a5 100644 --- a/src/plugins/genericprojectmanager/genericprojectwizard.cpp +++ b/src/plugins/genericprojectmanager/genericprojectwizard.cpp @@ -1,8 +1,11 @@ #include "genericprojectwizard.h" +#include <projectexplorer/projectexplorer.h> + #include <utils/pathchooser.h> #include <QtGui/QWizard> #include <QtGui/QFormLayout> +#include <QtCore/QDir> #include <QtCore/QtDebug> using namespace GenericProjectManager::Internal; @@ -20,10 +23,11 @@ GenericProjectWizard::~GenericProjectWizard() Core::BaseFileWizardParameters GenericProjectWizard::parameters() { static Core::BaseFileWizardParameters parameters(ProjectWizard); + parameters.setIcon(QIcon(":/wizards/images/console.png")); parameters.setName(tr("Existing Project")); parameters.setDescription(tr("Import Existing Project")); - parameters.setCategory(QLatin1String("Import")); - parameters.setTrCategory(tr("Import")); + parameters.setCategory(QLatin1String("Projects")); + parameters.setTrCategory(tr("Projects")); return parameters; } @@ -36,7 +40,7 @@ QWizard *GenericProjectWizard::createWizardDialog(QWidget *parent, setupWizard(wizard); QWizardPage *firstPage = new QWizardPage; - firstPage->setTitle(tr("")); + firstPage->setTitle(tr("Project")); QFormLayout *layout = new QFormLayout(firstPage); @@ -56,7 +60,35 @@ Core::GeneratedFiles GenericProjectWizard::generateFiles(const QWizard *w, QString *errorMessage) const { PathChooser *pathChooser = w->findChild<PathChooser *>("pathChooser"); + const QString projectName = QFileInfo(pathChooser->path()).baseName() + QLatin1String(".creator"); + const QDir dir(pathChooser->path()); + + // ### FIXME: use the mimetype database. + // ### FIXME: import nested folders. + const QStringList sources = dir.entryList(QStringList() << "Makefile" << "*.c" << "*.cpp" << "*.h", QDir::Files); + + QString projectContents; + QTextStream stream(&projectContents); + stream << "files=" << sources.join(","); + stream << endl; + + Core::GeneratedFile file(QFileInfo(dir, projectName).absoluteFilePath()); // ### fixme + file.setContents(projectContents); - return Core::GeneratedFiles(); + Core::GeneratedFiles files; + files.append(file); + + return files; +} + +bool GenericProjectWizard::postGenerateFiles(const Core::GeneratedFiles &l, QString *errorMessage) +{ + // Post-Generate: Open the project + const QString proFileName = l.back().path(); + if (!ProjectExplorer::ProjectExplorerPlugin::instance()->openProject(proFileName)) { + *errorMessage = tr("The project %1 could not be opened.").arg(proFileName); + return false; + } + return true; } diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.h b/src/plugins/genericprojectmanager/genericprojectwizard.h index 3c49bdff4cd..e5bde8f086e 100644 --- a/src/plugins/genericprojectmanager/genericprojectwizard.h +++ b/src/plugins/genericprojectmanager/genericprojectwizard.h @@ -23,6 +23,8 @@ protected: virtual Core::GeneratedFiles generateFiles(const QWizard *w, QString *errorMessage) const; + + virtual bool postGenerateFiles(const Core::GeneratedFiles &l, QString *errorMessage); }; } // end of namespace Internal -- GitLab