diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2018-03-14 13:24:10 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2018-03-15 07:50:40 +0000 |
commit | 6d879ab06a95d6b49e5ca4ad0af12024d5d2a988 (patch) | |
tree | 9b10d4c7a7350ee9cc3c82f4847cbcaedbbca4b9 /src/quicktemplates2/qquicktheme.cpp | |
parent | 63773fd5363e8954e298e775bba7478d612134ef (diff) |
QQuickTheme: cleanup the API
Task-number: QTBUG-67062
Change-Id: Id2f821bd41b72f7bce9885295e89c322eb3332f4
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquicktheme.cpp')
-rw-r--r-- | src/quicktemplates2/qquicktheme.cpp | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/src/quicktemplates2/qquicktheme.cpp b/src/quicktemplates2/qquicktheme.cpp index 777480b2..41d15014 100644 --- a/src/quicktemplates2/qquicktheme.cpp +++ b/src/quicktemplates2/qquicktheme.cpp @@ -72,9 +72,32 @@ static QPlatformTheme::Palette platformPalette(QQuickTheme::Palette type) } } +const QFont *QQuickThemePrivate::resolveThemeFont(QQuickTheme::Font type) +{ + Q_Q(QQuickTheme); + if (!hasResolvedFonts) { + q->resolveFonts(defaultFont ? *defaultFont : QFont()); + hasResolvedFonts = true; + defaultFont.reset(); + } + return q->font(type); +} + +const QPalette *QQuickThemePrivate::resolveThemePalette(QQuickTheme::Palette type) +{ + Q_Q(QQuickTheme); + if (!hasResolvedPalettes) { + q->resolvePalettes(defaultPalette ? *defaultPalette : QPalette()); + hasResolvedPalettes = true; + defaultPalette.reset(); + } + return q->palette(type); +} + QQuickTheme::QQuickTheme() : d_ptr(new QQuickThemePrivate) { + d_ptr->q_ptr = this; } QQuickTheme::~QQuickTheme() @@ -95,7 +118,7 @@ QFont QQuickTheme::themeFont(Font type) { const QFont *font = nullptr; if (QQuickTheme *theme = current()) - font = theme->font(type); + font = QQuickThemePrivate::get(theme)->resolveThemeFont(type); else if (QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) font = theme->font(platformFont(type)); @@ -113,7 +136,7 @@ QPalette QQuickTheme::themePalette(Palette type) { const QPalette *palette = nullptr; if (QQuickTheme *theme = current()) - palette = theme->palette(type); + palette = QQuickThemePrivate::get(theme)->resolveThemePalette(type); else if (QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) palette = theme->palette(platformPalette(type)); @@ -141,20 +164,6 @@ const QPalette *QQuickTheme::palette(Palette type) const return d->defaultPalette.data(); } -void QQuickTheme::setDefaultFont(const QFont *defaultFont) -{ - Q_D(QQuickTheme); - d->defaultFont.reset(defaultFont); - resolveFonts(defaultFont ? *defaultFont : QFont()); -} - -void QQuickTheme::setDefaultPalette(const QPalette *defaultPalette) -{ - Q_D(QQuickTheme); - d->defaultPalette.reset(defaultPalette); - resolvePalettes(defaultPalette ? *defaultPalette : QPalette()); -} - void QQuickTheme::resolveFonts(const QFont &defaultFont) { Q_UNUSED(defaultFont) |