summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/file_picker_controller.cpp31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/core/file_picker_controller.cpp b/src/core/file_picker_controller.cpp
index 05aed8d2b..3e64afd20 100644
--- a/src/core/file_picker_controller.cpp
+++ b/src/core/file_picker_controller.cpp
@@ -63,24 +63,35 @@ FilePickerController::~FilePickerController() = default;
void FilePickerController::accepted(const QStringList &files)
{
- FilePickerController::filesSelectedInChooser(files);
+ QStringList stringList;
+
+ for (const QString &file : files) {
+ if (QDir(file).isAbsolute())
+ stringList.append(file);
+ else
+ qWarning("Ignore invalid item in FilePickerController::accepted(QStringList): %s", qPrintable(file));
+ }
+
+ FilePickerController::filesSelectedInChooser(stringList);
}
void FilePickerController::accepted(const QVariant &files)
{
QStringList stringList;
+ QList<QUrl> urlList = QUrl::fromStringList(files.toStringList());
- 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());
+ if (urlList.isEmpty()) {
+ FilePickerController::accepted(stringList);
} else {
- qWarning("An unhandled type '%s' was provided in FilePickerController::accepted(QVariant)", files.typeName());
+ for (const QUrl &url : qAsConst(urlList)) {
+ if (url.isValid() && url.scheme() == "file" && !url.path().isEmpty())
+ stringList.append(url.path());
+ else
+ qWarning("Ignore invalid item in FilePickerController::accepted(QVariant): %s", qPrintable(url.toString()));
+ }
+
+ FilePickerController::accepted(stringList);
}
-
- FilePickerController::filesSelectedInChooser(stringList);
}
void FilePickerController::rejected()