diff options
author | Szabolcs David <davidsz@inf.u-szeged.hu> | 2020-03-23 18:15:55 +0100 |
---|---|---|
committer | Szabolcs David <davidsz@inf.u-szeged.hu> | 2020-03-24 11:36:49 +0100 |
commit | 06523f14700ccb898625254cb0c939e807b14dbe (patch) | |
tree | 24e3c1c46793875b5a105c4dd2793df16a580bec /src/core/file_picker_controller.cpp | |
parent | ed4a363f17158b8e6553d12ba55e43325ba43449 (diff) |
Fix default file dialogs in QML
QVariant::toStringList() never worked in that case where the variant
stores QList<QUrl>. Bring back the old logic from 5.12 and unwrap URLs
"manually".
Task-number: QTWB-46
Change-Id: I8d690c092e1a9bd459ab55cd4d5934d633e907e1
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Tamas Zakor <ztamas@inf.u-szeged.hu>
Diffstat (limited to 'src/core/file_picker_controller.cpp')
-rw-r--r-- | src/core/file_picker_controller.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/core/file_picker_controller.cpp b/src/core/file_picker_controller.cpp index 62e02e126..3c81a977c 100644 --- a/src/core/file_picker_controller.cpp +++ b/src/core/file_picker_controller.cpp @@ -100,10 +100,19 @@ void FilePickerController::accepted(const QStringList &files) void FilePickerController::accepted(const QVariant &files) { - if (!files.canConvert(QVariant::StringList)) + QStringList stringList; + + if (files.canConvert(QVariant::StringList)) { + stringList = files.toStringList(); + } else if (files.canConvert<QList<QUrl> >()) { + const QList<QUrl> urls = files.value<QList<QUrl>>(); + for (const QUrl &url : urls) + stringList.append(url.toLocalFile()); + } else { qWarning("An unhandled type '%s' was provided in FilePickerController::accepted(QVariant)", files.typeName()); + } - accepted(files.toStringList()); + accepted(stringList); } void FilePickerController::rejected() |