//============================================================================== Project* NewProjectWizard::runWizard (Component* ownerWindow_, const String& projectName, const File& targetFolder_) { ownerWindow = ownerWindow_; appTitle = projectName; targetFolder = targetFolder_; if (! targetFolder.exists()) { if (! targetFolder.createDirectory()) failedFiles.add (targetFolder.getFullPathName()); } else if (FileHelpers::containsAnyNonHiddenFiles (targetFolder)) { if (! AlertWindow::showOkCancelBox (AlertWindow::InfoIcon, "New Juce Project", "The folder you chose isn't empty - are you sure you want to create the project there?\n\nAny existing files with the same names may be overwritten by the new files.")) return nullptr; } projectFile = targetFolder.getChildFile (File::createLegalFileName (appTitle)) .withFileExtension (Project::projectFileExtension); ScopedPointer<Project> project (new Project (projectFile)); project->addDefaultModules (true); if (failedFiles.size() == 0) { project->setFile (projectFile); project->setTitle (appTitle); project->getBundleIdentifier() = project->getDefaultBundleIdentifier(); if (! initialiseProject (*project)) return nullptr; if (project->save (false, true) != FileBasedDocument::savedOk) return nullptr; project->setChangedFlag (false); } if (failedFiles.size() > 0) { AlertWindow::showMessageBox (AlertWindow::WarningIcon, "Errors in Creating Project!", "The following files couldn't be written:\n\n" + failedFiles.joinIntoString ("\n", 0, 10)); return nullptr; } return project.release(); }