The following are wrapped in a #if JUCE_MODAL_LOOPS_PERMITTED in the .cpp but not the .h

bool FileChooser::browseForFileToOpen (FilePreviewComponent* previewComp)
bool FileChooser::browseForMultipleFilesToOpen (FilePreviewComponent* previewComp)
bool FileChooser::browseForMultipleFilesOrDirectories (FilePreviewComponent* previewComp)
bool FileChooser::browseForFileToSave (const bool warnAboutOverwrite)
bool FileChooser::browseForDirectory()
bool FileChooser::showDialog (const int flags, FilePreviewComponent* const previewComp)
1 Like

Because the idea is that you implement these yourself when modal loops aren’t permitted in another cpp… I was also shocked when I heard about it, but now I accepted and I built them myself

No, that’s certainly not a good idea! If you are on a platform where JUCE_MODAL_LOOPS_PERMITTED=0 (or just generally as it’s good practice) you should be using FileChooser::launchAsync().

The missing guard looks like it was just an unintentional omission, we’ve added it on develop now.

Thanks for the information, I re-implemented (without loops) them because I read somewhere here in the forum that was the way. I will see how the lauchAsync work!