diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-08-15 10:52:10 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-08-17 15:46:21 +0000 |
commit | 007f92c6eef6191c48da0c44916591d48813ae62 (patch) | |
tree | c57e29fdd227b633e17c981b712e30d482e82bb8 /src/widgets/dialogs/qdialog.cpp | |
parent | 31127d390ed39be88045fe0d02e851e6049d6359 (diff) |
Dialogs: don't create platform helpers unconditionally
No matter if Qt::AA_DontUseNativeDialogs was set, both QFileDialog and
QColorDialog were always unconditionally creating the platform helper
at construction time:
QFooDialog()
-> QFooDialogPrivate::init()
-> QFooDialogPrivate::platformFooHelper()
-> QDialogPrivate::platformHelper()
Only QFontDialog had the platformHelper() calls guarded with
canBeNativeDialog(). => Move the canBeNativeDialog() check inside
QDialogPrivate::platformHelper() where the platform helper
instance is created.
Task-number: QTBUG-55276
Change-Id: I84b595fbd009c70a3a1976ddbb32a835270c5203
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/widgets/dialogs/qdialog.cpp')
-rw-r--r-- | src/widgets/dialogs/qdialog.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/widgets/dialogs/qdialog.cpp b/src/widgets/dialogs/qdialog.cpp index bfc943966f..8a26e1b2a7 100644 --- a/src/widgets/dialogs/qdialog.cpp +++ b/src/widgets/dialogs/qdialog.cpp @@ -95,7 +95,7 @@ QPlatformDialogHelper *QDialogPrivate::platformHelper() const { // Delayed creation of the platform, ensuring that // that qobject_cast<> on the dialog works in the plugin. - if (!m_platformHelperCreated) { + if (!m_platformHelperCreated && canBeNativeDialog()) { m_platformHelperCreated = true; QDialogPrivate *ncThis = const_cast<QDialogPrivate *>(this); QDialog *dialog = ncThis->q_func(); |