diff options
-rw-r--r-- | src/widgets/widgets/qcombobox.cpp | 1 | ||||
-rw-r--r-- | tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp | 27 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp index db65285aef..f2baa5f8e8 100644 --- a/src/widgets/widgets/qcombobox.cpp +++ b/src/widgets/widgets/qcombobox.cpp @@ -1781,6 +1781,7 @@ void QComboBox::setEditable(bool editable) view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); } QLineEdit *le = new QLineEdit(this); + le->setPalette(palette()); setLineEdit(le); } else { if (style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, this)) { diff --git a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp index 30f51e1d42..e22a900676 100644 --- a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp +++ b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp @@ -166,6 +166,7 @@ private slots: void inputMethodUpdate(); void task_QTBUG_52027_mapCompleterIndex(); void checkMenuItemPosWhenStyleSheetIsSet(); + void checkEmbeddedLineEditWhenStyleSheetIsSet(); private: PlatformInputContext m_platformInputContext; @@ -3515,5 +3516,31 @@ void tst_QComboBox::checkMenuItemPosWhenStyleSheetIsSet() qApp->setStyleSheet(oldCss); } +void tst_QComboBox::checkEmbeddedLineEditWhenStyleSheetIsSet() +{ + QString newCss = "QWidget { background-color: red; color: white; }"; + QString oldCss = qApp->styleSheet(); + qApp->setStyleSheet(newCss); + + QWidget topLevel; + auto layout = new QVBoxLayout(&topLevel); + topLevel.setLayout(layout); + auto comboBox = new QComboBox; + layout->addWidget(comboBox); + topLevel.show(); + comboBox->setEditable(true); + QApplication::setActiveWindow(&topLevel); + QVERIFY(QTest::qWaitForWindowActive(&topLevel)); + + QImage grab = comboBox->grab().toImage(); + auto color = grab.pixelColor(grab.rect().center()); + + QVERIFY(color.red() > 240); + QVERIFY(color.green() < 20); + QVERIFY(color.blue() < 20); + + qApp->setStyleSheet(oldCss); +} + QTEST_MAIN(tst_QComboBox) #include "tst_qcombobox.moc" |