diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-08-14 11:58:44 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-08-14 10:09:17 +0000 |
commit | 6f5477369d252c0b4a10995830d16e83098c7c8b (patch) | |
tree | 0a5a046182f55bae561883e52847e8a094e15182 /src/imports/platform | |
parent | 8dd5c0fd0eb3b25a700dd506af77e049e631d79d (diff) |
FileDialog: add missing selectedNameFilter-property
Change-Id: If31d657e29a9cc3049af5cd3cf39d68979ff2db0
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 | 24 | ||||
-rw-r--r-- | src/imports/platform/qquickplatformfiledialog_p.h | 5 |
3 files changed, 30 insertions, 0 deletions
diff --git a/src/imports/platform/plugins.qmltypes b/src/imports/platform/plugins.qmltypes index 1188697d..a6b80bda 100644 --- a/src/imports/platform/plugins.qmltypes +++ b/src/imports/platform/plugins.qmltypes @@ -118,6 +118,7 @@ Module { Property { name: "folder"; type: "QUrl" } Property { name: "options"; type: "QFileDialogOptions::FileDialogOptions" } Property { name: "nameFilters"; type: "QStringList" } + Property { name: "selectedNameFilter"; type: "string" } Property { name: "defaultSuffix"; type: "string" } Property { name: "acceptLabel"; type: "string" } Property { name: "rejectLabel"; type: "string" } diff --git a/src/imports/platform/qquickplatformfiledialog.cpp b/src/imports/platform/qquickplatformfiledialog.cpp index 99667262..466b33ed 100644 --- a/src/imports/platform/qquickplatformfiledialog.cpp +++ b/src/imports/platform/qquickplatformfiledialog.cpp @@ -324,6 +324,8 @@ void QQuickPlatformFileDialog::resetOptions() example, \c Makefile). In a native Windows file dialog, \b{*.*} will match such files, while in other types of file dialogs it may not. So it is better to use \b{*} if you mean to select any file. + + \sa selectedNameFilter */ QStringList QQuickPlatformFileDialog::nameFilters() const { @@ -345,6 +347,27 @@ void QQuickPlatformFileDialog::resetNameFilters() } /*! + \qmlproperty string Qt.labs.platform::FileDialog::selectedNameFilter + + This property holds the currently selected name filter. + + \sa nameFilters +*/ +QString QQuickPlatformFileDialog::selectedNameFilter() const +{ + if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle())) + return fileDialog->selectedNameFilter(); + return m_options->initiallySelectedNameFilter(); +} + +void QQuickPlatformFileDialog::setSelectedNameFilter(const QString &filter) +{ + if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle())) + fileDialog->selectNameFilter(filter); + m_options->setInitiallySelectedNameFilter(filter); +} + +/*! \qmlproperty string Qt.labs.platform::FileDialog::defaultSuffix This property holds a suffix that is added to selected files that have @@ -449,6 +472,7 @@ QPlatformDialogHelper *QQuickPlatformFileDialog::createHelper() connect(fileDialog, &QPlatformFileDialogHelper::currentChanged, this, &QQuickPlatformFileDialog::currentFileChanged); connect(fileDialog, &QPlatformFileDialogHelper::currentChanged, this, &QQuickPlatformFileDialog::currentFilesChanged); connect(fileDialog, &QPlatformFileDialogHelper::directoryEntered, this, &QQuickPlatformFileDialog::folderChanged); + connect(fileDialog, &QPlatformFileDialogHelper::filterSelected, this, &QQuickPlatformFileDialog::selectedNameFilterChanged); fileDialog->setOptions(m_options); } return dialog; diff --git a/src/imports/platform/qquickplatformfiledialog_p.h b/src/imports/platform/qquickplatformfiledialog_p.h index 2d3b82be..5d28c81d 100644 --- a/src/imports/platform/qquickplatformfiledialog_p.h +++ b/src/imports/platform/qquickplatformfiledialog_p.h @@ -65,6 +65,7 @@ class QQuickPlatformFileDialog : public QQuickPlatformDialog 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 selectedNameFilter READ selectedNameFilter WRITE setSelectedNameFilter NOTIFY selectedNameFilterChanged FINAL) Q_PROPERTY(QString defaultSuffix READ defaultSuffix WRITE setDefaultSuffix RESET resetDefaultSuffix NOTIFY defaultSuffixChanged FINAL) Q_PROPERTY(QString acceptLabel READ acceptLabel WRITE setAcceptLabel RESET resetAcceptLabel NOTIFY acceptLabelChanged FINAL) Q_PROPERTY(QString rejectLabel READ rejectLabel WRITE setRejectLabel RESET resetRejectLabel NOTIFY rejectLabelChanged FINAL) @@ -106,6 +107,9 @@ public: void setNameFilters(const QStringList &filters); void resetNameFilters(); + QString selectedNameFilter() const; + void setSelectedNameFilter(const QString &filter); + QString defaultSuffix() const; void setDefaultSuffix(const QString &suffix); void resetDefaultSuffix(); @@ -127,6 +131,7 @@ Q_SIGNALS: void folderChanged(); void optionsChanged(); void nameFiltersChanged(); + void selectedNameFilterChanged(); void defaultSuffixChanged(); void acceptLabelChanged(); void rejectLabelChanged(); |