aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorMartin Kaiser <wireshark@kaiser.cx>2020-04-16 22:49:52 +0200
committerAnders Broman <a.broman58@gmail.com>2020-04-19 14:43:57 +0000
commitd5ec6882fe1122c9e7cae7a200322381584192a5 (patch)
tree8ec610d51d74bd6b19562a8b1399e51164e9c0fc /ui
parent183a0dfdd6862e06fe94a6c415ef9458b7dc1cd9 (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>
Diffstat (limited to 'ui')
-rw-r--r--ui/qt/column_preferences_frame.cpp6
-rw-r--r--ui/qt/column_preferences_frame.h1
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);