diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm index 22fbf80bfe..7992461032 100644 --- a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm +++ b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm @@ -493,14 +493,18 @@ static QString strippedText(QString s) [mPopUpButton setTarget:self]; [mPopUpButton setAction:@selector(filterChanged:)]; - QStringList *filters = mNameFilterDropDownList; - if (filters->size() > 0){ + if (mNameFilterDropDownList->size() > 0) { + int filterToUse = -1; for (int i=0; i<mNameFilterDropDownList->size(); ++i) { - QString filter = hideDetails ? [self removeExtensions:filters->at(i)] : filters->at(i); + QString currentFilter = mNameFilterDropDownList->at(i); + if (selectedFilter == currentFilter || + (filterToUse == -1 && currentFilter.startsWith(selectedFilter))) + filterToUse = i; + QString filter = hideDetails ? [self removeExtensions:currentFilter] : currentFilter; [mPopUpButton addItemWithTitle:QT_PREPEND_NAMESPACE(QCFString::toNSString)(filter)]; - if (filters->at(i).startsWith(selectedFilter)) - [mPopUpButton selectItemAtIndex:i]; } + if (filterToUse != -1) + [mPopUpButton selectItemAtIndex:filterToUse]; } } |