static bool create (Project::Item parent, const File& newFile, const char* templateName) { if (fillInNewCppFileTemplate (newFile, parent, templateName)) { parent.addFileRetainingSortOrder (newFile, true); return true; } showFailedToWriteMessage (newFile); return false; }
void createNewFile (Project::Item parent) override { const File newFile (askUserToChooseNewFile (String (defaultClassName) + ".h", "*.h;*.cpp", parent)); if (newFile != File::nonexistent) { const File headerFile (newFile.withFileExtension (".h")); const File cppFile (newFile.withFileExtension (".cpp")); headerFile.replaceWithText (String::empty); cppFile.replaceWithText (String::empty); OpenDocumentManager& odm = IntrojucerApp::getApp().openDocumentManager; if (SourceCodeDocument* cpp = dynamic_cast<SourceCodeDocument*> (odm.openFile (nullptr, cppFile))) { if (SourceCodeDocument* header = dynamic_cast<SourceCodeDocument*> (odm.openFile (nullptr, headerFile))) { ScopedPointer<JucerDocument> jucerDoc (new ComponentDocument (cpp)); if (jucerDoc != nullptr) { jucerDoc->setClassName (newFile.getFileNameWithoutExtension()); jucerDoc->flushChangesToDocuments(); jucerDoc = nullptr; cpp->save(); header->save(); odm.closeDocument (cpp, true); odm.closeDocument (header, true); parent.addFileRetainingSortOrder (headerFile, true); parent.addFileRetainingSortOrder (cppFile, true); } } } } }
void createNewFile (Project& project, Project::Item parent) override { auto newFile = askUserToChooseNewFile (String (defaultClassName) + ".h", "*.h;*.cpp", parent); if (newFile != File()) { auto headerFile = newFile.withFileExtension (".h"); auto cppFile = newFile.withFileExtension (".cpp"); headerFile.replaceWithText (String()); cppFile.replaceWithText (String()); auto& odm = ProjucerApplication::getApp().openDocumentManager; if (auto* cpp = dynamic_cast<SourceCodeDocument*> (odm.openFile (nullptr, cppFile))) { if (auto* header = dynamic_cast<SourceCodeDocument*> (odm.openFile (nullptr, headerFile))) { std::unique_ptr<JucerDocument> jucerDoc (new ComponentDocument (cpp)); if (jucerDoc != nullptr) { jucerDoc->setClassName (newFile.getFileNameWithoutExtension()); jucerDoc->flushChangesToDocuments (&project); jucerDoc.reset(); cpp->save(); header->save(); odm.closeDocument (cpp, true); odm.closeDocument (header, true); parent.addFileRetainingSortOrder (headerFile, true); parent.addFileRetainingSortOrder (cppFile, true); } } } } }
static bool create (const String& className, Project::Item parent, const File& newFile, const char* templateName) { String content = fillInBasicTemplateFields (newFile, parent, templateName) .replace ("COMPONENTCLASS", className) .replace ("INCLUDE_JUCE", CodeHelpers::createIncludeStatement (parent.project.getAppIncludeFile(), newFile)); if (FileHelpers::overwriteFileWithNewDataIfDifferent (newFile, content)) { parent.addFileRetainingSortOrder (newFile, true); return true; } showFailedToWriteMessage (newFile); return false; }