Move QQuickControlPrivate::themeFont|Palette() to QQuickTheme

QPlatformTheme is too limited for our theming purposes. We need support
for separate palettes (and later, icon colors) in dark and light themes.
Also, the fact that Qt Quick Controls 2 injects a platform proxy theme
does have undesired side effects in Qt Widgets and Qt Quick Controls 1.
Therefore, we start separating QPlatformTheme and QQuickTheme. The first
step is to eliminate some direct QPlatformTheme access in QQuickControl
and route it via QQuickTheme instead.

Task-number: QTBUG-51921
Change-Id: I055471a75ed6f26968796496efd1892975447c98
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
This commit is contained in:
J-P Nurmi 2018-02-15 11:54:33 +01:00
parent f6fec74d42
commit 5b711c320c
36 changed files with 100 additions and 96 deletions

View File

@ -272,7 +272,7 @@ void QQuickApplicationWindowPrivate::updateFont(const QFont &f)
void QQuickApplicationWindowPrivate::resolveFont() void QQuickApplicationWindowPrivate::resolveFont()
{ {
QFont resolvedFont = font.resolve(QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont)); QFont resolvedFont = font.resolve(QQuickTheme::themeFont(QQuickTheme::SystemFont));
setFont_helper(resolvedFont); setFont_helper(resolvedFont);
} }
@ -294,7 +294,7 @@ void QQuickApplicationWindowPrivate::updatePalette(const QPalette &p)
void QQuickApplicationWindowPrivate::resolvePalette() void QQuickApplicationWindowPrivate::resolvePalette()
{ {
QPalette resolvedPalette = palette.resolve(QQuickControlPrivate::themePalette(QPlatformTheme::SystemPalette)); QPalette resolvedPalette = palette.resolve(QQuickTheme::themePalette(QQuickTheme::SystemPalette));
setPalette_helper(resolvedPalette); setPalette_helper(resolvedPalette);
} }
@ -689,7 +689,7 @@ void QQuickApplicationWindow::setFont(const QFont &font)
if (d->font.resolve() == font.resolve() && d->font == font) if (d->font.resolve() == font.resolve() && d->font == font)
return; return;
QFont resolvedFont = font.resolve(QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont)); QFont resolvedFont = font.resolve(QQuickTheme::themeFont(QQuickTheme::SystemFont));
d->setFont_helper(resolvedFont); d->setFont_helper(resolvedFont);
} }
@ -768,7 +768,7 @@ void QQuickApplicationWindow::setPalette(const QPalette &palette)
if (d->palette.resolve() == palette.resolve() && d->palette == palette) if (d->palette.resolve() == palette.resolve() && d->palette == palette)
return; return;
QPalette resolvedPalette = palette.resolve(QQuickControlPrivate::themePalette(QPlatformTheme::SystemPalette)); QPalette resolvedPalette = palette.resolve(QQuickTheme::themePalette(QQuickTheme::SystemPalette));
d->setPalette_helper(resolvedPalette); d->setPalette_helper(resolvedPalette);
} }

View File

