diff options
author | Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> | 2015-03-03 14:06:39 +0100 |
---|---|---|
committer | Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> | 2015-03-18 09:20:40 +0000 |
commit | bb95b8e3eb464d26ab3e78b49c8276277c929470 (patch) | |
tree | ad9f5343e35089a2ad7fdb7e4f693a41958ccbb7 | |
parent | cbd066616b0b24fb8003323b467a3269b7edb602 (diff) | |
download | qtquickcontrols-bb95b8e3eb464d26ab3e78b49c8276277c929470.tar.gz |
Dialogs: override selectedUrls in QQPlatformfiledialog
Rather than checking if a dialog helper is in use in QAbstractFileDialog, we
override selectedUrls in QQuickPlatformFileDialog. Otherwise the version in
QQuickFileDialog will be called first, which tries to return selectedUrls from
the QML version (which might not be in use).
Change-Id: If61647078ed2dd535384dcea67767bfc729edfe0
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
-rw-r--r-- | src/dialogs/qquickabstractfiledialog.cpp | 7 | ||||
-rw-r--r-- | src/dialogs/qquickabstractfiledialog_p.h | 2 | ||||
-rw-r--r-- | src/dialogs/qquickplatformfiledialog.cpp | 7 | ||||
-rw-r--r-- | src/dialogs/qquickplatformfiledialog_p.h | 1 | ||||
-rw-r--r-- | src/widgets/qquickqfiledialog.cpp | 7 | ||||
-rw-r--r-- | src/widgets/qquickqfiledialog_p.h | 2 |
6 files changed, 18 insertions, 8 deletions
diff --git a/src/dialogs/qquickabstractfiledialog.cpp b/src/dialogs/qquickabstractfiledialog.cpp index 9e1e605e..233a2db7 100644 --- a/src/dialogs/qquickabstractfiledialog.cpp +++ b/src/dialogs/qquickabstractfiledialog.cpp @@ -194,13 +194,6 @@ QUrl QQuickAbstractFileDialog::fileUrl() const return (urls.count() == 1) ? urls[0] : QUrl(); } -QList<QUrl> QQuickAbstractFileDialog::fileUrls() const -{ - if (m_dlgHelper) - return m_dlgHelper->selectedFiles(); - return QList<QUrl>(); -} - void QQuickAbstractFileDialog::updateModes() { // The 4 possible modes are AnyFile, ExistingFile, Directory, ExistingFiles diff --git a/src/dialogs/qquickabstractfiledialog_p.h b/src/dialogs/qquickabstractfiledialog_p.h index 054afbfe..c7320fd1 100644 --- a/src/dialogs/qquickabstractfiledialog_p.h +++ b/src/dialogs/qquickabstractfiledialog_p.h @@ -84,7 +84,7 @@ public: QStringList selectedNameFilterExtensions() const; int selectedNameFilterIndex() const; QUrl fileUrl() const; - virtual QList<QUrl> fileUrls() const; + virtual QList<QUrl> fileUrls() const = 0; bool sidebarVisible() const { return m_sidebarVisible; } public Q_SLOTS: diff --git a/src/dialogs/qquickplatformfiledialog.cpp b/src/dialogs/qquickplatformfiledialog.cpp index dcdeeadd..aacccc72 100644 --- a/src/dialogs/qquickplatformfiledialog.cpp +++ b/src/dialogs/qquickplatformfiledialog.cpp @@ -175,6 +175,13 @@ QQuickPlatformFileDialog::~QQuickPlatformFileDialog() delete m_dlgHelper; } +QList<QUrl> QQuickPlatformFileDialog::fileUrls() const +{ + if (m_dialogHelperInUse) + return m_dlgHelper->selectedFiles(); + return QQuickFileDialog::fileUrls(); +} + void QQuickPlatformFileDialog::setModality(Qt::WindowModality m) { #ifdef Q_OS_WIN diff --git a/src/dialogs/qquickplatformfiledialog_p.h b/src/dialogs/qquickplatformfiledialog_p.h index 0053a248..5a5cc75f 100644 --- a/src/dialogs/qquickplatformfiledialog_p.h +++ b/src/dialogs/qquickplatformfiledialog_p.h @@ -60,6 +60,7 @@ public: QQuickPlatformFileDialog(QObject *parent = 0); virtual ~QQuickPlatformFileDialog(); virtual void setModality(Qt::WindowModality m) Q_DECL_OVERRIDE; + virtual QList<QUrl> fileUrls() const Q_DECL_OVERRIDE; protected: QPlatformFileDialogHelper *helper(); diff --git a/src/widgets/qquickqfiledialog.cpp b/src/widgets/qquickqfiledialog.cpp index c922e78f..90d1ef9e 100644 --- a/src/widgets/qquickqfiledialog.cpp +++ b/src/widgets/qquickqfiledialog.cpp @@ -136,6 +136,13 @@ QPlatformFileDialogHelper *QQuickQFileDialog::helper() return m_dlgHelper; } +QList<QUrl> QQuickQFileDialog::fileUrls() const +{ + if (m_dialogHelperInUse) + return m_dlgHelper->selectedFiles(); + return QList<QUrl>(); +} + QFileDialogHelper::QFileDialogHelper() : QPlatformFileDialogHelper() { diff --git a/src/widgets/qquickqfiledialog_p.h b/src/widgets/qquickqfiledialog_p.h index d6214285..2747749e 100644 --- a/src/widgets/qquickqfiledialog_p.h +++ b/src/widgets/qquickqfiledialog_p.h @@ -61,6 +61,8 @@ public: QQuickQFileDialog(QObject *parent = 0); virtual ~QQuickQFileDialog(); + virtual QList<QUrl> fileUrls() const Q_DECL_OVERRIDE; + protected: QPlatformFileDialogHelper *helper(); |