summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/cocoa')
-rw-r--r--src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm14
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];
}
}