diff options
author | Mitch Curtis <[email protected]> | 2022-06-23 15:33:34 +0800 |
---|---|---|
committer | Mitch Curtis <[email protected]> | 2022-10-13 11:34:11 +0800 |
commit | 49b9f1f1e85ce9aee960b1384fb542daacd8b7a7 (patch) | |
tree | 575cebdd0dd014d6569bfec36f20dbe5f6cddf4b /src/quickcontrols2/material/qquickmaterialstyle.cpp | |
parent | 5eb52b725526c26d0efa3856b6aba1919010f8fd (diff) |
Make QQuickAttachedPropertyPropagator public
This type has been used internally as QQuickAttachedObject by the
Imagine, Material and Universal styles to enable propagation of colors,
dark mode flags, etc. for a while now. Users would benefit from having
access to it to create their own styles (although it's not just limited
to that use case).
This patch:
- Makes the type public in quickcontrols2.
- Adds documentation and an example.
- Fixes the test_window test to ensure that propagation through child
windows actually works.
[ChangeLog][Controls] Added QQuickAttachedPropertyPropagator, which
provides a way to propagate attached properties from parent objects
to children. This is especially useful when creating your own style.
Fixes: QTBUG-63267
Change-Id: I2f1794dc4a9f2be56fad2f5e5f39e2ab845157fa
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Richard Moe Gustavsen <[email protected]>
Diffstat (limited to 'src/quickcontrols2/material/qquickmaterialstyle.cpp')
-rw-r--r-- | src/quickcontrols2/material/qquickmaterialstyle.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/quickcontrols2/material/qquickmaterialstyle.cpp b/src/quickcontrols2/material/qquickmaterialstyle.cpp index b4c782f023..9114462828 100644 --- a/src/quickcontrols2/material/qquickmaterialstyle.cpp +++ b/src/quickcontrols2/material/qquickmaterialstyle.cpp @@ -399,7 +399,7 @@ static QQuickMaterialStyle::Theme effectiveTheme(QQuickMaterialStyle::Theme them return theme; } -QQuickMaterialStyle::QQuickMaterialStyle(QObject *parent) : QQuickAttachedObject(parent), +QQuickMaterialStyle::QQuickMaterialStyle(QObject *parent) : QQuickAttachedPropertyPropagator(parent), m_customPrimary(globalPrimaryCustom), m_customAccent(globalAccentCustom), m_customForeground(globalForegroundCustom), @@ -412,7 +412,7 @@ QQuickMaterialStyle::QQuickMaterialStyle(QObject *parent) : QQuickAttachedObject m_foreground(globalForeground), m_background(globalBackground) { - QQuickAttachedObject::init(); + QQuickAttachedPropertyPropagator::initialize(); } QQuickMaterialStyle *QQuickMaterialStyle::qmlAttachedProperties(QObject *object) @@ -464,7 +464,7 @@ void QQuickMaterialStyle::inheritTheme(Theme theme) void QQuickMaterialStyle::propagateTheme() { const auto styles = attachedChildren(); - for (QQuickAttachedObject *child : styles) { + for (QQuickAttachedPropertyPropagator *child : styles) { QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child); if (material) material->inheritTheme(m_theme); @@ -530,7 +530,7 @@ void QQuickMaterialStyle::inheritPrimary(uint primary, bool custom) void QQuickMaterialStyle::propagatePrimary() { const auto styles = attachedChildren(); - for (QQuickAttachedObject *child : styles) { + for (QQuickAttachedPropertyPropagator *child : styles) { QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child); if (material) material->inheritPrimary(m_primary, m_customPrimary); @@ -594,7 +594,7 @@ void QQuickMaterialStyle::inheritAccent(uint accent, bool custom) void QQuickMaterialStyle::propagateAccent() { const auto styles = attachedChildren(); - for (QQuickAttachedObject *child : styles) { + for (QQuickAttachedPropertyPropagator *child : styles) { QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child); if (material) material->inheritAccent(m_accent, m_customAccent); @@ -666,7 +666,7 @@ void QQuickMaterialStyle::inheritForeground(uint foreground, bool custom, bool h void QQuickMaterialStyle::propagateForeground() { const auto styles = attachedChildren(); - for (QQuickAttachedObject *child : styles) { + for (QQuickAttachedPropertyPropagator *child : styles) { QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child); if (material) material->inheritForeground(m_foreground, m_customForeground, m_hasForeground); @@ -731,7 +731,7 @@ void QQuickMaterialStyle::inheritBackground(uint background, bool custom, bool h void QQuickMaterialStyle::propagateBackground() { const auto styles = attachedChildren(); - for (QQuickAttachedObject *child : styles) { + for (QQuickAttachedPropertyPropagator *child : styles) { QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child); if (material) material->inheritBackground(m_background, m_customBackground, m_hasBackground); @@ -1319,7 +1319,7 @@ void QQuickMaterialStyle::initGlobals() } } -void QQuickMaterialStyle::attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent) +void QQuickMaterialStyle::attachedParentChange(QQuickAttachedPropertyPropagator *newParent, QQuickAttachedPropertyPropagator *oldParent) { Q_UNUSED(oldParent); QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(newParent); |