diff options
author | Thierry Bastian <thierry.bastian@nokia.com> | 2009-06-25 14:41:26 (GMT) |
---|---|---|
committer | Thierry Bastian <thierry.bastian@nokia.com> | 2009-06-25 14:42:44 (GMT) |
commit | b393abc9ce2e2a5396e655895fe653f9e06e355f (patch) | |
tree | 18d7097c936f6db6fb71eb9fbefe96c124a7acc3 /src/gui/widgets/qmenu.cpp | |
parent | 3e36b311710009039e8ffdfa46702e012f25785b (diff) | |
download | Qt-b393abc9ce2e2a5396e655895fe653f9e06e355f.zip Qt-b393abc9ce2e2a5396e655895fe653f9e06e355f.tar.gz Qt-b393abc9ce2e2a5396e655895fe653f9e06e355f.tar.bz2 |
QMenu: Fixed geometry for actions with specific font
Task-number: 256918
Diffstat (limited to 'src/gui/widgets/qmenu.cpp')
-rw-r--r-- | src/gui/widgets/qmenu.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp index fc55a2c..15eeb09 100644 --- a/src/gui/widgets/qmenu.cpp +++ b/src/gui/widgets/qmenu.cpp @@ -235,16 +235,15 @@ void QMenuPrivate::calcActionRects(QMap<QAction*, QRect> &actionRects, QList<QAc for(int i = 0; i < items.count(); i++) { QAction *action = items.at(i); - QFontMetrics fm(action->font().resolve(q->font())); - QSize sz; - //let the style modify the above size.. QStyleOptionMenuItem opt; q->initStyleOption(&opt, action); opt.rect = q->rect(); + const QFontMetrics &fm = opt.fontMetrics; + QSize sz; if (QWidget *w = widgetItems.value(action)) { - sz=w->sizeHint().expandedTo(w->minimumSize()).expandedTo(w->minimumSizeHint()).boundedTo(w->maximumSize()); + sz = w->sizeHint().expandedTo(w->minimumSize()).expandedTo(w->minimumSizeHint()).boundedTo(w->maximumSize()); } else { //calc what I think the size is.. if (action->isSeparator()) { @@ -1178,7 +1177,8 @@ void QMenu::initStyleOption(QStyleOptionMenuItem *option, const QAction *action) else option->palette.setCurrentColorGroup(QPalette::Disabled); - option->font = action->font(); + option->font = action->font().resolve(font()); + option->fontMetrics = QFontMetrics(option->font); if (d->currentAction && d->currentAction == action && !d->currentAction->isSeparator()) { option->state |= QStyle::State_Selected |