Symbol Fields: move more strings to template field names usage

This commit is contained in:
Mike Williams 2023-03-16 09:53:37 -04:00
parent 6a726709b5
commit 8433f94886
3 changed files with 54 additions and 28 deletions

View File

@ -341,23 +341,26 @@ void DIALOG_SYMBOL_FIELDS_TABLE::SetupColumnProperties()
attr->SetReadOnly( false );
// Set some column types to specific editors
if( m_dataModel->GetColFieldName( col ) == _( "Reference" ) )
if( m_dataModel->GetColFieldName( col )
== TEMPLATE_FIELDNAME::GetDefaultFieldName( REFERENCE_FIELD ) )
{
attr->SetReadOnly();
m_grid->SetColAttr( col, attr );
}
else if( m_dataModel->GetColFieldName( col ) == _( "Footprint" ) )
else if( m_dataModel->GetColFieldName( col )
== TEMPLATE_FIELDNAME::GetDefaultFieldName( FOOTPRINT_FIELD ) )
{
attr->SetEditor( new GRID_CELL_FPID_EDITOR( this, wxEmptyString ) );
m_grid->SetColAttr( col, attr );
}
else if( m_dataModel->GetColFieldName( col ) == _( "Datasheet" ) )
else if( m_dataModel->GetColFieldName( col )
== TEMPLATE_FIELDNAME::GetDefaultFieldName( DATASHEET_FIELD ) )
{
// set datasheet column viewer button
attr->SetEditor( new GRID_CELL_URL_EDITOR( this, Prj().SchSearchS() ) );
m_grid->SetColAttr( col, attr );
}
else if( m_dataModel->GetColFieldName( col ) == _( "Quantity" ) )
else if( m_dataModel->GetColFieldName( col ) == wxS( "Quantity" ) )
{
attr->SetReadOnly();
m_grid->SetColAttr( col, attr );
@ -541,6 +544,34 @@ void DIALOG_SYMBOL_FIELDS_TABLE::AddField( const wxString& aFieldName,
void DIALOG_SYMBOL_FIELDS_TABLE::LoadFieldNames()
{
// Add mandatory fields first
for( int i = 0; i < MANDATORY_FIELDS; ++i )
{
bool show = false;
bool groupBy = false;
switch( i )
{
case REFERENCE_FIELD:
case VALUE_FIELD:
case FOOTPRINT_FIELD:
show = true;
groupBy = true;
break;
case DATASHEET_FIELD:
show = true;
groupBy = false;
break;
}
AddField( TEMPLATE_FIELDNAME::GetDefaultFieldName( i ),
TEMPLATE_FIELDNAME::GetDefaultFieldName( i, true ), show, groupBy );
}
// Generated field that isn't in any symbol
AddField( wxS( "Quantity" ), _( "Qty" ), true, false );
// User fields second
std::set<wxString> userFieldNames;
for( unsigned i = 0; i < m_symbolsList.GetCount(); ++i )
@ -551,13 +582,6 @@ void DIALOG_SYMBOL_FIELDS_TABLE::LoadFieldNames()
userFieldNames.insert( symbol->GetFields()[j].GetName() );
}
AddField( _( "Reference" ), wxT( "Reference" ), true, true );
AddField( _( "Value" ), wxT( "Value" ), true, true );
AddField( _( "Footprint" ), wxT( "Footprint" ), true, true );
AddField( _( "Datasheet" ), wxT( "Datasheet" ), true, false );
AddField( _( "Quantity" ), wxT( "Qty" ), true, false );
for( const wxString& fieldName : userFieldNames )
AddField( fieldName, fieldName, true, false );
@ -568,8 +592,6 @@ void DIALOG_SYMBOL_FIELDS_TABLE::LoadFieldNames()
if( userFieldNames.count( templateFieldname.m_Name ) == 0 )
AddField( templateFieldname.m_Name, templateFieldname.m_Name, false, false );
}
m_dataModel->SetFieldsOrder( m_schSettings.m_BomSettings.column_order );
}
@ -1505,9 +1527,9 @@ void DIALOG_SYMBOL_FIELDS_TABLE::onBomPresetChanged( wxCommandEvent& aEvent )
void DIALOG_SYMBOL_FIELDS_TABLE::doApplyBomPreset( const BOM_PRESET& aPreset )
{
// Set a good default sort
int fieldNameCol = m_dataModel->GetFieldNameCol( _( "Reference" ) );
m_dataModel->SetSorting( fieldNameCol, false );
m_grid->SetSortingColumn( fieldNameCol, false );
int refCol = m_dataModel->GetFieldNameCol(
TEMPLATE_FIELDNAME::GetDefaultFieldName( REFERENCE_FIELD ) );
m_grid->SetSortingColumn( refCol, false );
for( int i = 0; i < m_fieldsCtrl->GetItemCount(); i++ )
{

View File

@ -205,6 +205,19 @@ void FIELDS_EDITOR_GRID_DATA_MODEL::SetValue( int aRow, int aCol, const wxString
}
bool FIELDS_EDITOR_GRID_DATA_MODEL::ColIsReference( int aCol )
{
wxCHECK( aCol >= 0 && aCol < (int) m_cols.size(), false );
return m_cols[aCol].m_fieldName == TEMPLATE_FIELDNAME::GetDefaultFieldName( REFERENCE_FIELD );
}
bool FIELDS_EDITOR_GRID_DATA_MODEL::ColIsQuantity( int aCol )
{
wxCHECK( aCol >= 0 && aCol < (int) m_cols.size(), false );
return m_cols[aCol].m_fieldName == wxS( "Quantity" );
}
bool FIELDS_EDITOR_GRID_DATA_MODEL::cmp( const DATA_MODEL_ROW& lhGroup,
const DATA_MODEL_ROW& rhGroup,
FIELDS_EDITOR_GRID_DATA_MODEL* dataModel, int sortCol,
@ -286,7 +299,7 @@ bool FIELDS_EDITOR_GRID_DATA_MODEL::groupMatch( const SCH_REFERENCE& lhRef,
const SCH_REFERENCE& rhRef )
{
int refCol = GetFieldNameCol( _( "Reference" ) );
int refCol = GetFieldNameCol( TEMPLATE_FIELDNAME::GetDefaultFieldName( REFERENCE_FIELD ) );
bool matchFound = false;
// First check the reference column. This can be done directly out of the

View File

@ -111,17 +111,8 @@ public:
return m_rows[aRow].m_Refs;
}
bool ColIsReference( int aCol )
{
wxCHECK( aCol >= 0 && aCol < (int) m_cols.size(), false );
return m_cols[aCol].m_fieldName == _( "Reference" );
}
bool ColIsQuantity( int aCol )
{
wxCHECK( aCol >= 0 && aCol < (int) m_cols.size(), false );
return m_cols[aCol].m_fieldName == _( "Quantity" );
}
bool ColIsReference( int aCol );
bool ColIsQuantity( int aCol );
void SetSorting( int aCol, bool ascending )
{