summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/dialogs/qfiledialog_mac.mm14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/gui/dialogs/qfiledialog_mac.mm b/src/gui/dialogs/qfiledialog_mac.mm
index 982d5e6..4c1c74b 100644
--- a/src/gui/dialogs/qfiledialog_mac.mm
+++ b/src/gui/dialogs/qfiledialog_mac.mm
@@ -507,14 +507,18 @@ QT_USE_NAMESPACE
[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(qt_mac_QStringToNSString)(filter)];
- if (filters->at(i).startsWith(selectedFilter))
- [mPopUpButton selectItemAtIndex:i];
}
+ if (filterToUse != -1)
+ [mPopUpButton selectItemAtIndex:filterToUse];
}
}