tst_QComboBox: fix memleaks in task_QTBUG_52027_mapCompleterIndex()

Both the QCompleter and the QSortFilterProxy objects are not owned by
the QComboBox merely by setting them as completer and model. Having no
other QObject parents, and having being allocated on the heap, they
were leaked.

To fix, give them the combo-box as QObject parent.

Amends 8b6d6d4832ea8ed5f9857d5ddf06408ee9d0b4e0.

Pick-to: 6.9 6.8 6.5 5.15
Change-Id: I5c3594272a5283a3fbaeb9885d315047b04f30de
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
Marc Mutz 2025-03-31 21:27:43 +02:00
parent c41592c900
commit 27279e01d2

View File

@ -3582,7 +3582,7 @@ void tst_QComboBox::task_QTBUG_52027_mapCompleterIndex()
cbox.setInsertPolicy(QComboBox::NoInsert); cbox.setInsertPolicy(QComboBox::NoInsert);
cbox.addItems(words); cbox.addItems(words);
QCompleter *completer = new QCompleter(altWords); QCompleter *completer = new QCompleter(altWords, &cbox);
completer->setCaseSensitivity(Qt::CaseInsensitive); completer->setCaseSensitivity(Qt::CaseInsensitive);
cbox.setCompleter(completer); cbox.setCompleter(completer);
@ -3605,7 +3605,7 @@ void tst_QComboBox::task_QTBUG_52027_mapCompleterIndex()
cbox.lineEdit()->selectAll(); cbox.lineEdit()->selectAll();
cbox.lineEdit()->del(); cbox.lineEdit()->del();
QSortFilterProxyModel* model = new QSortFilterProxyModel(); QSortFilterProxyModel* model = new QSortFilterProxyModel(&cbox);
model->setSourceModel(cbox.model()); model->setSourceModel(cbox.model());
model->setFilterFixedString("foobar1"); model->setFilterFixedString("foobar1");
completer->setModel(model); completer->setModel(model);