From 3f2678b38e217477ed432d5ff4f71416a056cdde Mon Sep 17 00:00:00 2001 From: ed Date: Thu, 18 Jan 2018 09:46:39 +0000 Subject: [PATCH] Projucer: Some code cleanup in Project.h/.cpp --- .../Projucer/Source/Project/jucer_Project.cpp | 226 +++++++++--------- .../Projucer/Source/Project/jucer_Project.h | 3 +- 2 files changed, 114 insertions(+), 115 deletions(-) diff --git a/extras/Projucer/Source/Project/jucer_Project.cpp b/extras/Projucer/Source/Project/jucer_Project.cpp index c08782854f..05446de12b 100644 --- a/extras/Projucer/Source/Project/jucer_Project.cpp +++ b/extras/Projucer/Source/Project/jucer_Project.cpp @@ -33,7 +33,7 @@ namespace { String makeValid4CC (const String& seed) { - String s (CodeHelpers::makeValidIdentifier (seed, false, true, false) + "xxxx"); + auto s = CodeHelpers::makeValidIdentifier (seed, false, true, false) + "xxxx"; return s.substring (0, 1).toUpperCase() + s.substring (1, 4).toLowerCase(); @@ -46,8 +46,7 @@ Project::Project (const File& f) String ("*") + projectFileExtension, "Choose a Jucer project to load", "Save Jucer project"), - projectRoot (Ids::JUCERPROJECT), - isSaving (false) + projectRoot (Ids::JUCERPROJECT) { Logger::writeToLog ("Loading project: " + f.getFullPathName()); setFile (f); @@ -84,7 +83,7 @@ const char* Project::projectFileExtension = ".jucer"; //============================================================================== void Project::setTitle (const String& newTitle) { - projectRoot.setProperty (Ids::name, newTitle, getUndoManagerFor (projectRoot)); + projectRoot.setProperty (Ids::name, newTitle, getUndoManager()); getMainGroup().getNameValue() = newTitle; bundleIdentifierValue.setDefault (getDefaultBundleIdentifierString()); @@ -174,20 +173,20 @@ void Project::initialiseMainGroup() void Project::initialiseProjectValues() { - projectNameValue.referTo (projectRoot, Ids::name, getUndoManagerFor (projectRoot), "JUCE Project"); - projectUIDValue.referTo (projectRoot, Ids::ID, getUndoManagerFor (projectRoot), createAlphaNumericUID()); - projectTypeValue.referTo (projectRoot, Ids::projectType, getUndoManagerFor (projectRoot), ProjectType_GUIApp::getTypeName()); - versionValue.referTo (projectRoot, Ids::version, getUndoManagerFor (projectRoot), "1.0.0"); - bundleIdentifierValue.referTo (projectRoot, Ids::bundleIdentifier, getUndoManagerFor (projectRoot), getDefaultBundleIdentifierString()); + projectNameValue.referTo (projectRoot, Ids::name, getUndoManager(), "JUCE Project"); + projectUIDValue.referTo (projectRoot, Ids::ID, getUndoManager(), createAlphaNumericUID()); + projectTypeValue.referTo (projectRoot, Ids::projectType, getUndoManager(), ProjectType_GUIApp::getTypeName()); + versionValue.referTo (projectRoot, Ids::version, getUndoManager(), "1.0.0"); + bundleIdentifierValue.referTo (projectRoot, Ids::bundleIdentifier, getUndoManager(), getDefaultBundleIdentifierString()); - companyNameValue.referTo (projectRoot, Ids::companyName, getUndoManagerFor (projectRoot)); - companyCopyrightValue.referTo (projectRoot, Ids::companyCopyright, getUndoManagerFor (projectRoot)); - companyWebsiteValue.referTo (projectRoot, Ids::companyWebsite, getUndoManagerFor (projectRoot)); - companyEmailValue.referTo (projectRoot, Ids::companyEmail, getUndoManagerFor (projectRoot)); + companyNameValue.referTo (projectRoot, Ids::companyName, getUndoManager()); + companyCopyrightValue.referTo (projectRoot, Ids::companyCopyright, getUndoManager()); + companyWebsiteValue.referTo (projectRoot, Ids::companyWebsite, getUndoManager()); + companyEmailValue.referTo (projectRoot, Ids::companyEmail, getUndoManager()); - displaySplashScreenValue.referTo (projectRoot, Ids::displaySplashScreen, getUndoManagerFor (projectRoot), ! ProjucerApplication::getApp().isPaidOrGPL()); - splashScreenColourValue.referTo (projectRoot, Ids::splashScreenColour, getUndoManagerFor (projectRoot), "Dark"); - reportAppUsageValue.referTo (projectRoot, Ids::reportAppUsage, getUndoManagerFor (projectRoot)); + displaySplashScreenValue.referTo (projectRoot, Ids::displaySplashScreen, getUndoManager(), ! ProjucerApplication::getApp().isPaidOrGPL()); + splashScreenColourValue.referTo (projectRoot, Ids::splashScreenColour, getUndoManager(), "Dark"); + reportAppUsageValue.referTo (projectRoot, Ids::reportAppUsage, getUndoManager()); if (ProjucerApplication::getApp().isPaidOrGPL()) { @@ -199,57 +198,57 @@ void Project::initialiseProjectValues() reportAppUsageValue.setDefault (true); } - cppStandardValue.referTo (projectRoot, Ids::cppLanguageStandard, getUndoManagerFor (projectRoot), "14"); + cppStandardValue.referTo (projectRoot, Ids::cppLanguageStandard, getUndoManager(), "14"); - headerSearchPathsValue.referTo (projectRoot, Ids::headerPath, getUndoManagerFor (projectRoot)); - preprocessorDefsValue.referTo (projectRoot, Ids::defines, getUndoManagerFor (projectRoot)); - userNotesValue.referTo (projectRoot, Ids::userNotes, getUndoManagerFor (projectRoot)); + headerSearchPathsValue.referTo (projectRoot, Ids::headerPath, getUndoManager()); + preprocessorDefsValue.referTo (projectRoot, Ids::defines, getUndoManager()); + userNotesValue.referTo (projectRoot, Ids::userNotes, getUndoManager()); - maxBinaryFileSizeValue.referTo (projectRoot, Ids::maxBinaryFileSize, getUndoManagerFor (projectRoot), 10240 * 1024); - includeBinaryDataInAppConfigValue.referTo (projectRoot, Ids::includeBinaryInAppConfig, getUndoManagerFor (projectRoot), true); - binaryDataNamespaceValue.referTo (projectRoot, Ids::binaryDataNamespace, getUndoManagerFor (projectRoot), "BinaryData"); + maxBinaryFileSizeValue.referTo (projectRoot, Ids::maxBinaryFileSize, getUndoManager(), 10240 * 1024); + includeBinaryDataInAppConfigValue.referTo (projectRoot, Ids::includeBinaryInAppConfig, getUndoManager(), true); + binaryDataNamespaceValue.referTo (projectRoot, Ids::binaryDataNamespace, getUndoManager(), "BinaryData"); } void Project::initialiseAudioPluginValues() { - buildVSTValue.referTo (projectRoot, Ids::buildVST, getUndoManagerFor (projectRoot), true); - buildVST3Value.referTo (projectRoot, Ids::buildVST3, getUndoManagerFor (projectRoot), false); - buildAUValue.referTo (projectRoot, Ids::buildAU, getUndoManagerFor (projectRoot), true); - buildAUv3Value.referTo (projectRoot, Ids::buildAUv3, getUndoManagerFor (projectRoot), false); - buildRTASValue.referTo (projectRoot, Ids::buildRTAS, getUndoManagerFor (projectRoot), false); - buildAAXValue.referTo (projectRoot, Ids::buildAAX, getUndoManagerFor (projectRoot), false); - buildStandaloneValue.referTo (projectRoot, Ids::buildStandalone, getUndoManagerFor (projectRoot), false); - enableIAAValue.referTo (projectRoot, Ids::enableIAA, getUndoManagerFor (projectRoot), false); + buildVSTValue.referTo (projectRoot, Ids::buildVST, getUndoManager(), true); + buildVST3Value.referTo (projectRoot, Ids::buildVST3, getUndoManager(), false); + buildAUValue.referTo (projectRoot, Ids::buildAU, getUndoManager(), true); + buildAUv3Value.referTo (projectRoot, Ids::buildAUv3, getUndoManager(), false); + buildRTASValue.referTo (projectRoot, Ids::buildRTAS, getUndoManager(), false); + buildAAXValue.referTo (projectRoot, Ids::buildAAX, getUndoManager(), false); + buildStandaloneValue.referTo (projectRoot, Ids::buildStandalone, getUndoManager(), false); + enableIAAValue.referTo (projectRoot, Ids::enableIAA, getUndoManager(), false); - pluginNameValue.referTo (projectRoot, Ids::pluginName, getUndoManagerFor (projectRoot), getProjectNameString()); - pluginDescriptionValue.referTo (projectRoot, Ids::pluginDesc, getUndoManagerFor (projectRoot), getProjectNameString()); - pluginManufacturerValue.referTo (projectRoot, Ids::pluginManufacturer, getUndoManagerFor (projectRoot), "yourcompany"); - pluginManufacturerCodeValue.referTo (projectRoot, Ids::pluginManufacturerCode, getUndoManagerFor (projectRoot), "Manu"); - pluginCodeValue.referTo (projectRoot, Ids::pluginCode, getUndoManagerFor (projectRoot), makeValid4CC (getProjectUIDString() + getProjectUIDString())); - pluginChannelConfigsValue.referTo (projectRoot, Ids::pluginChannelConfigs, getUndoManagerFor (projectRoot)); + pluginNameValue.referTo (projectRoot, Ids::pluginName, getUndoManager(), getProjectNameString()); + pluginDescriptionValue.referTo (projectRoot, Ids::pluginDesc, getUndoManager(), getProjectNameString()); + pluginManufacturerValue.referTo (projectRoot, Ids::pluginManufacturer, getUndoManager(), "yourcompany"); + pluginManufacturerCodeValue.referTo (projectRoot, Ids::pluginManufacturerCode, getUndoManager(), "Manu"); + pluginCodeValue.referTo (projectRoot, Ids::pluginCode, getUndoManager(), makeValid4CC (getProjectUIDString() + getProjectUIDString())); + pluginChannelConfigsValue.referTo (projectRoot, Ids::pluginChannelConfigs, getUndoManager()); - pluginIsSynthValue.referTo (projectRoot, Ids::pluginIsSynth, getUndoManagerFor (projectRoot), false); - pluginWantsMidiInputValue.referTo (projectRoot, Ids::pluginWantsMidiIn, getUndoManagerFor (projectRoot), false); - pluginProducesMidiOutValue.referTo (projectRoot, Ids::pluginProducesMidiOut, getUndoManagerFor (projectRoot), false); - pluginIsMidiEffectPluginValue.referTo (projectRoot, Ids::pluginIsMidiEffectPlugin, getUndoManagerFor (projectRoot), false); - pluginEditorNeedsKeyFocusValue.referTo (projectRoot, Ids::pluginEditorRequiresKeys, getUndoManagerFor (projectRoot), false); + pluginIsSynthValue.referTo (projectRoot, Ids::pluginIsSynth, getUndoManager(), false); + pluginWantsMidiInputValue.referTo (projectRoot, Ids::pluginWantsMidiIn, getUndoManager(), false); + pluginProducesMidiOutValue.referTo (projectRoot, Ids::pluginProducesMidiOut, getUndoManager(), false); + pluginIsMidiEffectPluginValue.referTo (projectRoot, Ids::pluginIsMidiEffectPlugin, getUndoManager(), false); + pluginEditorNeedsKeyFocusValue.referTo (projectRoot, Ids::pluginEditorRequiresKeys, getUndoManager(), false); - pluginVSTCategoryValue.referTo (projectRoot, Ids::pluginVSTCategory, getUndoManagerFor (projectRoot)); - pluginAUExportPrefixValue.referTo (projectRoot, Ids::pluginAUExportPrefix, getUndoManagerFor (projectRoot), + pluginVSTCategoryValue.referTo (projectRoot, Ids::pluginVSTCategory, getUndoManager()); + pluginAUExportPrefixValue.referTo (projectRoot, Ids::pluginAUExportPrefix, getUndoManager(), CodeHelpers::makeValidIdentifier (getProjectNameString(), false, true, false) + "AU"); - pluginAUMainTypeValue.referTo (projectRoot, Ids::pluginAUMainType, getUndoManagerFor (projectRoot)); - pluginRTASCategoryValue.referTo (projectRoot, Ids::pluginRTASCategory, getUndoManagerFor (projectRoot)); - pluginRTASBypassDisabledValue.referTo (projectRoot, Ids::pluginRTASDisableBypass, getUndoManagerFor (projectRoot)); - pluginRTASMultiMonoDisabledValue.referTo (projectRoot, Ids::pluginRTASDisableMultiMono, getUndoManagerFor (projectRoot)); - pluginAAXIdentifierValue.referTo (projectRoot, Ids::aaxIdentifier, getUndoManagerFor (projectRoot), getDefaultAAXIdentifierString()); - pluginAAXCategoryValue.referTo (projectRoot, Ids::pluginAAXCategory, getUndoManagerFor (projectRoot), "AAX_ePlugInCategory_Dynamics"); - pluginAAXBypassDisabledValue.referTo (projectRoot, Ids::pluginAAXDisableBypass, getUndoManagerFor (projectRoot)); - pluginAAXMultiMonoDisabledValue.referTo (projectRoot, Ids::pluginAAXDisableMultiMono, getUndoManagerFor (projectRoot)); + pluginAUMainTypeValue.referTo (projectRoot, Ids::pluginAUMainType, getUndoManager()); + pluginRTASCategoryValue.referTo (projectRoot, Ids::pluginRTASCategory, getUndoManager()); + pluginRTASBypassDisabledValue.referTo (projectRoot, Ids::pluginRTASDisableBypass, getUndoManager()); + pluginRTASMultiMonoDisabledValue.referTo (projectRoot, Ids::pluginRTASDisableMultiMono, getUndoManager()); + pluginAAXIdentifierValue.referTo (projectRoot, Ids::aaxIdentifier, getUndoManager(), getDefaultAAXIdentifierString()); + pluginAAXCategoryValue.referTo (projectRoot, Ids::pluginAAXCategory, getUndoManager(), "AAX_ePlugInCategory_Dynamics"); + pluginAAXBypassDisabledValue.referTo (projectRoot, Ids::pluginAAXDisableBypass, getUndoManager()); + pluginAAXMultiMonoDisabledValue.referTo (projectRoot, Ids::pluginAAXDisableMultiMono, getUndoManager()); } void Project::updateOldStyleConfigList() { - ValueTree deprecatedConfigsList (projectRoot.getChildWithName (Ids::CONFIGURATIONS)); + auto deprecatedConfigsList = projectRoot.getChildWithName (Ids::CONFIGURATIONS); if (deprecatedConfigsList.isValid()) { @@ -259,17 +258,17 @@ void Project::updateOldStyleConfigList() { if (exporter->getNumConfigurations() == 0) { - ValueTree newConfigs (deprecatedConfigsList.createCopy()); + auto newConfigs = deprecatedConfigsList.createCopy(); if (! exporter->isXcode()) { for (int j = newConfigs.getNumChildren(); --j >= 0;) { - ValueTree config (newConfigs.getChild(j)); + auto config = newConfigs.getChild (j); - config.removeProperty (Ids::osxSDK, nullptr); + config.removeProperty (Ids::osxSDK, nullptr); config.removeProperty (Ids::osxCompatibility, nullptr); - config.removeProperty (Ids::osxArchitecture, nullptr); + config.removeProperty (Ids::osxArchitecture, nullptr); } } @@ -292,17 +291,17 @@ void Project::moveOldPropertyFromProjectToAllExporters (Identifier name) void Project::removeDefunctExporters() { - ValueTree exporters (projectRoot.getChildWithName (Ids::EXPORTFORMATS)); + auto exporters = projectRoot.getChildWithName (Ids::EXPORTFORMATS); StringPairArray oldExporters; oldExporters.set ("ANDROID", "Android Ant Exporter"); - oldExporters.set ("MSVC6", "MSVC6"); - oldExporters.set ("VS2010", "Visual Studio 2010"); - oldExporters.set ("VS2012", "Visual Studio 2012"); + oldExporters.set ("MSVC6", "MSVC6"); + oldExporters.set ("VS2010", "Visual Studio 2010"); + oldExporters.set ("VS2012", "Visual Studio 2012"); for (auto& key : oldExporters.getAllKeys()) { - ValueTree oldExporter (exporters.getChildWithName (key)); + auto oldExporter = exporters.getChildWithName (key); if (oldExporter.isValid()) { @@ -347,7 +346,7 @@ static bool isAnyModuleNewerThanProjucer (const OwnedArray& m { for (int i = modules.size(); --i >= 0;) { - const ModuleDescription* m = modules.getUnchecked(i); + auto* m = modules.getUnchecked(i); if (m->getID().startsWith ("juce_") && getJuceVersion (m->getVersion()) > getBuiltJuceVersion()) @@ -405,7 +404,7 @@ Result Project::loadDocument (const File& file) if (xml == nullptr || ! xml->hasTagName (Ids::JUCERPROJECT.toString())) return Result::fail ("Not a valid Jucer project!"); - ValueTree newTree (ValueTree::fromXml (*xml)); + auto newTree = ValueTree::fromXml (*xml); if (! newTree.hasType (Ids::JUCERPROJECT)) return Result::fail ("The document contains errors and couldn't be parsed!"); @@ -481,7 +480,7 @@ void Project::valueTreeParentChanged (ValueTree&) {} //============================================================================== bool Project::hasProjectBeenModified() { - Time oldModificationTime = modificationTime; + auto oldModificationTime = modificationTime; modificationTime = getFile().getLastModificationTime(); return (modificationTime.toMilliseconds() > (oldModificationTime.toMilliseconds() + 1000LL)); @@ -508,12 +507,12 @@ File Project::resolveFilename (String filename) const String Project::getRelativePathForFile (const File& file) const { - String filename (file.getFullPathName()); + auto filename = file.getFullPathName(); - File relativePathBase (getFile().getParentDirectory()); + auto relativePathBase = getFile().getParentDirectory(); - String p1 (relativePathBase.getFullPathName()); - String p2 (file.getFullPathName()); + auto p1 = relativePathBase.getFullPathName(); + auto p2 = file.getFullPathName(); while (p1.startsWithChar (File::getSeparatorChar())) p1 = p1.substring (1); @@ -533,17 +532,17 @@ String Project::getRelativePathForFile (const File& file) const //============================================================================== const ProjectType& Project::getProjectType() const { - if (const ProjectType* type = ProjectType::findType (getProjectTypeString())) + if (auto* type = ProjectType::findType (getProjectTypeString())) return *type; - const ProjectType* guiType = ProjectType::findType (ProjectType_GUIApp::getTypeName()); + auto* guiType = ProjectType::findType (ProjectType_GUIApp::getTypeName()); jassert (guiType != nullptr); return *guiType; } bool Project::shouldBuildTargetType (ProjectType::Target::Type targetType) const noexcept { - const ProjectType& projectType = getProjectType(); + auto& projectType = getProjectType(); if (! projectType.supportsTargetType (targetType)) return false; @@ -655,10 +654,10 @@ void Project::createPropertyEditors (PropertyListBuilder& props) "Your company e-mail, which will be added to the properties of the binary where possible"); { - const String licenseRequiredTagline ("Required for closed source applications without an Indie or Pro JUCE license"); - const String licenseRequiredInfo ("In accordance with the terms of the JUCE 5 End-Use License Agreement (www.juce.com/juce-5-licence), " - "this option can only be disabled for closed source applications if you have a JUCE Indie or Pro " - "license, or are using JUCE under the GPL v3 license."); + String licenseRequiredTagline ("Required for closed source applications without an Indie or Pro JUCE license"); + String licenseRequiredInfo ("In accordance with the terms of the JUCE 5 End-Use License Agreement (www.juce.com/juce-5-licence), " + "this option can only be disabled for closed source applications if you have a JUCE Indie or Pro " + "license, or are using JUCE under the GPL v3 license."); StringPairArray description; description.set ("Report JUCE app usage", "This option controls the collection of usage data from users of this JUCE application."); @@ -699,7 +698,7 @@ void Project::createPropertyEditors (PropertyListBuilder& props) auto types = ProjectType::getAllTypes(); - for (auto i = 0; i < types.size(); ++i) + for (int i = 0; i < types.size(); ++i) { projectTypeNames.add (types.getUnchecked(i)->getDescription()); projectTypeCodes.add (types.getUnchecked(i)->getType()); @@ -721,7 +720,7 @@ void Project::createPropertyEditors (PropertyListBuilder& props) StringArray maxSizeNames; Array maxSizeCodes; - for (auto i = 0; i < numElementsInArray (maxSizes); ++i) + for (int i = 0; i < numElementsInArray (maxSizes); ++i) { auto sizeInBytes = maxSizes[i] * 1024; @@ -833,8 +832,7 @@ void Project::createAudioPluginPropertyEditors (PropertyListBuilder& props) //============================================================================== static StringArray getVersionSegments (const Project& p) { - StringArray segments; - segments.addTokens (p.getVersionString(), ",.", ""); + auto segments = StringArray::fromTokens (p.getVersionString(), ",.", ""); segments.trim(); segments.removeEmptyStrings(); return segments; @@ -842,11 +840,11 @@ static StringArray getVersionSegments (const Project& p) int Project::getVersionAsHexInteger() const { - const StringArray segments (getVersionSegments (*this)); + auto segments = getVersionSegments (*this); - int value = (segments[0].getIntValue() << 16) - + (segments[1].getIntValue() << 8) - + segments[2].getIntValue(); + auto value = (segments[0].getIntValue() << 16) + + (segments[1].getIntValue() << 8) + + segments[2].getIntValue(); if (segments.size() >= 4) value = (value << 8) + segments[3].getIntValue(); @@ -861,7 +859,7 @@ String Project::getVersionAsHex() const File Project::getBinaryDataCppFile (int index) const { - const File cpp (getGeneratedCodeFolder().getChildFile ("BinaryData.cpp")); + auto cpp = getGeneratedCodeFolder().getChildFile ("BinaryData.cpp"); if (index > 0) return cpp.getSiblingFile (cpp.getFileNameWithoutExtension() + String (index + 1)) @@ -872,7 +870,7 @@ File Project::getBinaryDataCppFile (int index) const Project::Item Project::getMainGroup() { - return Item (*this, projectRoot.getChildWithName (Ids::MAINGROUP), false); + return { *this, projectRoot.getChildWithName (Ids::MAINGROUP), false }; } PropertiesFile& Project::getStoredProperties() const @@ -951,9 +949,9 @@ Project::Item Project::Item::findItemWithID (const String& targetId) const if (isGroup()) { - for (int i = getNumChildren(); --i >= 0;) + for (auto i = getNumChildren(); --i >= 0;) { - Item found (getChild(i).findItemWithID (targetId)); + auto found = getChild(i).findItemWithID (targetId); if (found.isValid()) return found; @@ -1022,7 +1020,7 @@ void Project::Item::setFile (const RelativePath& file) bool Project::Item::renameFile (const File& newFile) { - const File oldFile (getFile()); + auto oldFile = getFile(); if (oldFile.moveFileTo (newFile) || (newFile.exists() && ! oldFile.exists())) @@ -1047,9 +1045,9 @@ Project::Item Project::Item::findItemForFile (const File& file) const if (isGroup()) { - for (int i = getNumChildren(); --i >= 0;) + for (auto i = getNumChildren(); --i >= 0;) { - Item found (getChild(i).findItemForFile (file)); + auto found = getChild(i).findItemForFile (file); if (found.isValid()) return found; @@ -1072,7 +1070,7 @@ File Project::Item::determineGroupFolder() const return f.getParentDirectory(); } - Item parent (getParent()); + auto parent = getParent(); if (parent != *this) { f = parent.determineGroupFolder(); @@ -1102,7 +1100,7 @@ void Project::Item::initialiseMissingProperties() } else if (isGroup()) { - for (int i = getNumChildren(); --i >= 0;) + for (auto i = getNumChildren(); --i >= 0;) getChild(i).initialiseMissingProperties(); } } @@ -1132,7 +1130,7 @@ Project::Item Project::Item::getParent() const if (isMainGroup() || ! isGroup()) return *this; - return Item (project, state.getParent(), belongsToModule); + return { project, state.getParent(), belongsToModule }; } struct ItemSorter @@ -1147,8 +1145,8 @@ struct ItemSorterWithGroupsAtStart { static int compareElements (const ValueTree& first, const ValueTree& second) { - const bool firstIsGroup = first.hasType (Ids::GROUP); - const bool secondIsGroup = second.hasType (Ids::GROUP); + auto firstIsGroup = first.hasType (Ids::GROUP); + auto secondIsGroup = second.hasType (Ids::GROUP); if (firstIsGroup == secondIsGroup) return first [Ids::name].toString().compareNatural (second [Ids::name].toString()); @@ -1179,7 +1177,7 @@ static bool isGroupSorted (const ValueTree& state, bool keepGroupsAtStart) if (state.getNumChildren() == 1) return true; - ValueTree stateCopy (state.createCopy()); + auto stateCopy = state.createCopy(); sortGroup (stateCopy, keepGroupsAtStart, nullptr); return stateCopy.isEquivalentTo (state); } @@ -1189,17 +1187,17 @@ void Project::Item::sortAlphabetically (bool keepGroupsAtStart, bool recursive) sortGroup (state, keepGroupsAtStart, getUndoManager()); if (recursive) - for (int i = getNumChildren(); --i >= 0;) + for (auto i = getNumChildren(); --i >= 0;) getChild(i).sortAlphabetically (keepGroupsAtStart, true); } Project::Item Project::Item::getOrCreateSubGroup (const String& name) { - for (int i = state.getNumChildren(); --i >= 0;) + for (auto i = state.getNumChildren(); --i >= 0;) { - const ValueTree child (state.getChild (i)); + auto child = state.getChild (i); if (child.getProperty (Ids::name) == name && child.hasType (Ids::GROUP)) - return Item (project, child, belongsToModule); + return { project, child, belongsToModule }; } return addNewSubGroup (name, -1); @@ -1207,13 +1205,13 @@ Project::Item Project::Item::getOrCreateSubGroup (const String& name) Project::Item Project::Item::addNewSubGroup (const String& name, int insertIndex) { - String newID (createGUID (getID() + name + String (getNumChildren()))); + auto newID = createGUID (getID() + name + String (getNumChildren())); int n = 0; while (project.getMainGroup().findItemWithID (newID).isValid()) newID = createGUID (newID + String (++n)); - Item group (createGroup (project, name, newID, belongsToModule)); + auto group = createGroup (project, name, newID, belongsToModule); jassert (canContain (group)); addChild (group, insertIndex); @@ -1227,7 +1225,7 @@ bool Project::Item::addFileAtIndex (const File& file, int insertIndex, const boo if (file.isDirectory()) { - Item group (addNewSubGroup (file.getFileName(), insertIndex)); + auto group = addNewSubGroup (file.getFileName(), insertIndex); for (DirectoryIterator iter (file, false, "*", File::findFilesAndDirectories); iter.next();) if (! project.getMainGroup().findItemForFile (iter.getFile()).isValid()) @@ -1248,8 +1246,8 @@ bool Project::Item::addFileAtIndex (const File& file, int insertIndex, const boo bool Project::Item::addFileRetainingSortOrder (const File& file, bool shouldCompile) { - const bool wasSortedGroupsNotFirst = isGroupSorted (state, false); - const bool wasSortedGroupsFirst = isGroupSorted (state, true); + auto wasSortedGroupsNotFirst = isGroupSorted (state, false); + auto wasSortedGroupsFirst = isGroupSorted (state, true); if (! addFileAtIndex (file, 0, shouldCompile)) return false; @@ -1295,20 +1293,20 @@ bool Project::Item::addRelativeFile (const RelativePath& file, int insertIndex, Icon Project::Item::getIcon (bool isOpen) const { - const Icons& icons = getIcons(); + auto& icons = getIcons(); if (isFile()) { if (isImageFile()) return Icon (icons.imageDoc, Colours::transparentBlack); - return Icon (icons.file, Colours::transparentBlack); + return { icons.file, Colours::transparentBlack }; } if (isMainGroup()) - return Icon (icons.juceLogo, Colours::orange); + return { icons.juceLogo, Colours::orange }; - return Icon (isOpen ? icons.openFolder : icons.closedFolder, Colours::transparentBlack); + return { isOpen ? icons.openFolder : icons.closedFolder, Colours::transparentBlack }; } bool Project::Item::isIconCrossedOut() const @@ -1348,7 +1346,7 @@ String Project::getPluginRTASCategoryCode() if (static_cast (isPluginSynth())) return "ePlugInCategory_SWGenerators"; - String s (getPluginRTASCategoryString()); + auto s = getPluginRTASCategoryString(); if (s.isEmpty()) s = "ePlugInCategory_None"; @@ -1409,7 +1407,7 @@ String Project::getIAATypeCode() String Project::getIAAPluginName() { - String s = getPluginManufacturerString(); + auto s = getPluginManufacturerString(); s << ": "; s << getPluginNameString(); return s; @@ -1501,7 +1499,7 @@ String Project::getUniqueTargetFolderSuffixForExporter (const String& exporterNa buildFolders.remove (buildFolders.indexOf (base)); - auto num = 1; + int num = 1; for (auto f : buildFolders) { if (! f.endsWith ("_" + String (num))) @@ -1518,7 +1516,7 @@ String Project::getFileTemplate (const String& templateName) { int dataSize; - if (const char* data = BinaryData::getNamedResource (templateName.toUTF8(), dataSize)) + if (auto* data = BinaryData::getNamedResource (templateName.toUTF8(), dataSize)) return String::fromUTF8 (data, dataSize); jassertfalse; diff --git a/extras/Projucer/Source/Project/jucer_Project.h b/extras/Projucer/Source/Project/jucer_Project.h index 1261aeabdb..a6bb3b434c 100644 --- a/extras/Projucer/Source/Project/jucer_Project.h +++ b/extras/Projucer/Source/Project/jucer_Project.h @@ -318,6 +318,7 @@ public: //============================================================================== UndoManager* getUndoManagerFor (const ValueTree&) const { return nullptr; } + UndoManager* getUndoManager() const { return nullptr; } //============================================================================== static const char* projectFileExtension; @@ -351,7 +352,7 @@ private: //============================================================================== friend class Item; ScopedPointer enabledModulesList; - bool isSaving; + bool isSaving = false; Time modificationTime; StringPairArray parsedPreprocessorDefs;