From 0a4fb70b2aba67a10c81c5a365389f75415472bc Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 7 Feb 2023 13:19:50 +0100 Subject: Qt Designer: Fix palette mask handling for 64bit Task-number: QTBUG-110963 Change-Id: I212f15dca35a93b02786567a2b8e1412eff48e90 Reviewed-by: Jarek Kobus (cherry picked from commit dd1f00da0629816d6d4967636440111cc526f478) Reviewed-by: Qt Cherry-pick Bot --- .../src/components/propertyeditor/designerpropertymanager.cpp | 6 +++--- src/designer/src/components/propertyeditor/paletteeditor.cpp | 11 ++++++----- src/designer/src/lib/shared/qdesigner_propertycommand.cpp | 8 ++++---- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/designer/src/components/propertyeditor/designerpropertymanager.cpp b/src/designer/src/components/propertyeditor/designerpropertymanager.cpp index 6dc262842..ee67c0826 100644 --- a/src/designer/src/components/propertyeditor/designerpropertymanager.cpp +++ b/src/designer/src/components/propertyeditor/designerpropertymanager.cpp @@ -1358,7 +1358,7 @@ void DesignerPropertyManager::setAttribute(QtProperty *property, data.superPalette = superPalette; // resolve here - const uint mask = data.val.resolveMask(); + const auto mask = data.val.resolveMask(); data.val = data.val.resolve(superPalette); data.val.setResolveMask(mask); @@ -1531,7 +1531,7 @@ QString DesignerPropertyManager::valueText(const QtProperty *property) const } if (m_paletteValues.contains(const_cast(property))) { const PaletteData data = m_paletteValues.value(const_cast(property)); - const uint mask = data.val.resolveMask(); + const auto mask = data.val.resolveMask(); if (mask) return tr("Customized (%n roles)", nullptr, bitCount(mask)); static const QString inherited = tr("Inherited"); @@ -1825,7 +1825,7 @@ void DesignerPropertyManager::setValue(QtProperty *property, const QVariant &val PaletteData data = m_paletteValues.value(property); - const uint mask = p.resolveMask(); + const auto mask = p.resolveMask(); p = p.resolve(data.superPalette); p.setResolveMask(mask); diff --git a/src/designer/src/components/propertyeditor/paletteeditor.cpp b/src/designer/src/components/propertyeditor/paletteeditor.cpp index d0b788062..ddf49245e 100644 --- a/src/designer/src/components/propertyeditor/paletteeditor.cpp +++ b/src/designer/src/components/propertyeditor/paletteeditor.cpp @@ -464,11 +464,12 @@ bool PaletteModel::setData(const QModelIndex &index, const QVariant &value, int return true; } if (index.column() == 0 && role == Qt::EditRole) { - uint mask = m_palette.resolveMask(); + auto mask = m_palette.resolveMask(); const bool isMask = qvariant_cast(value); - if (isMask) - mask |= (1 << int(colorRole)); - else { + const auto bitMask = 1ull << quint64(colorRole); + if (isMask) { + mask |= bitMask; + } else { m_palette.setBrush(QPalette::Active, colorRole, m_parentPalette.brush(QPalette::Active, colorRole)); m_palette.setBrush(QPalette::Inactive, colorRole, @@ -476,7 +477,7 @@ bool PaletteModel::setData(const QModelIndex &index, const QVariant &value, int m_palette.setBrush(QPalette::Disabled, colorRole, m_parentPalette.brush(QPalette::Disabled, colorRole)); - mask &= ~(1 << int(colorRole)); + mask &= ~bitMask; } m_palette.setResolveMask(mask); emit paletteChanged(m_palette); diff --git a/src/designer/src/lib/shared/qdesigner_propertycommand.cpp b/src/designer/src/lib/shared/qdesigner_propertycommand.cpp index 91bc9f6ed..866834a7e 100644 --- a/src/designer/src/lib/shared/qdesigner_propertycommand.cpp +++ b/src/designer/src/lib/shared/qdesigner_propertycommand.cpp @@ -267,8 +267,8 @@ quint64 compareSubProperties(const QPalette & p1, const QPalette & p2) quint64 rc = 0; unsigned maskBit = 1u; // generate a mask for each role - const unsigned p1Changed = p1.resolveMask(); - const unsigned p2Changed = p2.resolveMask(); + const auto p1Changed = p1.resolveMask(); + const auto p2Changed = p2.resolveMask(); for (int role = QPalette::WindowText; role < QPalette::NColorRoles; role++, maskBit <<= 1u) { const bool p1RoleChanged = p1Changed & maskBit; const bool p2RoleChanged = p2Changed & maskBit; @@ -464,7 +464,7 @@ QPalette applyPaletteSubProperty(const QPalette &oldValue, const QPalette &newVa { QPalette rc = oldValue; // apply a mask for each role - unsigned maskBit = 1u; + quint64 maskBit = 1u; for (int role = QPalette::WindowText; role < QPalette::NColorRoles; role++, maskBit <<= 1u) { if (mask & maskBit) { for (int group = QPalette::Active; group < QPalette::NColorGroups; group++) { @@ -473,7 +473,7 @@ QPalette applyPaletteSubProperty(const QPalette &oldValue, const QPalette &newVa rc.setColor(pgroup, prole, newValue.color(pgroup, prole)); } // Set the resolve bit from NewValue in return value - uint r = rc.resolveMask(); + auto r = rc.resolveMask(); const bool origFlag = newValue.resolveMask() & maskBit; if (origFlag) r |= maskBit; -- cgit v1.2.1