From 7dafc1e836fa7f7f1813f9c973c3083909bfd2e3 Mon Sep 17 00:00:00 2001 From: jules Date: Thu, 7 Feb 2013 09:52:19 +0000 Subject: [PATCH] Fix for sandboxed OSX filechoosers. --- .../juce_gui_basics/native/juce_mac_FileChooser.mm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/modules/juce_gui_basics/native/juce_mac_FileChooser.mm b/modules/juce_gui_basics/native/juce_mac_FileChooser.mm index 1483291260..68daed05df 100644 --- a/modules/juce_gui_basics/native/juce_mac_FileChooser.mm +++ b/modules/juce_gui_basics/native/juce_mac_FileChooser.mm @@ -148,6 +148,16 @@ private: SilentDummyModalComp dummyModalComponent; }; +static NSMutableArray* createAllowedTypesArray (const StringArray& filters) +{ + NSMutableArray* filterArray = [[[NSMutableArray alloc] init] autorelease]; + + for (int i = 0; i < filters.size(); ++i) + [filterArray addObject: juceStringToNS (filters[i].replace ("*.", ""))]; + + return filterArray; +} + //============================================================================== void FileChooser::showPlatformDialog (Array& results, const String& title, @@ -186,6 +196,9 @@ void FileChooser::showPlatformDialog (Array& results, [panel setTitle: juceStringToNS (title)]; + if (filters->size() != 0) + [panel setAllowedFileTypes: createAllowedTypesArray (*filters)]; + if (! isSaveDialogue) { NSOpenPanel* openPanel = (NSOpenPanel*) panel;