summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets/qcombobox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/widgets/qcombobox.cpp')
-rw-r--r--src/widgets/widgets/qcombobox.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp
index eae0cbbd06..2b064c3184 100644
--- a/src/widgets/widgets/qcombobox.cpp
+++ b/src/widgets/widgets/qcombobox.cpp
@@ -165,10 +165,15 @@ QStyleOptionMenuItem QComboMenuDelegate::getStyleOption(const QStyleOptionViewIt
if (mCombo->testAttribute(Qt::WA_SetFont)
|| mCombo->testAttribute(Qt::WA_MacSmallSize)
|| mCombo->testAttribute(Qt::WA_MacMiniSize)
- || mCombo->font() != qt_app_fonts_hash()->value("QComboBox", QFont()))
+ || mCombo->font() != qt_app_fonts_hash()->value("QComboBox", QFont())) {
menuOption.font = mCombo->font();
- else
- menuOption.font = qt_app_fonts_hash()->value("QComboMenuItem", mCombo->font());
+ } else {
+ QVariant fontRoleData = index.data(Qt::FontRole);
+ if (fontRoleData.isValid())
+ menuOption.font = fontRoleData.value<QFont>();
+ else
+ menuOption.font = qt_app_fonts_hash()->value("QComboMenuItem", mCombo->font());
+ }
menuOption.fontMetrics = QFontMetrics(menuOption.font);
@@ -1275,8 +1280,8 @@ void QComboBoxPrivate::_q_emitHighlighted(const QModelIndex &index)
void QComboBoxPrivate::_q_emitCurrentIndexChanged(const QModelIndex &index)
{
Q_Q(QComboBox);
- emit q->currentIndexChanged(index.row());
const QString text = itemText(index);
+ emit q->currentIndexChanged(index.row());
emit q->currentIndexChanged(text);
// signal lineEdit.textChanged already connected to signal currentTextChanged, so don't emit double here
if (!lineEdit)