Add wxDataViewEvent::IsEditCancelled() and support for vetoing edit events.
Currently this is only implemented in the generic wxDataViewCtrl, the native GTK/OSX ports should be modified to support this later. Closes #13323. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -763,21 +763,27 @@ bool wxDataViewRendererBase::FinishEditing()
|
||||
|
||||
DestroyEditControl();
|
||||
|
||||
if (!Validate(value))
|
||||
return false;
|
||||
|
||||
bool isValid = Validate(value);
|
||||
unsigned int col = GetOwner()->GetModelColumn();
|
||||
dv_ctrl->GetModel()->ChangeValue(value, m_item, col);
|
||||
|
||||
// Now we should send Editing Done event
|
||||
wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, dv_ctrl->GetId() );
|
||||
event.SetDataViewColumn( GetOwner() );
|
||||
event.SetModel( dv_ctrl->GetModel() );
|
||||
event.SetItem( m_item );
|
||||
event.SetValue( value );
|
||||
event.SetColumn( col );
|
||||
event.SetEditCanceled( !isValid );
|
||||
event.SetEventObject( dv_ctrl );
|
||||
dv_ctrl->GetEventHandler()->ProcessEvent( event );
|
||||
|
||||
return true;
|
||||
if ( isValid && event.IsAllowed() )
|
||||
{
|
||||
dv_ctrl->GetModel()->ChangeValue(value, m_item, col);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void wxDataViewRendererBase::PrepareForItem(const wxDataViewModel *model,
|
||||
|
||||
Reference in New Issue
Block a user