aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/platform/qquickplatformmessagedialog.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-08-14 11:01:38 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-08-14 09:25:42 +0000
commit2e09e597ab3df5a13f89e945a0a90724d5c5a3f0 (patch)
treef671841761cc372ddb1499574172564dd1378505 /src/imports/platform/qquickplatformmessagedialog.cpp
parentdeb0921b8240a0240e595896debb973a6104935a (diff)
Platform: create platform dialog instances lazily on demand
Change-Id: Ie963cb5c082b49205f7b7244ace3b88254ec37c7 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src/imports/platform/qquickplatformmessagedialog.cpp')
-rw-r--r--src/imports/platform/qquickplatformmessagedialog.cpp28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/imports/platform/qquickplatformmessagedialog.cpp b/src/imports/platform/qquickplatformmessagedialog.cpp
index 3e27e083..2fe4f88f 100644
--- a/src/imports/platform/qquickplatformmessagedialog.cpp
+++ b/src/imports/platform/qquickplatformmessagedialog.cpp
@@ -237,18 +237,6 @@ QQuickPlatformMessageDialog::QQuickPlatformMessageDialog(QObject *parent)
m_options(QMessageDialogOptions::create()),
m_clickedButton(QPlatformDialogHelper::NoButton)
{
- QPlatformDialogHelper *dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::MessageDialog);
-#ifdef QT_WIDGETS_LIB
- if (!dialog)
- dialog = new QWidgetPlatformMessageDialog(this);
-#endif
- qCDebug(qtLabsPlatformDialogs) << "MessageDialog:" << dialog;
-
- if (QPlatformMessageDialogHelper *messageDialog = qobject_cast<QPlatformMessageDialogHelper *>(dialog)) {
- connect(messageDialog, &QPlatformMessageDialogHelper::clicked, this, &QQuickPlatformMessageDialog::handleClick);
- messageDialog->setOptions(m_options);
- }
- setHandle(dialog);
}
/*!
@@ -371,6 +359,22 @@ QPlatformDialogHelper::StandardButton QQuickPlatformMessageDialog::clickedButton
return m_clickedButton;
}
+QPlatformDialogHelper *QQuickPlatformMessageDialog::createHelper()
+{
+ QPlatformDialogHelper *dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::MessageDialog);
+#ifdef QT_WIDGETS_LIB
+ if (!dialog)
+ dialog = new QWidgetPlatformMessageDialog(this);
+#endif
+ qCDebug(qtLabsPlatformDialogs) << "MessageDialog:" << dialog;
+
+ if (QPlatformMessageDialogHelper *messageDialog = qobject_cast<QPlatformMessageDialogHelper *>(dialog)) {
+ connect(messageDialog, &QPlatformMessageDialogHelper::clicked, this, &QQuickPlatformMessageDialog::handleClick);
+ messageDialog->setOptions(m_options);
+ }
+ return dialog;
+}
+
void QQuickPlatformMessageDialog::applyOptions()
{
m_options->setWindowTitle(title());