summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSami Merila <sami.merila@nokia.com>2011-03-25 07:33:39 (GMT)
committerSami Merila <sami.merila@nokia.com>2011-03-25 07:33:39 (GMT)
commitc8a8a54d77b82b142f751d84175e010995abfa97 (patch)
treef11ead4a068827a14fe45fb2dbb75f2ad1b7b6e4 /src
parent2a1e23be4a730bdcbadb4f59075828bc9bad62c1 (diff)
downloadQt-c8a8a54d77b82b142f751d84175e010995abfa97.zip
Qt-c8a8a54d77b82b142f751d84175e010995abfa97.tar.gz
Qt-c8a8a54d77b82b142f751d84175e010995abfa97.tar.bz2
QS60Style: Support for Menu separators
Previously QS60Style didn't draw, nor reserve space for menu separators. Now,one pixel wide line is drawn across menu rectangle. Line color is picked from active device theme. Task-number: QTBUG-10054 Reviewed-by: Tomi Vihria
Diffstat (limited to 'src')
-rw-r--r--src/gui/styles/qs60style.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index 1320f5e..bd4a59c 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -1743,16 +1743,26 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
QStyleOptionMenuItem optionMenuItem = *menuItem;
bool drawSubMenuIndicator = false;
+ bool drawSeparator = false;
switch(menuItem->menuItemType) {
- case QStyleOptionMenuItem::Scroller:
case QStyleOptionMenuItem::Separator:
- return; // no separators or scrollers in S60 menus
+ drawSeparator = true;
+ break;
+ case QStyleOptionMenuItem::Scroller:
+ return; // no scrollers in S60 menus
case QStyleOptionMenuItem::SubMenu:
drawSubMenuIndicator = true;
break;
default:
break;
}
+ if (drawSeparator) {
+ painter->save();
+ painter->setPen(QS60StylePrivate::s60Color(QS60StyleEnums::CL_QsnLineColors, 10, 0));
+ painter->drawLine(optionMenuItem.rect.topLeft(), optionMenuItem.rect.bottomRight());
+ painter->restore();
+ return;
+ }
const bool enabled = optionMenuItem.state & State_Enabled;
const bool checkable = optionMenuItem.checkType != QStyleOptionMenuItem::NotCheckable;
bool ignoreCheckMark = false;
@@ -2627,7 +2637,7 @@ QSize QS60Style::sizeFromContents(ContentsType ct, const QStyleOption *opt,
case CT_ItemViewItem:
if (const QStyleOptionMenuItem *menuItem = qstyleoption_cast<const QStyleOptionMenuItem *>(opt)) {
if (menuItem->menuItemType == QStyleOptionMenuItem::Separator) {
- sz = QSize();
+ sz = QSize(menuItem->rect.width(), 1);
break;
}
}