#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
This commit is contained in:
Jacob Støren 2018-09-12 12:52:05 +02:00
parent 3d752995d2
commit 50b10d6078

View File

@ -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);