From 1bee70d07bd984d54438b8362467044d72504efa Mon Sep 17 00:00:00 2001 From: Ali Kianian Date: Tue, 19 Sep 2023 15:48:28 +0300 Subject: [PATCH] QmlDesigner: Modify the background color for the ComboBoxes on ToolBar Task-number: QDS-10706 Change-Id: Id67479d771ee0f8ac6b6116703ad2821517374cd Reviewed-by: Qt CI Patch Build Bot Reviewed-by: Reviewed-by: Thomas Hartmann --- src/libs/utils/stylehelper.h | 1 + src/plugins/coreplugin/manhattanstyle.cpp | 13 +++++++++++-- .../components/componentcore/zoomaction.cpp | 1 + .../components/formeditor/backgroundaction.cpp | 1 + src/plugins/qmldesignerbase/studio/studiostyle.cpp | 5 +---- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/libs/utils/stylehelper.h b/src/libs/utils/stylehelper.h index 2b898cb1049..ffc03c1a29c 100644 --- a/src/libs/utils/stylehelper.h +++ b/src/libs/utils/stylehelper.h @@ -37,6 +37,7 @@ constexpr char C_PANEL_WIDGET[] = "panelwidget"; constexpr char C_PANEL_WIDGET_SINGLE_ROW[] = "panelwidget_singlerow"; constexpr char C_SHOW_BORDER[] = "showborder"; constexpr char C_TOP_BORDER[] = "topBorder"; +constexpr char C_TOOLBAR_ACTIONWIDGET[] = "toolbar_actionWidget"; enum ToolbarStyle { ToolbarStyleCompact, diff --git a/src/plugins/coreplugin/manhattanstyle.cpp b/src/plugins/coreplugin/manhattanstyle.cpp index e3205dae6d8..fc4cd9459a0 100644 --- a/src/plugins/coreplugin/manhattanstyle.cpp +++ b/src/plugins/coreplugin/manhattanstyle.cpp @@ -728,8 +728,17 @@ void ManhattanStyle::drawPrimitiveForPanelWidget(PrimitiveElement element, painter->drawLine(borderRect.topRight(), borderRect.bottomRight()); } } else if (option->state & State_Enabled && option->state & State_MouseOver) { - StyleHelper::drawPanelBgRect( - painter, rect, creatorTheme()->color(Theme::FancyToolButtonHoverColor)); + if (widget->property(StyleHelper::C_TOOLBAR_ACTIONWIDGET).toBool()) { + painter->save(); + painter->setBrush(creatorTheme()->color(Theme::FancyToolButtonHoverColor)); + painter->drawRoundedRect(rect, 5, 5); + painter->restore(); + } else { + StyleHelper::drawPanelBgRect(painter, + rect, + creatorTheme()->color( + Theme::FancyToolButtonHoverColor)); + } } if (option->state & State_HasFocus && (option->state & State_KeyboardFocusChange)) { QColor highlight = option->palette.highlight().color(); diff --git a/src/plugins/qmldesigner/components/componentcore/zoomaction.cpp b/src/plugins/qmldesigner/components/componentcore/zoomaction.cpp index e967be04ec8..a389442ec96 100644 --- a/src/plugins/qmldesigner/components/componentcore/zoomaction.cpp +++ b/src/plugins/qmldesigner/components/componentcore/zoomaction.cpp @@ -126,6 +126,7 @@ QWidget *ZoomAction::createWidget(QWidget *parent) if (!m_combo && parentIsToolBar(parent)) { m_combo = createZoomComboBox(parent); m_combo->setProperty(Utils::StyleHelper::C_HIDE_BORDER, true); + m_combo->setProperty(Utils::StyleHelper::C_TOOLBAR_ACTIONWIDGET, true); m_combo->setCurrentIndex(m_index); m_combo->setToolTip(m_combo->currentText()); diff --git a/src/plugins/qmldesigner/components/formeditor/backgroundaction.cpp b/src/plugins/qmldesigner/components/formeditor/backgroundaction.cpp index 07a16de7bbd..9d9139cf017 100644 --- a/src/plugins/qmldesigner/components/formeditor/backgroundaction.cpp +++ b/src/plugins/qmldesigner/components/formeditor/backgroundaction.cpp @@ -65,6 +65,7 @@ QWidget *BackgroundAction::createWidget(QWidget *parent) this, &BackgroundAction::emitBackgroundChanged); comboBox->setProperty(Utils::StyleHelper::C_HIDE_BORDER, true); + comboBox->setProperty(Utils::StyleHelper::C_TOOLBAR_ACTIONWIDGET, true); comboBox->setToolTip(tr("Set the color of the canvas.")); m_comboBox = comboBox; return comboBox; diff --git a/src/plugins/qmldesignerbase/studio/studiostyle.cpp b/src/plugins/qmldesignerbase/studio/studiostyle.cpp index 045ef43fc42..d1891ca88db 100644 --- a/src/plugins/qmldesignerbase/studio/studiostyle.cpp +++ b/src/plugins/qmldesignerbase/studio/studiostyle.cpp @@ -594,10 +594,7 @@ void StudioStyle::drawComplexControl( } } break; case CC_ComboBox: { - if (QWidget *parentWidget = widget->parentWidget()) { - QBrush bgColor = parentWidget->palette().brush(parentWidget->backgroundRole()); - painter->fillRect(option->rect, bgColor); - } + painter->fillRect(option->rect, standardPalette().brush(QPalette::ColorRole::Base)); Super::drawComplexControl(control, option, painter, widget); } break;