aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/coreplugin/manhattanstyle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/coreplugin/manhattanstyle.cpp')
-rw-r--r--src/plugins/coreplugin/manhattanstyle.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/plugins/coreplugin/manhattanstyle.cpp b/src/plugins/coreplugin/manhattanstyle.cpp
index 52074ffc57..9326552159 100644
--- a/src/plugins/coreplugin/manhattanstyle.cpp
+++ b/src/plugins/coreplugin/manhattanstyle.cpp
@@ -359,7 +359,7 @@ int ManhattanStyle::styleHint(StyleHint hint, const QStyleOption *option, const
ret = true;
break;
case QStyle::SH_EtchDisabledText:
- if (panelWidget(widget))
+ if (panelWidget(widget) || qobject_cast<const QMenu *> (widget) )
ret = false;
break;
case QStyle::SH_ItemView_ArrowKeysNavigateIntoChildren:
@@ -614,7 +614,7 @@ void ManhattanStyle::drawPrimitive(PrimitiveElement element, const QStyleOption
void ManhattanStyle::drawControl(ControlElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget) const
{
- if (!panelWidget(widget))
+ if (!panelWidget(widget) && !qobject_cast<const QMenu *>(widget))
return QProxyStyle::drawControl(element, option, painter, widget);
switch (element) {
@@ -645,6 +645,25 @@ void ManhattanStyle::drawControl(ControlElement element, const QStyleOption *opt
}
break;
+ case CE_MenuItem:
+ painter->save();
+ if (const QStyleOptionMenuItem *mbi = qstyleoption_cast<const QStyleOptionMenuItem *>(option)) {
+ const bool enabled = mbi->state & State_Enabled;
+ QStyleOptionMenuItem item = *mbi;
+ item.rect = mbi->rect;
+ const QColor color = creatorTheme()->color(enabled
+ ? Theme::MenuItemTextColorNormal
+ : Theme::MenuItemTextColorDisabled);
+ if (color.isValid()) {
+ QPalette pal = mbi->palette;
+ pal.setBrush(QPalette::Text, color);
+ item.palette = pal;
+ }
+ QProxyStyle::drawControl(element, &item, painter, widget);
+ }
+ painter->restore();
+ break;
+
case CE_MenuBarItem:
painter->save();
if (const QStyleOptionMenuItem *mbi = qstyleoption_cast<const QStyleOptionMenuItem *>(option)) {