diff options
| author | Doris Verria <doris.verria@qt.io> | 2025-12-08 13:09:56 +0100 |
|---|---|---|
| committer | Doris Verria <doris.verria@qt.io> | 2025-12-18 14:07:18 +0100 |
| commit | ca3912d549c7d121745476b8cb096b51a4defeb4 (patch) | |
| tree | a20145be6e38ce775fc71e49ea1694bb5148e1ac /src/labs/stylekit/qqstylekitreader.cpp | |
| parent | 415706f174377052b0c1e5e101fb4e37a9b159f3 (diff) | |
StyleKit: Move palettes from QQuickTheme to parent class
Task-number: QTBUG-130067
Pick-to: 6.11
Change-Id: Ie9c466591fbfbf54d9575d3684636b13c1061d64
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'src/labs/stylekit/qqstylekitreader.cpp')
| -rw-r--r-- | src/labs/stylekit/qqstylekitreader.cpp | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/labs/stylekit/qqstylekitreader.cpp b/src/labs/stylekit/qqstylekitreader.cpp index 9a4268e09c..ee0d4d3efe 100644 --- a/src/labs/stylekit/qqstylekitreader.cpp +++ b/src/labs/stylekit/qqstylekitreader.cpp @@ -500,21 +500,33 @@ void QQStyleKitReader::setHighlighted(bool highlighted) QQuickPalette *QQStyleKitReader::palette() const { - return &const_cast<QQStyleKitReader *>(this)->m_palette; + return m_palette.data(); } void QQStyleKitReader::setPalette(QQuickPalette *palette) { - if (palette && m_palette.toQPalette() == palette->toQPalette()) + if (m_palette == palette) return; - m_palette.reset(); - if (palette) - m_palette.inheritPalette(palette->toQPalette()); + if (m_palette) + QObject::disconnect(m_palette, nullptr, this, nullptr); + + m_palette = palette; emit paletteChanged(); - const auto *stylePtr = style(); - if (!stylePtr || !stylePtr->loaded()) + if (m_palette) { + // changed signal will be triggered when any role changes + QObject::connect(m_palette, &QQuickPalette::changed, + this, &QQStyleKitReader::onPaletteChanged); + } + + onPaletteChanged(); +} + +void QQStyleKitReader::onPaletteChanged() +{ + const QQStyleKitStyle *style = QQStyleKitStyle::current(); + if (!style || !style->loaded()) return; clearLocalStorage(); |
