From 0312cb3ffe3d29f7c74c142515ed4ffbc86c03ff Mon Sep 17 00:00:00 2001 From: Rafael Roquetto Date: Thu, 28 Nov 2013 11:51:18 -0200 Subject: BlackBerry: Fix QFileDialog show()/hide() QFileDialog::show() no longer worked after the dialog had already been shown and hidden before. Task-number: QTBUG-34983 Change-Id: I7300374b74805308e0966db7b3545e5fd8470465 Reviewed-by: Thomas McGuire --- src/plugins/platforms/qnx/qqnxfiledialoghelper.h | 3 +++ src/plugins/platforms/qnx/qqnxfiledialoghelper_bb10.cpp | 14 +++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/plugins/platforms/qnx/qqnxfiledialoghelper.h b/src/plugins/platforms/qnx/qqnxfiledialoghelper.h index e7c68f6ff5..c2033c16d3 100644 --- a/src/plugins/platforms/qnx/qqnxfiledialoghelper.h +++ b/src/plugins/platforms/qnx/qqnxfiledialoghelper.h @@ -87,6 +87,9 @@ public: Q_SIGNALS: void dialogClosed(); +private Q_SLOTS: + void emitSignals(); + private: void setNameFilter(const QString &filter); void setNameFilters(const QStringList &filters); diff --git a/src/plugins/platforms/qnx/qqnxfiledialoghelper_bb10.cpp b/src/plugins/platforms/qnx/qqnxfiledialoghelper_bb10.cpp index dc841eb1a9..e3b1e2dc4d 100644 --- a/src/plugins/platforms/qnx/qqnxfiledialoghelper_bb10.cpp +++ b/src/plugins/platforms/qnx/qqnxfiledialoghelper_bb10.cpp @@ -68,6 +68,7 @@ QQnxFileDialogHelper::QQnxFileDialogHelper(const QQnxIntegration *integration) m_selectedFilter(), m_result(QPlatformDialogHelper::Rejected) { + connect(m_dialog, &QQnxFilePicker::closed, this, &QQnxFileDialogHelper::emitSignals); } QQnxFileDialogHelper::~QQnxFileDialogHelper() @@ -85,11 +86,6 @@ void QQnxFileDialogHelper::exec() QEventLoop loop; connect(m_dialog, SIGNAL(closed()), &loop, SLOT(quit())); loop.exec(); - - if (m_dialog->selectedFiles().isEmpty()) - Q_EMIT reject(); - else - Q_EMIT accept(); } bool QQnxFileDialogHelper::show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent) @@ -197,6 +193,14 @@ QString QQnxFileDialogHelper::selectedNameFilter() const return m_selectedFilter; } +void QQnxFileDialogHelper::emitSignals() +{ + if (m_dialog->selectedFiles().isEmpty()) + Q_EMIT reject(); + else + Q_EMIT accept(); +} + void QQnxFileDialogHelper::setNameFilter(const QString &filter) { qFileDialogHelperDebug() << Q_FUNC_INFO << "filter =" << filter; -- cgit v1.2.3