summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Jones <jones@synergy.com>2022-02-15 18:26:21 -0500
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-03-08 15:41:36 +0000
commitff7592f3753992c40fb7b7b13062b6aa6f7f0b67 (patch)
tree9fd8bd40fddc4120bb8207220302f325e092f6d4
parent4d09496284f3e18a9f2e34d992ec5b4dd0229c39 (diff)
downloadqtbase-ff7592f3753992c40fb7b7b13062b6aa6f7f0b67.tar.gz
QCocoaFileDialogHelper: Always enable symlinks and aliases to directories
We always enable directories, so that the user can navigate into them, so we should do the same for symlinks and aliases to directories. This is the same behavior the native dialog has when not implementing shouldEnableURL and relying purely on allowedFileTypes. Fixes: QTBUG-28379 Change-Id: I7ae4eb8120aa87cb685f3561d5e1c7257b0c9349 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 87725ee75981ec9ab25456c41acc74681c85ae2e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
index 49fd28828d..f241133958 100644
--- a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
+++ b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
@@ -292,7 +292,12 @@ static QString strippedText(QString s)
}
}
- QString qtFileName = QFileInfo(QString::fromNSString(filename)).fileName();
+ // Treat symbolic links and aliases to directories like directories
+ QFileInfo fileInfo(QString::fromNSString(filename));
+ if (fileInfo.isSymLink() && QFileInfo(fileInfo.symLinkTarget()).isDir())
+ return YES;
+
+ QString qtFileName = fileInfo.fileName();
// No filter means accept everything
bool nameMatches = mSelectedNameFilter->isEmpty();
// Check if the current file name filter accepts the file: