ColumnPreferencesFrame: fix memory leaks

Delete model and proxy model in the destructor.

QAbstractItemView::setItemDelegate() does not take ownership of the delegate
that is passed to it. We have to store it ourselves and free it.

Change-Id: I5d08d16e94a162d2a25450aec05ef672d4eaf528
Reviewed-on: https://code.wireshark.org/review/36878
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Petri-Dish: Martin Kaiser <wireshark@kaiser.cx>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Martin Kaiser 2020-04-16 22:49:52 +02:00 committed by Anders Broman
parent 183a0dfdd6
commit d5ec6882fe
2 changed files with 6 additions and 1 deletions

View File

@ -61,7 +61,8 @@ ColumnPreferencesFrame::ColumnPreferencesFrame(QWidget *parent) :
ui->deleteToolButton->setStockIcon("list-remove");
ui->columnTreeView->setModel(proxyModel_);
ui->columnTreeView->setItemDelegate(new ColumnTypeDelegate());
delegate_ = new ColumnTypeDelegate();
ui->columnTreeView->setItemDelegate(delegate_);
ui->columnTreeView->setSortingEnabled(false);
ui->columnTreeView->resizeColumnToContents(ColumnListModel::COL_DISPLAYED);
@ -74,6 +75,9 @@ ColumnPreferencesFrame::ColumnPreferencesFrame(QWidget *parent) :
ColumnPreferencesFrame::~ColumnPreferencesFrame()
{
delete delegate_;
delete proxyModel_;
delete model_;
delete ui;
}

View File

@ -33,6 +33,7 @@ private:
Ui::ColumnPreferencesFrame *ui;
ColumnListModel * model_;
ColumnProxyModel * proxyModel_;
ColumnTypeDelegate * delegate_;
private slots:
void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected);