diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-08-13 22:39:49 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-08-14 09:26:19 +0000 |
commit | 8dd5c0fd0eb3b25a700dd506af77e049e631d79d (patch) | |
tree | 490483159f5a950eb723420e83fdf6183a0035af /src/imports/platform | |
parent | 51192e8ef5d9ab385de390b38409b73a56f55f84 (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.qmltypes | 1 | ||||
-rw-r--r-- | src/imports/platform/qquickplatformfiledialog.cpp | 23 | ||||
-rw-r--r-- | src/imports/platform/qquickplatformfiledialog_p.h | 5 |
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(); |