diff options
Diffstat (limited to 'src/widgets/widgets/qcombobox.cpp')
-rw-r--r-- | src/widgets/widgets/qcombobox.cpp | 13 |
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) |