diff options
-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))); |