diff --git a/extras/NetworkGraphicsDemo/Source/Demos.h b/extras/NetworkGraphicsDemo/Source/Demos.h index 505e50f1d2..e9c0dcfcaf 100644 --- a/extras/NetworkGraphicsDemo/Source/Demos.h +++ b/extras/NetworkGraphicsDemo/Source/Demos.h @@ -84,7 +84,7 @@ struct BackgroundLogo : public AnimatedContent )blahblah"; - logo.reset (Drawable::createFromSVG (*parseXML (logoData))); + logo = Drawable::createFromSVG (*parseXML (logoData)); } String getName() const override { return "Background Image"; } diff --git a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.cpp b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.cpp index 782ffc6216..40d6767ed0 100644 --- a/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.cpp +++ b/extras/Projucer/Source/LiveBuildEngine/jucer_CompileEngineClient.cpp @@ -429,14 +429,13 @@ private: { auto liveModules = project.getProjectRoot().getChildWithName (Ids::MODULES); - auto xml = parseXML (project.getFile()); - - if (xml == nullptr || ! xml->hasTagName (Ids::JUCERPROJECT.toString())) - return false; - - auto diskModules = ValueTree::fromXml (*xml).getChildWithName (Ids::MODULES); + if (auto xml = parseXMLIfTagMatches (project.getFile(), Ids::JUCERPROJECT.toString())) + { + auto diskModules = ValueTree::fromXml (*xml).getChildWithName (Ids::MODULES); + return liveModules.isEquivalentTo (diskModules); + } - return liveModules.isEquivalentTo (diskModules); + return false; } static bool areAnyModulesMissing (Project& project) diff --git a/extras/Projucer/Source/Project/jucer_Project.cpp b/extras/Projucer/Source/Project/jucer_Project.cpp index 26cb07a84c..6f575c28ad 100644 --- a/extras/Projucer/Source/Project/jucer_Project.cpp +++ b/extras/Projucer/Source/Project/jucer_Project.cpp @@ -575,9 +575,9 @@ static void forgetRecentFile (const File& file) //============================================================================== Result Project::loadDocument (const File& file) { - auto xml = parseXML (file); + auto xml = parseXMLIfTagMatches (file, Ids::JUCERPROJECT.toString()); - if (xml == nullptr || ! xml->hasTagName (Ids::JUCERPROJECT.toString())) + if (xml == nullptr) return Result::fail ("Not a valid Jucer project!"); auto newTree = ValueTree::fromXml (*xml); @@ -1239,7 +1239,7 @@ std::unique_ptr Project::Item::loadAsImageFile() const return nullptr; if (isValid()) - return std::unique_ptr (Drawable::createFromImageFile (getFile())); + return Drawable::createFromImageFile (getFile()); return {}; } diff --git a/extras/Projucer/Source/Settings/jucer_AppearanceSettings.cpp b/extras/Projucer/Source/Settings/jucer_AppearanceSettings.cpp index 33c68f90f4..67a877750a 100644 --- a/extras/Projucer/Source/Settings/jucer_AppearanceSettings.cpp +++ b/extras/Projucer/Source/Settings/jucer_AppearanceSettings.cpp @@ -153,13 +153,9 @@ StringArray AppearanceSettings::getColourNames() const { StringArray s; - for (int i = 0; i < settings.getNumChildren(); ++i) - { - const ValueTree c (settings.getChild(i)); - + for (auto c : settings) if (c.hasType ("COLOUR")) - s.add (c [Ids::name]); - } + s.add (c[Ids::name]); return s; } diff --git a/modules/juce_core/xml/juce_XmlDocument.h b/modules/juce_core/xml/juce_XmlDocument.h index fe5a4c4300..0b200f051f 100644 --- a/modules/juce_core/xml/juce_XmlDocument.h +++ b/modules/juce_core/xml/juce_XmlDocument.h @@ -32,19 +32,16 @@ namespace juce e.g. @code - XmlDocument myDocument (File ("myfile.xml")); - std::unique_ptr mainElement (myDocument.getDocumentElement()); - if (mainElement == nullptr) + if (auto mainElement = myDocument.getDocumentElement()) { - String error = myDocument.getLastParseError(); + ..use the element } else { - ..use the element + String error = myDocument.getLastParseError(); } - @endcode Or you can use the helper functions for much less verbose parsing.. diff --git a/modules/juce_gui_basics/misc/juce_JUCESplashScreen.cpp b/modules/juce_gui_basics/misc/juce_JUCESplashScreen.cpp index f2208fe7f1..1e6e1cd2a0 100644 --- a/modules/juce_gui_basics/misc/juce_JUCESplashScreen.cpp +++ b/modules/juce_gui_basics/misc/juce_JUCESplashScreen.cpp @@ -296,7 +296,7 @@ std::unique_ptr JUCESplashScreen::getSplashScreenLogo() auto svgXml = parseXML (svgData); jassert (svgXml != nullptr); - return std::unique_ptr (Drawable::createFromSVG (*svgXml)); + return Drawable::createFromSVG (*svgXml); } void JUCESplashScreen::paint (Graphics& g) diff --git a/modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp b/modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp index a1a7b2a44e..8785b9d818 100644 --- a/modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp +++ b/modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp @@ -436,32 +436,29 @@ String TableHeaderComponent::toString() const void TableHeaderComponent::restoreFromString (const String& storedVersion) { - if (auto storedXML = parseXML (storedVersion)) + if (auto storedXML = parseXMLIfTagMatches (storedVersion, "TABLELAYOUT")) { - if (storedXML->hasTagName ("TABLELAYOUT")) + int index = 0; + + forEachXmlChildElement (*storedXML, col) { - int index = 0; + auto tabId = col->getIntAttribute ("id"); - forEachXmlChildElement (*storedXML, col) + if (auto* ci = getInfoForId (tabId)) { - auto tabId = col->getIntAttribute ("id"); - - if (auto* ci = getInfoForId (tabId)) - { - columns.move (columns.indexOf (ci), index); - ci->width = col->getIntAttribute ("width"); - setColumnVisible (tabId, col->getBoolAttribute ("visible")); - } - - ++index; + columns.move (columns.indexOf (ci), index); + ci->width = col->getIntAttribute ("width"); + setColumnVisible (tabId, col->getBoolAttribute ("visible")); } - columnsResized = true; - sendColumnsChanged(); - - setSortColumnId (storedXML->getIntAttribute ("sortedCol"), - storedXML->getBoolAttribute ("sortForwards", true)); + ++index; } + + columnsResized = true; + sendColumnsChanged(); + + setSortColumnId (storedXML->getIntAttribute ("sortedCol"), + storedXML->getBoolAttribute ("sortForwards", true)); } } diff --git a/modules/juce_gui_basics/widgets/juce_TreeView.cpp b/modules/juce_gui_basics/widgets/juce_TreeView.cpp index 3568035d9f..8e42d8465f 100644 --- a/modules/juce_gui_basics/widgets/juce_TreeView.cpp +++ b/modules/juce_gui_basics/widgets/juce_TreeView.cpp @@ -610,13 +610,13 @@ static void addAllSelectedItemIds (TreeViewItem* item, XmlElement& parent) addAllSelectedItemIds (item->getSubItem(i), parent); } -std::unique_ptr TreeView::getOpennessState (const bool alsoIncludeScrollPosition) const +std::unique_ptr TreeView::getOpennessState (bool alsoIncludeScrollPosition) const { - XmlElement* e = nullptr; + std::unique_ptr e; if (rootItem != nullptr) { - e = rootItem->getOpennessState (false); + e.reset (rootItem->getOpennessState (false)); if (e != nullptr) { @@ -627,7 +627,7 @@ std::unique_ptr TreeView::getOpennessState (const bool alsoIncludeSc } } - return std::unique_ptr (e); + return e; } void TreeView::restoreOpennessState (const XmlElement& newState, const bool restoreStoredSelection) @@ -1863,7 +1863,7 @@ std::unique_ptr TreeViewItem::getOpennessState() const return std::unique_ptr (getOpennessState (true)); } -XmlElement* TreeViewItem::getOpennessState (const bool canReturnNull) const +XmlElement* TreeViewItem::getOpennessState (bool canReturnNull) const { auto name = getUniqueName();