14- (instancetype)initWithQIOSFileDialog:(QIOSFileDialog *)fileDialog
16 NSMutableArray <UTType *> *docTypes = [[[NSMutableArray alloc] init] autorelease];
18 QStringList nameFilters = fileDialog->options()->nameFilters();
19 if (!nameFilters.isEmpty() && (fileDialog->options()->fileMode() != QFileDialogOptions::Directory
20 || fileDialog->options()->fileMode() != QFileDialogOptions::DirectoryOnly))
23 for (
const QString &filter : nameFilters)
24 results.append(QPlatformFileDialogHelper::cleanFilterList(filter));
26 docTypes = [self computeAllowedFileTypes:results];
29 if (!docTypes.count) {
30 switch (fileDialog->options()->fileMode()) {
31 case QFileDialogOptions::AnyFile:
32 case QFileDialogOptions::ExistingFile:
33 case QFileDialogOptions::ExistingFiles:
34 [docTypes addObject:UTTypeContent];
35 [docTypes addObject:UTTypeItem];
36 [docTypes addObject:UTTypeData];
39 case QFileDialogOptions::Directory:
40 case QFileDialogOptions::DirectoryOnly:
41 [docTypes addObject:UTTypeFolder];
46 if (self = [super initForOpeningContentTypes:docTypes]) {
47 m_fileDialog = fileDialog;
48 self.modalPresentationStyle = UIModalPresentationFormSheet;
50 self.presentationController.delegate = self;
52 if (m_fileDialog->options()->fileMode() == QFileDialogOptions::ExistingFiles)
53 self.allowsMultipleSelection = YES;
55 self.directoryURL = m_fileDialog->options()->initialDirectory().toNSURL();