From cb18ce366a4e0e5fdf46b871eee62042d3e095b1 Mon Sep 17 00:00:00 2001 From: jules Date: Thu, 23 Feb 2012 21:31:52 +0000 Subject: [PATCH] Introjucer: disabled "launch project" buttons when no suitable exporter exists. --- .../Project/jucer_ProjectContentComponent.cpp | 15 +++++++++++++-- .../Project/jucer_ProjectContentComponent.h | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp index 66486c0f2f..bdb302346b 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp +++ b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp @@ -197,6 +197,17 @@ void ProjectContentComponent::updateMainWindowTitle() mw->updateTitle (currentDocument != nullptr ? currentDocument->getName() : String::empty); } +bool ProjectContentComponent::canProjectBeLaunched() const +{ + if (project != nullptr) + { + ScopedPointer launcher (ProjectExporter::createPlatformDefaultExporter (*project)); + return launcher != nullptr; + } + + return false; +} + ApplicationCommandTarget* ProjectContentComponent::getNextCommandTarget() { return findFirstTargetParentComponent(); @@ -252,7 +263,7 @@ void ProjectContentComponent::getCommandInfo (const CommandID commandID, Applica #endif "Launches the project in an external IDE", CommandCategories::general, 0); - result.setActive (project != nullptr); + result.setActive (canProjectBeLaunched()); break; case CommandIDs::saveAndOpenInIDE: @@ -265,7 +276,7 @@ void ProjectContentComponent::getCommandInfo (const CommandID commandID, Applica #endif "Saves the project and launches it in an external IDE", CommandCategories::general, 0); - result.setActive (project != nullptr); + result.setActive (canProjectBeLaunched()); result.defaultKeypresses.add (KeyPress ('l', ModifierKeys::commandModifier, 0)); break; diff --git a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h index 301851a8a1..adee257c2a 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h @@ -75,6 +75,7 @@ private: void updateMainWindowTitle(); bool reinvokeCommandAfterClosingPropertyEditors (const InvocationInfo&); + bool canProjectBeLaunched() const; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjectContentComponent); };