FileChooser portal: set current_file only when file already exists
According to xdg-desktop-portal documentation, current_file should be set only when such a file already exists and xdg-desktop-portal-gnome enforces this by being totally broken when current_file is set to a non-existent path Change-Id: Ie3c80a7c6fd0cf23eea88ddec2149f5904c63394 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 7927b05b2fed0d6004435fcb48954f609de288ca) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
92e38ed3d4
commit
e6208eea19
@ -173,9 +173,12 @@ void QXdgDesktopPortalFileDialog::openPortal(Qt::WindowFlags windowFlags, Qt::Wi
|
||||
|
||||
if (!d->selectedFiles.isEmpty()) {
|
||||
// current_file for the file to be pre-selected, current_name for the file name to be pre-filled
|
||||
// current_file accepts absolute path while current_name accepts just file name
|
||||
options.insert("current_file"_L1, QFile::encodeName(d->selectedFiles.first()).append('\0'));
|
||||
options.insert("current_name"_L1, QFileInfo(d->selectedFiles.first()).fileName());
|
||||
// current_file accepts absolute path and requires the file to exist
|
||||
// while current_name accepts just file name
|
||||
QFileInfo selectedFileInfo(d->selectedFiles.first());
|
||||
if (selectedFileInfo.exists())
|
||||
options.insert("current_file"_L1, QFile::encodeName(d->selectedFiles.first()).append('\0'));
|
||||
options.insert("current_name"_L1, selectedFileInfo.fileName());
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user