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.addFile (headerFile, 0, true); parent.addFile (cppFile, 0, true); } } } } }