diff --git a/src/Wt/WItemDelegate.C b/src/Wt/WItemDelegate.C index bf0751a53..7136f3059 100644 --- a/src/Wt/WItemDelegate.C +++ b/src/Wt/WItemDelegate.C @@ -450,9 +450,12 @@ cpp17::any WItemDelegate::editState(WWidget *editor, WT_MAYBE_UNUSED const WMode { IndexContainerWidget *w = dynamic_cast(editor); - WLineEdit *lineEdit = dynamic_cast(w->widget(0)); + if (w) { + WLineEdit *lineEdit = dynamic_cast(w->widget(0)); - return cpp17::any(lineEdit->text()); + return cpp17::any(lineEdit->text()); + } + return {}; } void WItemDelegate::setEditState(WWidget *editor, WT_MAYBE_UNUSED const WModelIndex& index, @@ -460,9 +463,11 @@ void WItemDelegate::setEditState(WWidget *editor, WT_MAYBE_UNUSED const WModelIn { IndexContainerWidget *w = dynamic_cast(editor); - WLineEdit *lineEdit = dynamic_cast(w->widget(0)); + if (w) { + WLineEdit *lineEdit = dynamic_cast(w->widget(0)); - lineEdit->setText(cpp17::any_cast(value)); + lineEdit->setText(cpp17::any_cast(value)); + } } void WItemDelegate::setModelData(const cpp17::any& editState,