aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/platform
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-08-13 22:39:49 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-08-14 09:26:19 +0000
commit8dd5c0fd0eb3b25a700dd506af77e049e631d79d (patch)
tree490483159f5a950eb723420e83fdf6183a0035af /src/imports/platform
parent51192e8ef5d9ab385de390b38409b73a56f55f84 (diff)
FileDialog: add missing folder-property
Change-Id: I60d60072f1cc6a876228e647b1d6db943e303ea2 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src/imports/platform')
-rw-r--r--src/imports/platform/plugins.qmltypes1
-rw-r--r--src/imports/platform/qquickplatformfiledialog.cpp23
-rw-r--r--src/imports/platform/qquickplatformfiledialog_p.h5
3 files changed, 29 insertions, 0 deletions
diff --git a/src/imports/platform/plugins.qmltypes b/src/imports/platform/plugins.qmltypes
index dc9e1562..1188697d 100644
--- a/src/imports/platform/plugins.qmltypes
+++ b/src/imports/platform/plugins.qmltypes
@@ -115,6 +115,7 @@ Module {
Property { name: "files"; type: "QList<QUrl>" }
Property { name: "currentFile"; type: "QUrl" }
Property { name: "currentFiles"; type: "QList<QUrl>" }
+ Property { name: "folder"; type: "QUrl" }
Property { name: "options"; type: "QFileDialogOptions::FileDialogOptions" }
Property { name: "nameFilters"; type: "QStringList" }
Property { name: "defaultSuffix"; type: "string" }
diff --git a/src/imports/platform/qquickplatformfiledialog.cpp b/src/imports/platform/qquickplatformfiledialog.cpp
index 0a617a8c..99667262 100644
--- a/src/imports/platform/qquickplatformfiledialog.cpp
+++ b/src/imports/platform/qquickplatformfiledialog.cpp
@@ -255,6 +255,28 @@ void QQuickPlatformFileDialog::setCurrentFiles(const QList<QUrl> &files)
}
/*!
+ \qmlproperty url Qt.labs.platform::FileDialog::folder
+
+ This property holds the folder where files are selected.
+ For selecting a folder, use FolderDialog instead.
+
+ \sa FolderDialog
+*/
+QUrl QQuickPlatformFileDialog::folder() const
+{
+ if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle()))
+ return fileDialog->directory();
+ return QUrl();
+}
+
+void QQuickPlatformFileDialog::setFolder(const QUrl &folder)
+{
+ if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle()))
+ fileDialog->setDirectory(folder);
+ m_options->setInitialDirectory(folder);
+}
+
+/*!
\qmlproperty flags Qt.labs.platform::FileDialog::options
This property holds the various options that affect the look and feel of the dialog.
@@ -426,6 +448,7 @@ QPlatformDialogHelper *QQuickPlatformFileDialog::createHelper()
// TODO: emit currentFileChanged only when the first entry in currentFiles changes
connect(fileDialog, &QPlatformFileDialogHelper::currentChanged, this, &QQuickPlatformFileDialog::currentFileChanged);
connect(fileDialog, &QPlatformFileDialogHelper::currentChanged, this, &QQuickPlatformFileDialog::currentFilesChanged);
+ connect(fileDialog, &QPlatformFileDialogHelper::directoryEntered, this, &QQuickPlatformFileDialog::folderChanged);
fileDialog->setOptions(m_options);
}
return dialog;
diff --git a/src/imports/platform/qquickplatformfiledialog_p.h b/src/imports/platform/qquickplatformfiledialog_p.h
index 76acd105..2d3b82be 100644
--- a/src/imports/platform/qquickplatformfiledialog_p.h
+++ b/src/imports/platform/qquickplatformfiledialog_p.h
@@ -62,6 +62,7 @@ class QQuickPlatformFileDialog : public QQuickPlatformDialog
Q_PROPERTY(QList<QUrl> files READ files WRITE setFiles NOTIFY filesChanged FINAL)
Q_PROPERTY(QUrl currentFile READ currentFile WRITE setCurrentFile NOTIFY currentFileChanged FINAL)
Q_PROPERTY(QList<QUrl> currentFiles READ currentFiles WRITE setCurrentFiles NOTIFY currentFilesChanged FINAL)
+ Q_PROPERTY(QUrl folder READ folder WRITE setFolder NOTIFY folderChanged FINAL)
Q_PROPERTY(QFileDialogOptions::FileDialogOptions options READ options WRITE setOptions RESET resetOptions NOTIFY optionsChanged FINAL)
Q_PROPERTY(QStringList nameFilters READ nameFilters WRITE setNameFilters RESET resetNameFilters NOTIFY nameFiltersChanged FINAL)
Q_PROPERTY(QString defaultSuffix READ defaultSuffix WRITE setDefaultSuffix RESET resetDefaultSuffix NOTIFY defaultSuffixChanged FINAL)
@@ -94,6 +95,9 @@ public:
QList<QUrl> currentFiles() const;
void setCurrentFiles(const QList<QUrl> &files);
+ QUrl folder() const;
+ void setFolder(const QUrl &folder);
+
QFileDialogOptions::FileDialogOptions options() const;
void setOptions(QFileDialogOptions::FileDialogOptions options);
void resetOptions();
@@ -120,6 +124,7 @@ Q_SIGNALS:
void filesChanged();
void currentFileChanged();
void currentFilesChanged();
+ void folderChanged();
void optionsChanged();
void nameFiltersChanged();
void defaultSuffixChanged();