summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@theqtcompany.com>2015-03-03 14:06:39 +0100
committerRichard Moe Gustavsen <richard.gustavsen@theqtcompany.com>2015-03-18 09:20:40 +0000
commitbb95b8e3eb464d26ab3e78b49c8276277c929470 (patch)
treead9f5343e35089a2ad7fdb7e4f693a41958ccbb7 /src
parentcbd066616b0b24fb8003323b467a3269b7edb602 (diff)
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>
Diffstat (limited to 'src')
-rw-r--r--src/dialogs/qquickabstractfiledialog.cpp7
-rw-r--r--src/dialogs/qquickabstractfiledialog_p.h2
-rw-r--r--src/dialogs/qquickplatformfiledialog.cpp7
-rw-r--r--src/dialogs/qquickplatformfiledialog_p.h1
-rw-r--r--src/widgets/qquickqfiledialog.cpp7
-rw-r--r--src/widgets/qquickqfiledialog_p.h2
6 files changed, 18 insertions, 8 deletions
diff --git a/src/dialogs/qquickabstractfiledialog.cpp b/src/dialogs/qquickabstractfiledialog.cpp
index 9e1e605eb..233a2db77 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 054afbfe3..c7320fd1b 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 dcdeeadd1..aacccc727 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 0053a2487..5a5cc75fa 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 c922e78fd..90d1ef9e0 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 d6214285e..2747749e9 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();