From 50b10d6078e3df7be765f3a7f97f747509ed1ef9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20St=C3=B8ren?= Date: Wed, 12 Sep 2018 12:52:05 +0200 Subject: [PATCH] #3357 Appfwk: Table View Editor : Use deleteLater to avoid crash due to delegates beeing deleted before the actual widgets. Qt needs the delegates to redraw stuff on the way to the event loop --- Fwk/AppFwk/cafUserInterface/cafPdmUiTableViewEditor.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Fwk/AppFwk/cafUserInterface/cafPdmUiTableViewEditor.cpp b/Fwk/AppFwk/cafUserInterface/cafPdmUiTableViewEditor.cpp index 02653806cf..ba88ec4105 100644 --- a/Fwk/AppFwk/cafUserInterface/cafPdmUiTableViewEditor.cpp +++ b/Fwk/AppFwk/cafUserInterface/cafPdmUiTableViewEditor.cpp @@ -71,7 +71,7 @@ PdmUiTableViewEditor::PdmUiTableViewEditor() m_useDefaultContextMenu = false; - m_checkboxDelegate = new PdmUiCheckBoxDelegate(this); + m_checkboxDelegate = new PdmUiCheckBoxDelegate(); m_tableSelectionLevel = SelectionManager::BASE_LEVEL; m_rowSelectionLevel = SelectionManager::FIRST_LEVEL; @@ -83,6 +83,8 @@ PdmUiTableViewEditor::PdmUiTableViewEditor() //-------------------------------------------------------------------------------------------------- PdmUiTableViewEditor::~PdmUiTableViewEditor() { + if (m_checkboxDelegate) m_checkboxDelegate->deleteLater(); + if (m_delegate) m_delegate->deleteLater(); } //-------------------------------------------------------------------------------------------------- @@ -92,7 +94,7 @@ QWidget* PdmUiTableViewEditor::createEditorWidget(QWidget* parent) { m_tableModelPdm = new PdmUiTableViewQModel(parent); - m_delegate = new PdmUiTableViewDelegate(this, m_tableModelPdm); + m_delegate = new PdmUiTableViewDelegate(nullptr, m_tableModelPdm); m_tableView = new QTableView(parent); m_tableView->setShowGrid(true);