diff options
author | Martin Kaiser <wireshark@kaiser.cx> | 2020-04-16 22:49:52 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2020-04-19 14:43:57 +0000 |
commit | d5ec6882fe1122c9e7cae7a200322381584192a5 (patch) | |
tree | 8ec610d51d74bd6b19562a8b1399e51164e9c0fc | |
parent | 183a0dfdd6862e06fe94a6c415ef9458b7dc1cd9 (diff) |
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>
-rw-r--r-- | ui/qt/column_preferences_frame.cpp | 6 | ||||
-rw-r--r-- | ui/qt/column_preferences_frame.h | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/ui/qt/column_preferences_frame.cpp b/ui/qt/column_preferences_frame.cpp index a98c0f8a96..f56c3019c2 100644 --- a/ui/qt/column_preferences_frame.cpp +++ b/ui/qt/column_preferences_frame.cpp @@ -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; } diff --git a/ui/qt/column_preferences_frame.h b/ui/qt/column_preferences_frame.h index 7477b4f8d8..e6641fe898 100644 --- a/ui/qt/column_preferences_frame.h +++ b/ui/qt/column_preferences_frame.h @@ -33,6 +33,7 @@ private: Ui::ColumnPreferencesFrame *ui; ColumnListModel * model_; ColumnProxyModel * proxyModel_; + ColumnTypeDelegate * delegate_; private slots: void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); |