From 53226c066047ca999d4dec9211aef2542053c115 Mon Sep 17 00:00:00 2001 From: jules Date: Mon, 4 Aug 2014 10:33:48 +0100 Subject: [PATCH] Introjucer: fixed a problem with the open-project menu if multiple export targets have the same name --- .../Project/jucer_ProjectContentComponent.cpp | 20 +++++++++++-------- .../Project/jucer_ProjectContentComponent.h | 2 +- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp index bf97ff9352..5b213bba8e 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp +++ b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp @@ -571,25 +571,29 @@ StringArray ProjectContentComponent::getExportersWhichCanLaunch() const { StringArray s; - for (Project::ExporterIterator exporter (*project); exporter.next();) - if (exporter->canLaunchProject()) - s.add (exporter->getName()); + if (project != nullptr) + for (Project::ExporterIterator exporter (*project); exporter.next();) + if (exporter->canLaunchProject()) + s.add (exporter->getName()); return s; } -void ProjectContentComponent::openInIDE (const String& exporterName) +void ProjectContentComponent::openInIDE (int exporterIndex) { + int i = 0; + if (project != nullptr) for (Project::ExporterIterator exporter (*project); exporter.next();) - if (exporter->getName() == exporterName && exporter->launchProject()) - break; + if (exporter->canLaunchProject()) + if (i++ == exporterIndex && exporter->launchProject()) + break; } static void openIDEMenuCallback (int result, ProjectContentComponent* comp) { if (comp != nullptr && result > 0) - comp->openInIDE (comp->getExportersWhichCanLaunch() [result - 1]); + comp->openInIDE (result - 1); } void ProjectContentComponent::openInIDE() @@ -610,7 +614,7 @@ void ProjectContentComponent::openInIDE() } else { - openInIDE (possibleExporters[0]); + openInIDE (0); } } } diff --git a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h index eee432ba54..92b206bcb6 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h @@ -71,7 +71,7 @@ public: bool saveProject(); void closeProject(); void openInIDE(); - void openInIDE (const String& exporterName); + void openInIDE (int exporterIndex); void showFilesTab(); void showConfigTab();