void Project::addNewExporter (int exporterIndex) { ScopedPointer<ProjectExporter> exp (ProjectExporter::createNewExporter (*this, exporterIndex)); ValueTree exporters (getExporters()); exporters.addChild (exp->getSettings(), -1, getUndoManagerFor (exporters)); }
void Project::addNewExporter (const String& exporterName) { ScopedPointer<ProjectExporter> exp (ProjectExporter::createNewExporter (*this, exporterName)); ValueTree exporters (getExporters()); exporters.addChild (exp->settings, -1, getUndoManagerFor (exporters)); }
void Project::removeModule (const String& moduleID) { ValueTree modules (getModulesNode()); for (int i = 0; i < modules.getNumChildren(); ++i) if (modules.getChild(i) [Ids::ID] == moduleID) modules.removeChild (i, getUndoManagerFor (modules)); }
void Project::createDefaultExporters() { ValueTree exporters (getExporters()); exporters.removeAllChildren (getUndoManagerFor (exporters)); for (int i = 0; i < ProjectExporter::getNumExporters(); ++i) addNewExporter (i); }
Value Project::getConfigFlag (const String& name) { ValueTree configNode (getConfigNode()); Value v (configNode.getPropertyAsValue (name, getUndoManagerFor (configNode))); if (v.getValue().toString().isEmpty()) v = configFlagDefault; return v; }
void Project::createDefaultExporters() { ValueTree exporters (getExporters()); exporters.removeAllChildren (getUndoManagerFor (exporters)); const StringArray exporterNames (ProjectExporter::getDefaultExporters()); for (int i = 0; i < exporterNames.size(); ++i) addNewExporter (exporterNames[i]); }
void Project::sanitiseConfigFlags() { ValueTree configNode (getConfigNode()); for (int i = configNode.getNumProperties(); --i >= 0;) { const var value (configNode [configNode.getPropertyName(i)]); if (value != configFlagEnabled && value != configFlagDisabled) configNode.removeProperty (configNode.getPropertyName(i), getUndoManagerFor (configNode)); } }
void Project::addNewConfiguration (BuildConfiguration* configToCopy) { const String configName (getUniqueConfigName (configToCopy != nullptr ? configToCopy->config [Ids::name].toString() : "New Build Configuration")); ValueTree configs (getConfigurations()); if (! configs.isValid()) { projectRoot.addChild (ValueTree (Tags::configurations), 0, getUndoManagerFor (projectRoot)); configs = getConfigurations(); } ValueTree newConfig (Tags::configuration); if (configToCopy != nullptr) newConfig = configToCopy->config.createCopy(); newConfig.setProperty (Ids::name, configName, 0); configs.addChild (newConfig, -1, getUndoManagerFor (configs)); }
//============================================================================== ValueTree Project::getExporters() { ValueTree exporters (projectRoot.getChildWithName (Tags::exporters)); if (! exporters.isValid()) { projectRoot.addChild (ValueTree (Tags::exporters), 0, getUndoManagerFor (projectRoot)); exporters = getExporters(); } return exporters; }
void Project::addModule (const String& moduleID, bool shouldCopyFilesLocally) { if (! isModuleEnabled (moduleID)) { ValueTree module (Tags::module); module.setProperty (Ids::ID, moduleID, nullptr); ValueTree modules (getModulesNode()); modules.addChild (module, -1, getUndoManagerFor (modules)); shouldShowAllModuleFilesInProject (moduleID) = true; } if (shouldCopyFilesLocally) shouldCopyModuleFilesLocally (moduleID) = true; }
Value Project::shouldCopyModuleFilesLocally (const String& moduleID) { return getModulesNode().getChildWithProperty (Ids::ID, moduleID) .getPropertyAsValue (Ids::useLocalCopy, getUndoManagerFor (getModulesNode())); }
Value Project::shouldShowAllModuleFilesInProject (const String& moduleID) { return getModulesNode().getChildWithProperty (Ids::ID, moduleID) .getPropertyAsValue (Ids::showAllCode, getUndoManagerFor (getModulesNode())); }
//============================================================================== void Project::setTitle (const String& newTitle) { projectRoot.setProperty (Ids::name, newTitle, getUndoManagerFor (projectRoot)); getMainGroup().getNameValue() = newTitle; }
void Project::deleteConfiguration (int index) { ValueTree configs (getConfigurations()); configs.removeChild (index, getUndoManagerFor (getConfigurations())); }
void Project::deleteExporter (int index) { ValueTree exporters (getExporters()); exporters.removeChild (index, getUndoManagerFor (exporters)); }