From 0b79bcec690d658c1a6d273ae7c26113dc98e459 Mon Sep 17 00:00:00 2001 From: ed Date: Thu, 15 Jul 2021 09:30:48 +0100 Subject: [PATCH] Projucer: Check project item still exists when initialising exporter icon settings and reset to default if missing --- .../ProjectSaving/jucer_ProjectExporter.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp index 0e6809f711..a1e34ba855 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp @@ -333,12 +333,21 @@ void ProjectExporter::createIconProperties (PropertyListBuilder& props) choices.add (""); ids.add (var()); - for (int i = 0; i < images.size(); ++i) + for (const auto* imageItem : images) { - choices.add (images.getUnchecked(i)->getName()); - ids.add (images.getUnchecked(i)->getID()); + choices.add (imageItem->getName()); + ids.add (imageItem->getID()); } + const auto resetToDefaultIfFileMissing = [&ids] (ValueWithDefault& v) + { + if (! v.isUsingDefault() && ! ids.contains (v.get())) + v.resetToDefault(); + }; + + resetToDefaultIfFileMissing (smallIconValue); + resetToDefaultIfFileMissing (bigIconValue); + props.add (new ChoicePropertyComponent (smallIconValue, "Icon (Small)", choices, ids), "Sets an icon to use for the executable.");