aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickcontrols2/material/qquickmaterialstyle.cpp
diff options
context:
space:
mode:
authorMitch Curtis <[email protected]>2022-06-23 15:33:34 +0800
committerMitch Curtis <[email protected]>2022-10-13 11:34:11 +0800
commit49b9f1f1e85ce9aee960b1384fb542daacd8b7a7 (patch)
tree575cebdd0dd014d6569bfec36f20dbe5f6cddf4b /src/quickcontrols2/material/qquickmaterialstyle.cpp
parent5eb52b725526c26d0efa3856b6aba1919010f8fd (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.cpp16
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);