diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-02-07 13:15:00 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-02-07 16:58:21 +0000 |
commit | 472f898069818ac3fab40ec065853d8dded7a450 (patch) | |
tree | 75c5607952631b8847b2a68105e7aba0be39dfd0 | |
parent | f3d80f87971f6b2a4a582b434e6f1f2e6f2d5509 (diff) | |
download | qttools-472f898069818ac3fab40ec065853d8dded7a450.tar.gz |
Qt Designer: Replace resolve mask checking by QPalette::isBrushSet()
Whereas the palette resolve mask in Qt 5 had one bit for all 3 colors
of a role, the mask is now a 64bit value with one bit for each
combination of role/group. Port away from checking for the bits
where this is easily possible.
Task-number: QTBUG-110963
Change-Id: Ib6d3d44deb549bd3a49937eaef3385414480f8d3
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
(cherry picked from commit 9576575335f367ee54df0a2aaa63f74348f8d8bd)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/designer/src/components/propertyeditor/paletteeditor.cpp | 32 | ||||
-rw-r--r-- | src/designer/src/lib/uilib/formbuilderextra.cpp | 9 |
2 files changed, 17 insertions, 24 deletions
diff --git a/src/designer/src/components/propertyeditor/paletteeditor.cpp b/src/designer/src/components/propertyeditor/paletteeditor.cpp index 5590857da..fd8337cc2 100644 --- a/src/designer/src/components/propertyeditor/paletteeditor.cpp +++ b/src/designer/src/components/propertyeditor/paletteeditor.cpp @@ -85,18 +85,15 @@ QPalette PaletteEditor::palette() const void PaletteEditor::setPalette(const QPalette &palette) { m_editPalette = palette; - const uint mask = palette.resolveMask(); - for (int i = 0; i < static_cast<int>(QPalette::NColorRoles); ++i) { - if (!(mask & (1 << i))) { - m_editPalette.setBrush(QPalette::Active, static_cast<QPalette::ColorRole>(i), - m_parentPalette.brush(QPalette::Active, static_cast<QPalette::ColorRole>(i))); - m_editPalette.setBrush(QPalette::Inactive, static_cast<QPalette::ColorRole>(i), - m_parentPalette.brush(QPalette::Inactive, static_cast<QPalette::ColorRole>(i))); - m_editPalette.setBrush(QPalette::Disabled, static_cast<QPalette::ColorRole>(i), - m_parentPalette.brush(QPalette::Disabled, static_cast<QPalette::ColorRole>(i))); + for (int r = 0; r < static_cast<int>(QPalette::NColorRoles); ++r) { + for (int g = 0; g < static_cast<int>(QPalette::NColorGroups); ++g) { + const auto role = static_cast<QPalette::ColorRole>(r); + const auto group = static_cast<QPalette::ColorGroup>(g); + if (!palette.isBrushSet(group, role)) + m_editPalette.setBrush(group, role, m_parentPalette.brush(group, role)); } } - m_editPalette.setResolveMask(mask); + m_editPalette.setResolveMask(palette.resolveMask()); updatePreviewPalette(); updateStyledButton(); m_paletteUpdated = true; @@ -204,15 +201,12 @@ QPalette PaletteEditor::getPalette(QDesignerFormEditorInterface *core, QWidget* { PaletteEditor dlg(core, parent); QPalette parentPalette(parentPal); - uint mask = init.resolveMask(); - for (int i = 0; i < static_cast<int>(QPalette::NColorRoles); ++i) { - if (!(mask & (1 << i))) { - parentPalette.setBrush(QPalette::Active, static_cast<QPalette::ColorRole>(i), - init.brush(QPalette::Active, static_cast<QPalette::ColorRole>(i))); - parentPalette.setBrush(QPalette::Inactive, static_cast<QPalette::ColorRole>(i), - init.brush(QPalette::Inactive, static_cast<QPalette::ColorRole>(i))); - parentPalette.setBrush(QPalette::Disabled, static_cast<QPalette::ColorRole>(i), - init.brush(QPalette::Disabled, static_cast<QPalette::ColorRole>(i))); + for (int r = 0; r < static_cast<int>(QPalette::NColorRoles); ++r) { + for (int g = 0; g < static_cast<int>(QPalette::NColorGroups); ++g) { + const auto role = static_cast<QPalette::ColorRole>(r); + const auto group = static_cast<QPalette::ColorGroup>(g); + if (!init.isBrushSet(group, role)) + parentPalette.setBrush(group, role, init.brush(group, role)); } } dlg.setPalette(init, parentPalette); diff --git a/src/designer/src/lib/uilib/formbuilderextra.cpp b/src/designer/src/lib/uilib/formbuilderextra.cpp index fc1961aa9..2e504899b 100644 --- a/src/designer/src/lib/uilib/formbuilderextra.cpp +++ b/src/designer/src/lib/uilib/formbuilderextra.cpp @@ -512,11 +512,10 @@ DomColorGroup *QFormBuilderExtra::saveColorGroup(const QPalette &palette, DomColorGroup *group = new DomColorGroup(); QList<DomColorRole *> colorRoles; - const uint mask = palette.resolveMask(); - for (int role = QPalette::WindowText; role < QPalette::NColorRoles; ++role) { - if (mask & (1 << role)) { - const QBrush &br = palette.brush(colorGroup, QPalette::ColorRole(role)); - + for (int r = QPalette::WindowText; r < QPalette::NColorRoles; ++r) { + const auto role = static_cast<QPalette::ColorRole>(r); + if (palette.isBrushSet(colorGroup, role)) { + const QBrush &br = palette.brush(colorGroup, role); DomColorRole *colorRole = new DomColorRole(); colorRole->setElementBrush(saveBrush(br)); colorRole->setAttributeRole(QLatin1String(colorRole_enum.valueToKey(role))); |