diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.cpp b/src/plugins/genericprojectmanager/genericprojectwizard.cpp index f4c0653e6d1de68b11b35fa9f30cf30a7f889b38..fd7007843a501bb7835d871d997593d2b3221317 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 3c49bdff4cd620dcd2aebc624d7c3ac6b5b67741..e5bde8f086eff58be0dd111bc9d4f14aa2482b2f 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