Browse Source

kicad-cli: correctly label non-existent fields

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16085
newinvert
Mike Williams 2 years ago
parent
commit
5734a55515
  1. 10
      eeschema/eeschema_jobs_handler.cpp
  2. 7
      kicad/cli/command_sch_export_bom.cpp

10
eeschema/eeschema_jobs_handler.cpp

@ -456,10 +456,12 @@ int EESCHEMA_JOBS_HANDLER::JobExportBom( JOB* aJob )
field.groupBy = std::find( aBomJob->m_fieldsGroupBy.begin(),
aBomJob->m_fieldsGroupBy.end(), field.name )
!= aBomJob->m_fieldsGroupBy.end();
field.label = ( ( aBomJob->m_fieldsLabels.size() > i )
&& !aBomJob->m_fieldsLabels[i].IsEmpty() )
? aBomJob->m_fieldsLabels[i]
: field.name;
if( ( aBomJob->m_fieldsLabels.size() > i ) && !aBomJob->m_fieldsLabels[i].IsEmpty() )
field.label = aBomJob->m_fieldsLabels[i];
else if( IsTextVar( field.name ) )
field.label = GetTextVars( field.name );
else
field.label = field.name;
preset.fieldsOrdered.emplace_back( field );
i++;

7
kicad/cli/command_sch_export_bom.cpp

@ -158,6 +158,13 @@ int CLI::SCH_EXPORT_BOM_COMMAND::doPerform( KIWAY& aKiway )
convertStringList( From_UTF8( m_argParser.get<std::string>( ARG_FIELDS ).c_str() ) );
bomJob->m_fieldsLabels =
convertStringList( From_UTF8( m_argParser.get<std::string>( ARG_LABELS ).c_str() ) );
// We only apply the default labels if the default fields are used
if( m_argParser.is_used( ARG_FIELDS ) && !m_argParser.is_used( ARG_LABELS ) )
{
bomJob->m_fieldsLabels.clear();
}
bomJob->m_fieldsGroupBy =
convertStringList( From_UTF8( m_argParser.get<std::string>( ARG_GROUP_BY ).c_str() ) );
bomJob->m_sortField = From_UTF8( m_argParser.get<std::string>( ARG_SORT_FIELD ).c_str() );

Loading…
Cancel
Save