diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-08-16 18:18:54 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-08-16 18:25:04 +0000 |
commit | a69f95259fae492c4b95813da8e75433b2883ac1 (patch) | |
tree | 4ad0516e1c662e6c2af0a324314541eb2ce718d4 /src/imports/platform/widgets/qwidgetplatformfiledialog.cpp | |
parent | 14ee7d5b940cca276bfdc0492c0ae52b69ded62d (diff) |
Platform: widget-based fallbacks no longer need to check availability
It is done in qwidgetplatform_p.h createWidget() outside QT_WIDGETS_LIB
guards so you get the important warnings even in -no-widgets builds.
Now that the widget platform instances are created only when really
available, they can unconditionally instantiate the respective widget,
which simplifies the code quite a bit.
Change-Id: I7430f8e803050e43edb3af3a139b0508445f6a37
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src/imports/platform/widgets/qwidgetplatformfiledialog.cpp')
-rw-r--r-- | src/imports/platform/widgets/qwidgetplatformfiledialog.cpp | 66 |
1 files changed, 27 insertions, 39 deletions
diff --git a/src/imports/platform/widgets/qwidgetplatformfiledialog.cpp b/src/imports/platform/widgets/qwidgetplatformfiledialog.cpp index dd25708d..772443a5 100644 --- a/src/imports/platform/widgets/qwidgetplatformfiledialog.cpp +++ b/src/imports/platform/widgets/qwidgetplatformfiledialog.cpp @@ -36,38 +36,34 @@ #include "qwidgetplatformfiledialog_p.h" #include "qwidgetplatformdialog_p.h" -#include "qwidgetplatform_p.h" #include <QtWidgets/qfiledialog.h> QT_BEGIN_NAMESPACE QWidgetPlatformFileDialog::QWidgetPlatformFileDialog(QObject *parent) + : m_dialog(new QFileDialog) { setParent(parent); - static bool available = QWidgetPlatform::isAvailable("file dialog"); - if (available) { - m_dialog.reset(new QFileDialog); - connect(m_dialog.data(), &QDialog::accepted, this, &QPlatformDialogHelper::accept); - connect(m_dialog.data(), &QDialog::rejected, this, &QPlatformDialogHelper::reject); - - connect(m_dialog.data(), &QFileDialog::fileSelected, [this](const QString &file) { - emit fileSelected(QUrl::fromLocalFile(file)); - }); - connect(m_dialog.data(), &QFileDialog::filesSelected, [this](const QList<QString> &files) { - QList<QUrl> urls; - urls.reserve(files.count()); - for (const QString &file : files) - urls += QUrl::fromLocalFile(file); - emit filesSelected(urls); - }); - connect(m_dialog.data(), &QFileDialog::currentChanged, [this](const QString &path) { - emit currentChanged(QUrl::fromLocalFile(path)); - }); - connect(m_dialog.data(), &QFileDialog::directoryEntered, this, &QWidgetPlatformFileDialog::directoryEntered); - connect(m_dialog.data(), &QFileDialog::filterSelected, this, &QWidgetPlatformFileDialog::filterSelected); - } + connect(m_dialog.data(), &QDialog::accepted, this, &QPlatformDialogHelper::accept); + connect(m_dialog.data(), &QDialog::rejected, this, &QPlatformDialogHelper::reject); + + connect(m_dialog.data(), &QFileDialog::fileSelected, [this](const QString &file) { + emit fileSelected(QUrl::fromLocalFile(file)); + }); + connect(m_dialog.data(), &QFileDialog::filesSelected, [this](const QList<QString> &files) { + QList<QUrl> urls; + urls.reserve(files.count()); + for (const QString &file : files) + urls += QUrl::fromLocalFile(file); + emit filesSelected(urls); + }); + connect(m_dialog.data(), &QFileDialog::currentChanged, [this](const QString &path) { + emit currentChanged(QUrl::fromLocalFile(path)); + }); + connect(m_dialog.data(), &QFileDialog::directoryEntered, this, &QWidgetPlatformFileDialog::directoryEntered); + connect(m_dialog.data(), &QFileDialog::filterSelected, this, &QWidgetPlatformFileDialog::filterSelected); } QWidgetPlatformFileDialog::~QWidgetPlatformFileDialog() @@ -81,24 +77,22 @@ bool QWidgetPlatformFileDialog::defaultNameFilterDisables() const void QWidgetPlatformFileDialog::setDirectory(const QUrl &directory) { - if (m_dialog) - m_dialog->setDirectory(directory.toLocalFile()); + m_dialog->setDirectory(directory.toLocalFile()); } QUrl QWidgetPlatformFileDialog::directory() const { - return m_dialog ? m_dialog->directoryUrl() : QUrl(); + return m_dialog->directoryUrl(); } void QWidgetPlatformFileDialog::selectFile(const QUrl &filename) { - if (m_dialog) - m_dialog->selectUrl(filename); + m_dialog->selectUrl(filename); } QList<QUrl> QWidgetPlatformFileDialog::selectedFiles() const { - return m_dialog ? m_dialog->selectedUrls() : QList<QUrl>(); + return m_dialog->selectedUrls(); } void QWidgetPlatformFileDialog::setFilter() @@ -108,26 +102,21 @@ void QWidgetPlatformFileDialog::setFilter() void QWidgetPlatformFileDialog::selectNameFilter(const QString &filter) { - if (m_dialog) - m_dialog->selectNameFilter(filter); + m_dialog->selectNameFilter(filter); } QString QWidgetPlatformFileDialog::selectedNameFilter() const { - return m_dialog ? m_dialog->selectedNameFilter() : QString(); + return m_dialog->selectedNameFilter(); } void QWidgetPlatformFileDialog::exec() { - if (m_dialog) - m_dialog->exec(); + m_dialog->exec(); } bool QWidgetPlatformFileDialog::show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent) { - if (!m_dialog) - return false; - QSharedPointer<QFileDialogOptions> options = QPlatformFileDialogHelper::options(); m_dialog->setWindowTitle(options->windowTitle()); m_dialog->setAcceptMode(static_cast<QFileDialog::AcceptMode>(options->acceptMode())); @@ -145,8 +134,7 @@ bool QWidgetPlatformFileDialog::show(Qt::WindowFlags flags, Qt::WindowModality m void QWidgetPlatformFileDialog::hide() { - if (m_dialog) - m_dialog->hide(); + m_dialog->hide(); } QT_END_NAMESPACE |