Symbol editor: fix superfluous dialog display.
Call base object TransferDataFromWindow() to prevent Validate() from being called twice. Validation is handled completely under the hood so there is no need to call Validate() directly. Fixes lp:1820301 https://bugs.launchpad.net/kicad/+bug/1820301
This commit is contained in:
parent
0943c176a3
commit
07c61be7f0
|
@ -91,6 +91,7 @@ DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY( LIB_EDIT_FRA
|
||||||
// Show/hide columns according to the user's preference
|
// Show/hide columns according to the user's preference
|
||||||
m_config->Read( LibEditFieldsShownColumnsKey, &m_shownColumns, wxT( "0 1 2 3 4 5 6 7" ) );
|
m_config->Read( LibEditFieldsShownColumnsKey, &m_shownColumns, wxT( "0 1 2 3 4 5 6 7" ) );
|
||||||
m_grid->ShowHideColumns( m_shownColumns );
|
m_grid->ShowHideColumns( m_shownColumns );
|
||||||
|
|
||||||
// Hide non-overridden rows in aliases grid
|
// Hide non-overridden rows in aliases grid
|
||||||
m_aliasGrid->HideRow( REFERENCE );
|
m_aliasGrid->HideRow( REFERENCE );
|
||||||
m_aliasGrid->HideRow( FOOTPRINT );
|
m_aliasGrid->HideRow( FOOTPRINT );
|
||||||
|
@ -99,7 +100,8 @@ DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY( LIB_EDIT_FRA
|
||||||
attr->SetReadOnly();
|
attr->SetReadOnly();
|
||||||
m_aliasGrid->SetColAttr( FDC_NAME, attr );
|
m_aliasGrid->SetColAttr( FDC_NAME, attr );
|
||||||
m_aliasGrid->SetCellValue( VALUE, FDC_NAME, TEMPLATE_FIELDNAME::GetDefaultFieldName( VALUE ) );
|
m_aliasGrid->SetCellValue( VALUE, FDC_NAME, TEMPLATE_FIELDNAME::GetDefaultFieldName( VALUE ) );
|
||||||
m_aliasGrid->SetCellValue( DATASHEET, FDC_NAME, TEMPLATE_FIELDNAME::GetDefaultFieldName( DATASHEET ) );
|
m_aliasGrid->SetCellValue( DATASHEET, FDC_NAME,
|
||||||
|
TEMPLATE_FIELDNAME::GetDefaultFieldName( DATASHEET ) );
|
||||||
|
|
||||||
attr = new wxGridCellAttr;
|
attr = new wxGridCellAttr;
|
||||||
attr->SetEditor( new GRID_CELL_URL_EDITOR( this ) );
|
attr->SetEditor( new GRID_CELL_URL_EDITOR( this ) );
|
||||||
|
@ -125,8 +127,12 @@ DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY( LIB_EDIT_FRA
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// wxFormBuilder doesn't include this event...
|
// wxFormBuilder doesn't include this event...
|
||||||
m_grid->Connect( wxEVT_GRID_CELL_CHANGING, wxGridEventHandler( DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnGridCellChanging ), NULL, this );
|
m_grid->Connect( wxEVT_GRID_CELL_CHANGING,
|
||||||
m_aliasGrid->Connect( wxEVT_GRID_CELL_CHANGING, wxGridEventHandler( DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnAliasGridCellChanging ), NULL, this );
|
wxGridEventHandler( DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnGridCellChanging ),
|
||||||
|
NULL, this );
|
||||||
|
m_aliasGrid->Connect( wxEVT_GRID_CELL_CHANGING,
|
||||||
|
wxGridEventHandler( DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnAliasGridCellChanging ),
|
||||||
|
NULL, this );
|
||||||
|
|
||||||
m_grid->GetParent()->Layout();
|
m_grid->GetParent()->Layout();
|
||||||
m_aliasGrid->GetParent()->Layout();
|
m_aliasGrid->GetParent()->Layout();
|
||||||
|
@ -145,8 +151,12 @@ DIALOG_EDIT_COMPONENT_IN_LIBRARY::~DIALOG_EDIT_COMPONENT_IN_LIBRARY()
|
||||||
// Prevents crash bug in wxGrid's d'tor
|
// Prevents crash bug in wxGrid's d'tor
|
||||||
m_grid->DestroyTable( m_fields );
|
m_grid->DestroyTable( m_fields );
|
||||||
|
|
||||||
m_grid->Disconnect( wxEVT_GRID_CELL_CHANGING, wxGridEventHandler( DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnGridCellChanging ), NULL, this );
|
m_grid->Disconnect( wxEVT_GRID_CELL_CHANGING,
|
||||||
m_aliasGrid->Disconnect( wxEVT_GRID_CELL_CHANGING, wxGridEventHandler( DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnAliasGridCellChanging ), NULL, this );
|
wxGridEventHandler( DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnGridCellChanging ),
|
||||||
|
NULL, this );
|
||||||
|
m_aliasGrid->Disconnect( wxEVT_GRID_CELL_CHANGING,
|
||||||
|
wxGridEventHandler( DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnAliasGridCellChanging ),
|
||||||
|
NULL, this );
|
||||||
|
|
||||||
// Delete the GRID_TRICKS.
|
// Delete the GRID_TRICKS.
|
||||||
m_grid->PopEventHandler( true );
|
m_grid->PopEventHandler( true );
|
||||||
|
@ -293,7 +303,7 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::Validate()
|
||||||
|
|
||||||
bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::TransferDataFromWindow()
|
bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::TransferDataFromWindow()
|
||||||
{
|
{
|
||||||
if( !Validate() )
|
if( !wxDialog::TransferDataFromWindow() )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
LIB_ALIAS* rootAlias = m_libEntry->GetAlias( m_libEntry->GetName() );
|
LIB_ALIAS* rootAlias = m_libEntry->GetAlias( m_libEntry->GetName() );
|
||||||
|
@ -664,7 +674,8 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::checkAliasName( const wxString& aName )
|
||||||
if( existing && existing->GetPart()->GetName() != m_libEntry->GetName() )
|
if( existing && existing->GetPart()->GetName() != m_libEntry->GetName() )
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
msg.Printf( _( "Symbol name \"%s\" already exists in library \"%s\"." ), aName, library );
|
msg.Printf( _( "Symbol name \"%s\" already exists in library \"%s\"." ),
|
||||||
|
aName, library );
|
||||||
DisplayErrorMessage( this, msg );
|
DisplayErrorMessage( this, msg );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -783,6 +794,7 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnDeleteFootprintFilter( wxCommandEvent&
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnEditFootprintFilter( wxCommandEvent& event )
|
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnEditFootprintFilter( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
int idx = m_FootprintFilterListBox->GetSelection();
|
int idx = m_FootprintFilterListBox->GetSelection();
|
||||||
|
|
Loading…
Reference in New Issue