Browse Source

CADSTAR Archive Importer: Only load the Master variant

6.0.7
Roberto Fernandez Bautista 5 years ago
committed by jean-pierre charras
parent
commit
71f9847601
  1. 10
      eeschema/sch_plugins/cadstar/cadstar_sch_archive_loader.cpp
  2. 4
      eeschema/sch_plugins/cadstar/cadstar_sch_archive_parser.cpp
  3. 12
      pcbnew/plugins/cadstar/cadstar_pcb_archive_loader.cpp
  4. 4
      pcbnew/plugins/cadstar/cadstar_pcb_archive_parser.cpp

10
eeschema/sch_plugins/cadstar/cadstar_sch_archive_loader.cpp

@ -92,9 +92,10 @@ void CADSTAR_SCH_ARCHIVE_LOADER::Load( ::SCHEMATIC* aSchematic, ::SCH_SHEET* aRo
if( Schematic.VariantHierarchy.Variants.size() > 0 )
{
wxLogWarning(
_( "The CADSTAR design contains variants which has no KiCad equivalent. All "
"components have been loaded on top of each other. " ) );
wxLogWarning( wxString::Format(
_( "The CADSTAR design contains variants which has no KiCad equivalent. Only "
"the master variant ('%s') was loaded." ),
Schematic.VariantHierarchy.Variants.at( "V0" ).Name ) );
}
if( Schematic.Groups.size() > 0 )
@ -317,6 +318,9 @@ void CADSTAR_SCH_ARCHIVE_LOADER::loadSchematicSymbolInstances()
{
SYMBOL sym = symPair.second;
if( !sym.VariantID.empty() && sym.VariantParentSymbolID != sym.ID )
continue; // Only load master Variant
if( sym.IsComponent )
{
if( mPartMap.find( sym.PartRef.RefID ) == mPartMap.end() )

4
eeschema/sch_plugins/cadstar/cadstar_sch_archive_parser.cpp

@ -650,8 +650,8 @@ void CADSTAR_SCH_ARCHIVE_PARSER::SYMBOL::Parse( XNODE* aNode )
}
else if( cNodeName == wxT( "VSYMMASTER" ) )
{
VariantParentSymbolID = GetXmlAttributeIDString( aNode, 0 );
VariantID = GetXmlAttributeIDString( aNode, 1 );
VariantParentSymbolID = GetXmlAttributeIDString( cNode, 0 );
VariantID = GetXmlAttributeIDString( cNode, 1 );
}
else if( cNodeName == wxT( "GROUPREF" ) )
{

12
pcbnew/plugins/cadstar/cadstar_pcb_archive_loader.cpp

@ -107,9 +107,10 @@ void CADSTAR_PCB_ARCHIVE_LOADER::Load( ::BOARD* aBoard )
if( Layout.VariantHierarchy.Variants.size() > 0 )
{
wxLogWarning(
_( "The CADSTAR design contains variants which has no KiCad equivalent. All "
"components have been loaded on top of each other. " ) );
wxLogWarning( wxString::Format(
_( "The CADSTAR design contains variants which has no KiCad equivalent. Only "
"the master variant ('%s') was loaded." ),
Layout.VariantHierarchy.Variants.at( "V0" ).Name ) );
}
if( Layout.ReuseBlocks.size() > 0 )
@ -1192,7 +1193,10 @@ void CADSTAR_PCB_ARCHIVE_LOADER::loadComponents()
{
for( std::pair<COMPONENT_ID, COMPONENT> compPair : Layout.Components )
{
COMPONENT& comp = compPair.second;
COMPONENT& comp = compPair.second;
if( !comp.VariantID.empty() && comp.VariantParentComponentID != comp.ID )
continue; // Only load master Variant
auto fpIter = mLibraryMap.find( comp.SymdefID );

4
pcbnew/plugins/cadstar/cadstar_pcb_archive_parser.cpp

@ -1846,8 +1846,8 @@ void CADSTAR_PCB_ARCHIVE_PARSER::COMPONENT::Parse( XNODE* aNode )
}
else if( cNodeName == wxT( "VCOMPMASTER" ) )
{
VariantParentComponentID = GetXmlAttributeIDString( aNode, 0 );
VariantID = GetXmlAttributeIDString( aNode, 1 );
VariantParentComponentID = GetXmlAttributeIDString( cNode, 0 );
VariantID = GetXmlAttributeIDString( cNode, 1 );
}
else if( cNodeName == wxT( "TEXTLOC" ) )
{

Loading…
Cancel
Save