@ -102,12 +102,12 @@ QQuickButton::QQuickButton(QQuickButtonPrivate &dd, QQuickItem *parent)
QFont QQuickButton::defaultFont() const QFont QQuickButton::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::PushButtonFont); return QQuickTheme::themeFont(QQuickTheme::PushButtonFont);
} }
QPalette QQuickButton::defaultPalette() const QPalette QQuickButton::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::ButtonPalette); return QQuickTheme::themePalette(QQuickTheme::ButtonPalette);
} }
/*! /*!

View File

@ -189,12 +189,12 @@ void QQuickCheckBox::setCheckState(Qt::CheckState state)
QFont QQuickCheckBox::defaultFont() const QFont QQuickCheckBox::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::CheckBoxFont); return QQuickTheme::themeFont(QQuickTheme::CheckBoxFont);
} }
QPalette QQuickCheckBox::defaultPalette() const QPalette QQuickCheckBox::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::CheckBoxPalette); return QQuickTheme::themePalette(QQuickTheme::CheckBoxPalette);
} }
void QQuickCheckBox::buttonChange(ButtonChange change) void QQuickCheckBox::buttonChange(ButtonChange change)

View File

@ -176,7 +176,7 @@ void QQuickCheckDelegate::setCheckState(Qt::CheckState state)
QFont QQuickCheckDelegate::defaultFont() const QFont QQuickCheckDelegate::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::ListViewFont); return QQuickTheme::themeFont(QQuickTheme::ListViewFont);
} }
void QQuickCheckDelegate::buttonChange(ButtonChange change) void QQuickCheckDelegate::buttonChange(ButtonChange change)

View File

@ -1699,12 +1699,12 @@ void QQuickComboBox::localeChange(const QLocale &newLocale, const QLocale &oldLo
QFont QQuickComboBox::defaultFont() const QFont QQuickComboBox::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::ComboMenuItemFont); return QQuickTheme::themeFont(QQuickTheme::ComboMenuItemFont);
} }
QPalette QQuickComboBox::defaultPalette() const QPalette QQuickComboBox::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::ComboBoxPalette); return QQuickTheme::themePalette(QQuickTheme::ComboBoxPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -50,9 +50,6 @@
#include "qquickapplicationwindow_p.h" #include "qquickapplicationwindow_p.h"
#include "qquickdeferredexecute_p_p.h" #include "qquickdeferredexecute_p_p.h"
#include <QtGui/private/qguiapplication_p.h>
#include <QtGui/qpa/qplatformtheme.h>
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)
#include <QtQuick/private/qquickaccessibleattached_p.h> #include <QtQuick/private/qquickaccessibleattached_p.h>
#endif #endif
@ -400,21 +397,7 @@ QFont QQuickControlPrivate::parentFont(const QQuickItem *item)
if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(item->window())) if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(item->window()))
return window->font(); return window->font();
return themeFont(QPlatformTheme::SystemFont); return QQuickTheme::themeFont(QQuickTheme::SystemFont);
}
QFont QQuickControlPrivate::themeFont(QPlatformTheme::Font type)
{
if (QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
if (const QFont *font = theme->font(type)) {
QFont f = *font;
if (type == QPlatformTheme::SystemFont)
f.resolve(0);
return f;
}
}
return QFont();
} }
/*! /*!
@ -505,21 +488,7 @@ QPalette QQuickControlPrivate::parentPalette(const QQuickItem *item)
if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(item->window())) if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(item->window()))
return window->palette(); return window->palette();
return themePalette(QPlatformTheme::SystemPalette); return QQuickTheme::themePalette(QQuickTheme::SystemPalette);
}
QPalette QQuickControlPrivate::themePalette(QPlatformTheme::Palette type)
{
if (QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
if (const QPalette *palette = theme->palette(type)) {
QPalette p = *palette;
if (type == QPlatformTheme::SystemPalette)
p.resolve(0);
return p;
}
}
return QPalette();
} }
/*! /*!
@ -1571,12 +1540,12 @@ void QQuickControl::componentComplete()
QFont QQuickControl::defaultFont() const QFont QQuickControl::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont); return QQuickTheme::themeFont(QQuickTheme::SystemFont);
} }
QPalette QQuickControl::defaultPalette() const QPalette QQuickControl::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::SystemPalette); return QQuickTheme::themePalette(QQuickTheme::SystemPalette);
} }
void QQuickControl::focusInEvent(QFocusEvent *event) void QQuickControl::focusInEvent(QFocusEvent *event)

View File

@ -50,10 +50,10 @@
#include <QtQuickTemplates2/private/qquickcontrol_p.h> #include <QtQuickTemplates2/private/qquickcontrol_p.h>
#include <QtQuickTemplates2/private/qquickdeferredpointer_p_p.h> #include <QtQuickTemplates2/private/qquickdeferredpointer_p_p.h>
#include <QtQuickTemplates2/private/qquicktheme_p.h>
#include <QtQuick/private/qquickitem_p.h> #include <QtQuick/private/qquickitem_p.h>
#include <QtQml/private/qlazilyallocated_p.h> #include <QtQml/private/qlazilyallocated_p.h>
#include <qpa/qplatformtheme.h>
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)
#include <QtGui/qaccessible.h> #include <QtGui/qaccessible.h>
@ -126,7 +126,6 @@ public:
updateFont(font); updateFont(font);
} }
static QFont parentFont(const QQuickItem *item); static QFont parentFont(const QQuickItem *item);
static QFont themeFont(QPlatformTheme::Font type);
virtual void resolvePalette(); virtual void resolvePalette();
void inheritPalette(const QPalette &palette); void inheritPalette(const QPalette &palette);
@ -138,7 +137,6 @@ public:
updatePalette(palette); updatePalette(palette);
} }
static QPalette parentPalette(const QQuickItem *item); static QPalette parentPalette(const QQuickItem *item);
static QPalette themePalette(QPlatformTheme::Palette type);
void updateLocale(const QLocale &l, bool e); void updateLocale(const QLocale &l, bool e);
static void updateLocaleRecur(QQuickItem *item, const QLocale &l); static void updateLocaleRecur(QQuickItem *item, const QLocale &l);

View File

@ -265,12 +265,12 @@ void QQuickDelayButton::nextCheckState()
QFont QQuickDelayButton::defaultFont() const QFont QQuickDelayButton::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::PushButtonFont); return QQuickTheme::themeFont(QQuickTheme::PushButtonFont);
} }
QPalette QQuickDelayButton::defaultPalette() const QPalette QQuickDelayButton::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::ButtonPalette); return QQuickTheme::themePalette(QQuickTheme::ButtonPalette);
} }
QT_END_NAMESPACE QT_END_NAMESPACE

View File

@ -189,12 +189,12 @@ void QQuickGroupBox::componentComplete()
QFont QQuickGroupBox::defaultFont() const QFont QQuickGroupBox::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::GroupBoxTitleFont); return QQuickTheme::themeFont(QQuickTheme::GroupBoxTitleFont);
} }
QPalette QQuickGroupBox::defaultPalette() const QPalette QQuickGroupBox::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::GroupBoxPalette); return QQuickTheme::themePalette(QQuickTheme::GroupBoxPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -122,12 +122,12 @@ void QQuickItemDelegate::setHighlighted(bool highlighted)
QFont QQuickItemDelegate::defaultFont() const QFont QQuickItemDelegate::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::ItemViewFont); return QQuickTheme::themeFont(QQuickTheme::ItemViewFont);
} }
QPalette QQuickItemDelegate::defaultPalette() const QPalette QQuickItemDelegate::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::ItemViewPalette); return QQuickTheme::themePalette(QQuickTheme::ItemViewPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -113,7 +113,7 @@ void QQuickLabelPrivate::inheritFont(const QFont &font)
QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font; QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font;
parentFont.resolve(extra.isAllocated() ? extra->requestedFont.resolve() | font.resolve() : font.resolve()); parentFont.resolve(extra.isAllocated() ? extra->requestedFont.resolve() | font.resolve() : font.resolve());
const QFont defaultFont = QQuickControlPrivate::themeFont(QPlatformTheme::LabelFont); const QFont defaultFont = QQuickTheme::themeFont(QQuickTheme::LabelFont);
const QFont resolvedFont = parentFont.resolve(defaultFont); const QFont resolvedFont = parentFont.resolve(defaultFont);
setFont_helper(resolvedFont); setFont_helper(resolvedFont);
@ -155,7 +155,7 @@ void QQuickLabelPrivate::inheritPalette(const QPalette &palette)
QPalette parentPalette = extra.isAllocated() ? extra->requestedPalette.resolve(palette) : palette; QPalette parentPalette = extra.isAllocated() ? extra->requestedPalette.resolve(palette) : palette;
parentPalette.resolve(extra.isAllocated() ? extra->requestedPalette.resolve() | palette.resolve() : palette.resolve()); parentPalette.resolve(extra.isAllocated() ? extra->requestedPalette.resolve() | palette.resolve() : palette.resolve());
const QPalette defaultPalette = QQuickControlPrivate::themePalette(QPlatformTheme::LabelPalette); const QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::LabelPalette);
const QPalette resolvedPalette = parentPalette.resolve(defaultPalette); const QPalette resolvedPalette = parentPalette.resolve(defaultPalette);
setPalette_helper(resolvedPalette); setPalette_helper(resolvedPalette);

View File

@ -1432,12 +1432,12 @@ void QQuickMenu::timerEvent(QTimerEvent *event)
QFont QQuickMenu::defaultFont() const QFont QQuickMenu::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::MenuFont); return QQuickTheme::themeFont(QQuickTheme::MenuFont);
} }
QPalette QQuickMenu::defaultPalette() const QPalette QQuickMenu::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::MenuPalette); return QQuickTheme::themePalette(QQuickTheme::MenuPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -641,12 +641,12 @@ void QQuickMenuBar::itemRemoved(int index, QQuickItem *item)
QFont QQuickMenuBar::defaultFont() const QFont QQuickMenuBar::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::MenuBarFont); return QQuickTheme::themeFont(QQuickTheme::MenuBarFont);
} }
QPalette QQuickMenuBar::defaultPalette() const QPalette QQuickMenuBar::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::MenuBarPalette); return QQuickTheme::themePalette(QQuickTheme::MenuBarPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -167,12 +167,12 @@ void QQuickMenuBarItem::geometryChanged(const QRectF &newGeometry, const QRectF
QFont QQuickMenuBarItem::defaultFont() const QFont QQuickMenuBarItem::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::MenuBarFont); return QQuickTheme::themeFont(QQuickTheme::MenuBarFont);
} }
QPalette QQuickMenuBarItem::defaultPalette() const QPalette QQuickMenuBarItem::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::MenuBarPalette); return QQuickTheme::themePalette(QQuickTheme::MenuBarPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -264,12 +264,12 @@ void QQuickMenuItem::componentComplete()
QFont QQuickMenuItem::defaultFont() const QFont QQuickMenuItem::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::MenuItemFont); return QQuickTheme::themeFont(QQuickTheme::MenuItemFont);
} }
QPalette QQuickMenuItem::defaultPalette() const QPalette QQuickMenuItem::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::MenuPalette); return QQuickTheme::themePalette(QQuickTheme::MenuPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -73,7 +73,7 @@ QQuickMenuSeparator::QQuickMenuSeparator(QQuickItem *parent)
QPalette QQuickMenuSeparator::defaultPalette() const QPalette QQuickMenuSeparator::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::MenuPalette); return QQuickTheme::themePalette(QQuickTheme::MenuPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -2415,12 +2415,12 @@ void QQuickPopup::spacingChange(qreal newSpacing, qreal oldSpacing)
QFont QQuickPopup::defaultFont() const QFont QQuickPopup::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont); return QQuickTheme::themeFont(QQuickTheme::SystemFont);
} }
QPalette QQuickPopup::defaultPalette() const QPalette QQuickPopup::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::SystemPalette); return QQuickTheme::themePalette(QQuickTheme::SystemPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -97,7 +97,7 @@ void QQuickPopupItemPrivate::resolveFont()
if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(popup->window())) if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(popup->window()))
inheritFont(window->font()); inheritFont(window->font());
else else
inheritFont(themeFont(QPlatformTheme::SystemFont)); inheritFont(QQuickTheme::themeFont(QQuickTheme::SystemFont));
} }
void QQuickPopupItemPrivate::resolvePalette() void QQuickPopupItemPrivate::resolvePalette()
@ -105,7 +105,7 @@ void QQuickPopupItemPrivate::resolvePalette()
if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(popup->window())) if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(popup->window()))
inheritPalette(window->palette()); inheritPalette(window->palette());
else else
inheritPalette(themePalette(QPlatformTheme::SystemPalette)); inheritPalette(QQuickTheme::themePalette(QQuickTheme::SystemPalette));
} }
QQuickItem *QQuickPopupItemPrivate::getContentItem() QQuickItem *QQuickPopupItemPrivate::getContentItem()

View File

@ -99,12 +99,12 @@ QQuickRadioButton::QQuickRadioButton(QQuickItem *parent)
QFont QQuickRadioButton::defaultFont() const QFont QQuickRadioButton::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::RadioButtonFont); return QQuickTheme::themeFont(QQuickTheme::RadioButtonFont);
} }
QPalette QQuickRadioButton::defaultPalette() const QPalette QQuickRadioButton::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::RadioButtonPalette); return QQuickTheme::themePalette(QQuickTheme::RadioButtonPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -100,7 +100,7 @@ QQuickRadioDelegate::QQuickRadioDelegate(QQuickItem *parent)
QFont QQuickRadioDelegate::defaultFont() const QFont QQuickRadioDelegate::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::ListViewFont); return QQuickTheme::themeFont(QQuickTheme::ListViewFont);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -1023,12 +1023,12 @@ void QQuickSpinBox::localeChange(const QLocale &newLocale, const QLocale &oldLoc
QFont QQuickSpinBox::defaultFont() const QFont QQuickSpinBox::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::EditorFont); return QQuickTheme::themeFont(QQuickTheme::EditorFont);
} }
QPalette QQuickSpinBox::defaultPalette() const QPalette QQuickSpinBox::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::TextLineEditPalette); return QQuickTheme::themePalette(QQuickTheme::TextLineEditPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -1230,7 +1230,7 @@ void QQuickSwipeDelegate::geometryChanged(const QRectF &newGeometry, const QRect
QFont QQuickSwipeDelegate::defaultFont() const QFont QQuickSwipeDelegate::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::ListViewFont); return QQuickTheme::themeFont(QQuickTheme::ListViewFont);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -234,7 +234,7 @@ void QQuickSwitch::buttonChange(ButtonChange change)
QPalette QQuickSwitch::defaultPalette() const QPalette QQuickSwitch::defaultPalette() const
{ {
// ### TODO: add QPlatformTheme::SwitchPalette // ### TODO: add QPlatformTheme::SwitchPalette
return QQuickControlPrivate::themePalette(QPlatformTheme::CheckBoxPalette); return QQuickTheme::themePalette(QQuickTheme::CheckBoxPalette);
} }
QT_END_NAMESPACE QT_END_NAMESPACE

View File

@ -202,7 +202,7 @@ void QQuickSwitchDelegate::touchEvent(QTouchEvent *event)
QFont QQuickSwitchDelegate::defaultFont() const QFont QQuickSwitchDelegate::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::ListViewFont); return QQuickTheme::themeFont(QQuickTheme::ListViewFont);
} }
void QQuickSwitchDelegate::mirrorChange() void QQuickSwitchDelegate::mirrorChange()

View File

@ -441,7 +441,7 @@ void QQuickTabBar::itemRemoved(int index, QQuickItem *item)
QPalette QQuickTabBar::defaultPalette() const QPalette QQuickTabBar::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::TabBarPalette); return QQuickTheme::themePalette(QQuickTheme::TabBarPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -72,12 +72,12 @@ QQuickTabButton::QQuickTabButton(QQuickItem *parent)
QFont QQuickTabButton::defaultFont() const QFont QQuickTabButton::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::TabButtonFont); return QQuickTheme::themeFont(QQuickTheme::TabButtonFont);
} }
QPalette QQuickTabButton::defaultPalette() const QPalette QQuickTabButton::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::TabBarPalette); return QQuickTheme::themePalette(QQuickTheme::TabBarPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -194,7 +194,7 @@ void QQuickTextAreaPrivate::inheritFont(const QFont &font)
QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font; QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font;
parentFont.resolve(extra.isAllocated() ? extra->requestedFont.resolve() | font.resolve() : font.resolve()); parentFont.resolve(extra.isAllocated() ? extra->requestedFont.resolve() | font.resolve() : font.resolve());
const QFont defaultFont = QQuickControlPrivate::themeFont(QPlatformTheme::EditorFont); const QFont defaultFont = QQuickTheme::themeFont(QQuickTheme::EditorFont);
const QFont resolvedFont = parentFont.resolve(defaultFont); const QFont resolvedFont = parentFont.resolve(defaultFont);
setFont_helper(resolvedFont); setFont_helper(resolvedFont);
@ -236,7 +236,7 @@ void QQuickTextAreaPrivate::inheritPalette(const QPalette &palette)
QPalette parentPalette = extra.isAllocated() ? extra->requestedPalette.resolve(palette) : palette; QPalette parentPalette = extra.isAllocated() ? extra->requestedPalette.resolve(palette) : palette;
parentPalette.resolve(extra.isAllocated() ? extra->requestedPalette.resolve() | palette.resolve() : palette.resolve()); parentPalette.resolve(extra.isAllocated() ? extra->requestedPalette.resolve() | palette.resolve() : palette.resolve());
const QPalette defaultPalette = QQuickControlPrivate::themePalette(QPlatformTheme::TextEditPalette); const QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::TextEditPalette);
const QPalette resolvedPalette = parentPalette.resolve(defaultPalette); const QPalette resolvedPalette = parentPalette.resolve(defaultPalette);
setPalette_helper(resolvedPalette); setPalette_helper(resolvedPalette);

View File

@ -168,7 +168,7 @@ void QQuickTextFieldPrivate::inheritFont(const QFont &font)
QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font; QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font;
parentFont.resolve(extra.isAllocated() ? extra->requestedFont.resolve() | font.resolve() : font.resolve()); parentFont.resolve(extra.isAllocated() ? extra->requestedFont.resolve() | font.resolve() : font.resolve());
const QFont defaultFont = QQuickControlPrivate::themeFont(QPlatformTheme::EditorFont); const QFont defaultFont = QQuickTheme::themeFont(QQuickTheme::EditorFont);
const QFont resolvedFont = parentFont.resolve(defaultFont); const QFont resolvedFont = parentFont.resolve(defaultFont);
setFont_helper(resolvedFont); setFont_helper(resolvedFont);
@ -210,7 +210,7 @@ void QQuickTextFieldPrivate::inheritPalette(const QPalette &palette)
QPalette parentPalette = extra.isAllocated() ? extra->requestedPalette.resolve(palette) : palette; QPalette parentPalette = extra.isAllocated() ? extra->requestedPalette.resolve(palette) : palette;
parentPalette.resolve(extra.isAllocated() ? extra->requestedPalette.resolve() | palette.resolve() : palette.resolve()); parentPalette.resolve(extra.isAllocated() ? extra->requestedPalette.resolve() | palette.resolve() : palette.resolve());
const QPalette defaultPalette = QQuickControlPrivate::themePalette(QPlatformTheme::TextLineEditPalette); const QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::TextLineEditPalette);
const QPalette resolvedPalette = parentPalette.resolve(defaultPalette); const QPalette resolvedPalette = parentPalette.resolve(defaultPalette);
setPalette_helper(resolvedPalette); setPalette_helper(resolvedPalette);

View File

@ -37,6 +37,8 @@
#include "qquicktheme_p.h" #include "qquicktheme_p.h"
#include "qquicktheme_p_p.h" #include "qquicktheme_p_p.h"
#include <QtGui/private/qguiapplication_p.h>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
QQuickTheme::QQuickTheme() QQuickTheme::QQuickTheme()
@ -48,6 +50,38 @@ QQuickTheme::~QQuickTheme()
{ {
} }
QFont QQuickTheme::themeFont(Font type)
{
const QFont *font = nullptr;
if (QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
font = theme->font(type);
if (font) {
QFont f = *font;
if (type == QPlatformTheme::SystemFont)
f.resolve(0);
return f;
}
return QFont();
}
QPalette QQuickTheme::themePalette(Palette type)
{
const QPalette *palette = nullptr;
if (QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
palette = theme->palette(type);
if (palette) {
QPalette f = *palette;
if (type == QPlatformTheme::SystemPalette)
f.resolve(0);
return f;
}
return QPalette();
}
const QFont *QQuickTheme::font(Font type) const const QFont *QQuickTheme::font(Font type) const
{ {
Q_D(const QQuickTheme); Q_D(const QQuickTheme);

View File

@ -63,6 +63,9 @@ public:
QQuickTheme(); QQuickTheme();
~QQuickTheme(); ~QQuickTheme();
static QFont themeFont(Font type);
static QPalette themePalette(Palette type);
const QFont *font(Font type = SystemFont) const override; const QFont *font(Font type = SystemFont) const override;
const QPalette *palette(Palette type = SystemPalette) const override; const QPalette *palette(Palette type = SystemPalette) const override;

View File

@ -143,7 +143,7 @@ void QQuickToolBar::setPosition(Position position)
QPalette QQuickToolBar::defaultPalette() const QPalette QQuickToolBar::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::ToolButtonPalette); return QQuickTheme::themePalette(QQuickTheme::ToolButtonPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -71,12 +71,12 @@ QQuickToolButton::QQuickToolButton(QQuickItem *parent)
QFont QQuickToolButton::defaultFont() const QFont QQuickToolButton::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::ToolButtonFont); return QQuickTheme::themeFont(QQuickTheme::ToolButtonFont);
} }
QPalette QQuickToolButton::defaultPalette() const QPalette QQuickToolButton::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::ToolButtonPalette); return QQuickTheme::themePalette(QQuickTheme::ToolButtonPalette);
} }
QT_END_NAMESPACE QT_END_NAMESPACE

View File

@ -135,7 +135,7 @@ bool QQuickToolSeparator::isVertical() const
QPalette QQuickToolSeparator::defaultPalette() const QPalette QQuickToolSeparator::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::ToolButtonPalette); return QQuickTheme::themePalette(QQuickTheme::ToolButtonPalette);
} }
#if QT_CONFIG(accessibility) #if QT_CONFIG(accessibility)

View File

@ -303,12 +303,12 @@ void QQuickToolTip::hide()
QFont QQuickToolTip::defaultFont() const QFont QQuickToolTip::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::TipLabelFont); return QQuickTheme::themeFont(QQuickTheme::TipLabelFont);
} }
QPalette QQuickToolTip::defaultPalette() const QPalette QQuickToolTip::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::ToolTipPalette); return QQuickTheme::themePalette(QQuickTheme::ToolTipPalette);
} }
void QQuickToolTip::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data) void QQuickToolTip::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)

View File

@ -784,12 +784,12 @@ void QQuickTumbler::updatePolish()
QFont QQuickTumbler::defaultFont() const QFont QQuickTumbler::defaultFont() const
{ {
return QQuickControlPrivate::themeFont(QPlatformTheme::ItemViewFont); return QQuickTheme::themeFont(QQuickTheme::ItemViewFont);
} }
QPalette QQuickTumbler::defaultPalette() const QPalette QQuickTumbler::defaultPalette() const
{ {
return QQuickControlPrivate::themePalette(QPlatformTheme::ItemViewPalette); return QQuickTheme::themePalette(QQuickTheme::ItemViewPalette);
} }
QQuickTumblerAttachedPrivate::QQuickTumblerAttachedPrivate() QQuickTumblerAttachedPrivate::QQuickTumblerAttachedPrivate()

View File

@ -46,7 +46,7 @@
#include <QtQuickTemplates2/private/qquickcontrol_p.h> #include <QtQuickTemplates2/private/qquickcontrol_p.h>
#include <QtQuickTemplates2/private/qquickcontrol_p_p.h> #include <QtQuickTemplates2/private/qquickcontrol_p_p.h>
#include <QtQuickTemplates2/private/qquickpopup_p.h> #include <QtQuickTemplates2/private/qquickpopup_p.h>
#include <QtQuickTemplates2/private/qquickproxytheme_p.h> #include <QtQuickTemplates2/private/qquicktheme_p.h>
using namespace QQuickVisualTestUtil; using namespace QQuickVisualTestUtil;
@ -88,7 +88,7 @@ void tst_palette::palette_data()
QTest::addColumn<QString>("testFile"); QTest::addColumn<QString>("testFile");
QTest::addColumn<QPalette>("expectedPalette"); QTest::addColumn<QPalette>("expectedPalette");
QPalette defaultPalette = QQuickControlPrivate::themePalette(QPlatformTheme::SystemPalette); QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::SystemPalette);
defaultPalette.setColor(QPalette::Base, QColor("#efefef")); defaultPalette.setColor(QPalette::Base, QColor("#efefef"));
defaultPalette.setColor(QPalette::Text, QColor("#101010")); defaultPalette.setColor(QPalette::Text, QColor("#101010"));
@ -172,7 +172,7 @@ void tst_palette::inheritance()
QObject *grandChild = window->property("grandChild").value<QObject *>(); QObject *grandChild = window->property("grandChild").value<QObject *>();
QVERIFY(control && child && grandChild); QVERIFY(control && child && grandChild);
QPalette defaultPalette = QQuickControlPrivate::themePalette(QPlatformTheme::SystemPalette); QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::SystemPalette);
defaultPalette.setColor(QPalette::Base, QColor("#efefef")); defaultPalette.setColor(QPalette::Base, QColor("#efefef"));
defaultPalette.setColor(QPalette::Text, QColor("#101010")); defaultPalette.setColor(QPalette::Text, QColor("#101010"));