diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-08-14 11:01:38 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-08-14 09:25:42 +0000 |
commit | 2e09e597ab3df5a13f89e945a0a90724d5c5a3f0 (patch) | |
tree | f671841761cc372ddb1499574172564dd1378505 /src/imports/platform/qquickplatformfontdialog.cpp | |
parent | deb0921b8240a0240e595896debb973a6104935a (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/qquickplatformfontdialog.cpp')
-rw-r--r-- | src/imports/platform/qquickplatformfontdialog.cpp | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/src/imports/platform/qquickplatformfontdialog.cpp b/src/imports/platform/qquickplatformfontdialog.cpp index bf778ff0..13e35389 100644 --- a/src/imports/platform/qquickplatformfontdialog.cpp +++ b/src/imports/platform/qquickplatformfontdialog.cpp @@ -102,19 +102,6 @@ Q_DECLARE_LOGGING_CATEGORY(qtLabsPlatformDialogs) QQuickPlatformFontDialog::QQuickPlatformFontDialog(QObject *parent) : QQuickPlatformDialog(parent), m_options(QFontDialogOptions::create()) { - QPlatformDialogHelper *dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::FontDialog); -#ifdef QT_WIDGETS_LIB - if (!dialog) - dialog = new QWidgetPlatformFontDialog(this); -#endif - qCDebug(qtLabsPlatformDialogs) << "FontDialog:" << dialog; - - if (QPlatformFontDialogHelper *fontDialog = qobject_cast<QPlatformFontDialogHelper *>(dialog)) { - connect(fontDialog, &QPlatformFontDialogHelper::currentFontChanged, this, &QQuickPlatformFontDialog::currentFontChanged); - connect(fontDialog, &QPlatformFontDialogHelper::fontSelected, this, &QQuickPlatformFontDialog::fontSelected); - fontDialog->setOptions(m_options); - } - setHandle(dialog); } /*! @@ -169,6 +156,23 @@ void QQuickPlatformFontDialog::setOptions(QFontDialogOptions::FontDialogOptions emit optionsChanged(); } +QPlatformDialogHelper *QQuickPlatformFontDialog::createHelper() +{ + QPlatformDialogHelper *dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::FontDialog); +#ifdef QT_WIDGETS_LIB + if (!dialog) + dialog = new QWidgetPlatformFontDialog(this); +#endif + qCDebug(qtLabsPlatformDialogs) << "FontDialog:" << dialog; + + if (QPlatformFontDialogHelper *fontDialog = qobject_cast<QPlatformFontDialogHelper *>(dialog)) { + connect(fontDialog, &QPlatformFontDialogHelper::currentFontChanged, this, &QQuickPlatformFontDialog::currentFontChanged); + connect(fontDialog, &QPlatformFontDialogHelper::fontSelected, this, &QQuickPlatformFontDialog::fontSelected); + fontDialog->setOptions(m_options); + } + return dialog; +} + void QQuickPlatformFontDialog::applyOptions() { m_options->setWindowTitle(title()); |