diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-08-15 13:37:42 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-08-15 12:47:23 +0000 |
commit | 748a9418544e25c2abc6e3eb8862517bea091e7d (patch) | |
tree | 0f4a16af267f60d67931449f3bae5c7e8afb3f46 /src/imports/platform | |
parent | e7bef190cd794b688c9428913ebcc59cd7b1c76b (diff) |
Add QQuickPlatformDialog::useNativeDialog()
Change-Id: Id1699a6045eb9066a80ebdbb3cb5d3a01e58a36f
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src/imports/platform')
11 files changed, 37 insertions, 5 deletions
diff --git a/src/imports/platform/qquickplatformcolordialog.cpp b/src/imports/platform/qquickplatformcolordialog.cpp index 257095e3..792debb7 100644 --- a/src/imports/platform/qquickplatformcolordialog.cpp +++ b/src/imports/platform/qquickplatformcolordialog.cpp @@ -185,10 +185,15 @@ void QQuickPlatformColorDialog::setOptions(QColorDialogOptions::ColorDialogOptio emit optionsChanged(); } +bool QQuickPlatformColorDialog::useNativeDialog() const +{ + return !m_options->testOption(QColorDialogOptions::DontUseNativeDialog); +} + QPlatformDialogHelper *QQuickPlatformColorDialog::onCreate() { QPlatformDialogHelper *dialog = nullptr; - if (!m_options->testOption(QColorDialogOptions::DontUseNativeDialog)) + if (useNativeDialog()) dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::ColorDialog); #ifdef QT_WIDGETS_LIB if (!dialog) diff --git a/src/imports/platform/qquickplatformcolordialog_p.h b/src/imports/platform/qquickplatformcolordialog_p.h index 1671dabf..3ab8e79f 100644 --- a/src/imports/platform/qquickplatformcolordialog_p.h +++ b/src/imports/platform/qquickplatformcolordialog_p.h @@ -80,6 +80,7 @@ Q_SIGNALS: void optionsChanged(); protected: + bool useNativeDialog() const override; QPlatformDialogHelper *onCreate() override; void onShow(QPlatformDialogHelper *dialog) override; void accept() override; diff --git a/src/imports/platform/qquickplatformdialog.cpp b/src/imports/platform/qquickplatformdialog.cpp index 09d1919a..70d571e0 100644 --- a/src/imports/platform/qquickplatformdialog.cpp +++ b/src/imports/platform/qquickplatformdialog.cpp @@ -353,6 +353,11 @@ void QQuickPlatformDialog::destroy() m_handle = nullptr; } +bool QQuickPlatformDialog::useNativeDialog() const +{ + return true; +} + void QQuickPlatformDialog::onShow(QPlatformDialogHelper *dialog) { Q_UNUSED(dialog); diff --git a/src/imports/platform/qquickplatformdialog_p.h b/src/imports/platform/qquickplatformdialog_p.h index 967da7a2..cdae186e 100644 --- a/src/imports/platform/qquickplatformdialog_p.h +++ b/src/imports/platform/qquickplatformdialog_p.h @@ -126,6 +126,7 @@ protected: bool create(); void destroy(); + virtual bool useNativeDialog() const; virtual QPlatformDialogHelper *onCreate() = 0; virtual void onShow(QPlatformDialogHelper *dialog); diff --git a/src/imports/platform/qquickplatformfiledialog.cpp b/src/imports/platform/qquickplatformfiledialog.cpp index 03d145af..4718442a 100644 --- a/src/imports/platform/qquickplatformfiledialog.cpp +++ b/src/imports/platform/qquickplatformfiledialog.cpp @@ -458,10 +458,15 @@ void QQuickPlatformFileDialog::resetRejectLabel() setRejectLabel(QString()); } +bool QQuickPlatformFileDialog::useNativeDialog() const +{ + return !m_options->testOption(QFileDialogOptions::DontUseNativeDialog); +} + QPlatformDialogHelper *QQuickPlatformFileDialog::onCreate() { QPlatformDialogHelper *dialog = nullptr; - if (!m_options->testOption(QFileDialogOptions::DontUseNativeDialog)) + if (useNativeDialog()) dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::FileDialog); #ifdef QT_WIDGETS_LIB if (!dialog) diff --git a/src/imports/platform/qquickplatformfiledialog_p.h b/src/imports/platform/qquickplatformfiledialog_p.h index f06927e4..bd849a3f 100644 --- a/src/imports/platform/qquickplatformfiledialog_p.h +++ b/src/imports/platform/qquickplatformfiledialog_p.h @@ -137,6 +137,7 @@ Q_SIGNALS: void rejectLabelChanged(); protected: + bool useNativeDialog() const override; QPlatformDialogHelper *onCreate() override; void onShow(QPlatformDialogHelper *dialog) override; void accept() override; diff --git a/src/imports/platform/qquickplatformfolderdialog.cpp b/src/imports/platform/qquickplatformfolderdialog.cpp index 96c0add3..84847097 100644 --- a/src/imports/platform/qquickplatformfolderdialog.cpp +++ b/src/imports/platform/qquickplatformfolderdialog.cpp @@ -260,10 +260,15 @@ void QQuickPlatformFolderDialog::resetRejectLabel() setRejectLabel(QString()); } +bool QQuickPlatformFolderDialog::useNativeDialog() const +{ + return !m_options->testOption(QFileDialogOptions::DontUseNativeDialog); +} + QPlatformDialogHelper *QQuickPlatformFolderDialog::onCreate() { QPlatformDialogHelper *dialog = nullptr; - if (!m_options->testOption(QFileDialogOptions::DontUseNativeDialog)) + if (useNativeDialog()) dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::FileDialog); #ifdef QT_WIDGETS_LIB if (!dialog) diff --git a/src/imports/platform/qquickplatformfolderdialog_p.h b/src/imports/platform/qquickplatformfolderdialog_p.h index d58ade0e..5d0b4404 100644 --- a/src/imports/platform/qquickplatformfolderdialog_p.h +++ b/src/imports/platform/qquickplatformfolderdialog_p.h @@ -93,6 +93,7 @@ Q_SIGNALS: void rejectLabelChanged(); protected: + bool useNativeDialog() const override; QPlatformDialogHelper *onCreate() override; void onShow(QPlatformDialogHelper *dialog) override; void accept() override; diff --git a/src/imports/platform/qquickplatformfontdialog.cpp b/src/imports/platform/qquickplatformfontdialog.cpp index 40598998..ab6e05ec 100644 --- a/src/imports/platform/qquickplatformfontdialog.cpp +++ b/src/imports/platform/qquickplatformfontdialog.cpp @@ -188,10 +188,15 @@ void QQuickPlatformFontDialog::setOptions(QFontDialogOptions::FontDialogOptions emit optionsChanged(); } +bool QQuickPlatformFontDialog::useNativeDialog() const +{ + return !m_options->testOption(QFontDialogOptions::DontUseNativeDialog); +} + QPlatformDialogHelper *QQuickPlatformFontDialog::onCreate() { QPlatformDialogHelper *dialog = nullptr; - if (!m_options->testOption(QFontDialogOptions::DontUseNativeDialog)) + if (useNativeDialog()) dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::FontDialog); #ifdef QT_WIDGETS_LIB if (!dialog) diff --git a/src/imports/platform/qquickplatformfontdialog_p.h b/src/imports/platform/qquickplatformfontdialog_p.h index 7fe7d635..3cfa391e 100644 --- a/src/imports/platform/qquickplatformfontdialog_p.h +++ b/src/imports/platform/qquickplatformfontdialog_p.h @@ -80,6 +80,7 @@ Q_SIGNALS: void optionsChanged(); protected: + bool useNativeDialog() const override; QPlatformDialogHelper *onCreate() override; void onShow(QPlatformDialogHelper *dialog) override; void accept() override; diff --git a/src/imports/platform/qquickplatformmessagedialog.cpp b/src/imports/platform/qquickplatformmessagedialog.cpp index b8d84864..842648f1 100644 --- a/src/imports/platform/qquickplatformmessagedialog.cpp +++ b/src/imports/platform/qquickplatformmessagedialog.cpp @@ -348,7 +348,9 @@ void QQuickPlatformMessageDialog::setButtons(QPlatformDialogHelper::StandardButt QPlatformDialogHelper *QQuickPlatformMessageDialog::onCreate() { - QPlatformDialogHelper *dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::MessageDialog); + QPlatformDialogHelper *dialog = nullptr; + if (useNativeDialog()) + dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::MessageDialog); #ifdef QT_WIDGETS_LIB if (!dialog) dialog = new QWidgetPlatformMessageDialog(this); |