KiCad PCB EDA Suite
Loading...
Searching...
No Matches
symbol_import_reconciler.h File Reference
#include <map>
#include <memory>
#include <string>
#include <vector>
#include <wx/string.h>
#include <reporter.h>

Go to the source code of this file.

Classes

struct  SYMBOL_IMPORT_RECONCILE_RESULT
 Outcome of a post-import symbol-library reconciliation pass. More...
 
class  SYMBOL_IMPORT_RECONCILER
 Frame-independent, non-interactive service that reconciles the symbol-library references of a freshly imported (non-KiCad) schematic so that every symbol LIB_ID resolves to a registered project library. More...
 

Functions

SYMBOL_IMPORT_RECONCILE_RESULT ReconcileImportedSymbols (SCH_IO &aPlugin, SCHEMATIC &aSchematic, PROJECT &aProject, const wxString &aSchematicPath, const std::map< std::string, UTF8 > *aProperties, REPORTER &aReporter)
 Reconcile aSchematic against the definitions aPlugin retained while loading it.
 

Function Documentation

◆ ReconcileImportedSymbols()

SYMBOL_IMPORT_RECONCILE_RESULT ReconcileImportedSymbols ( SCH_IO & aPlugin,
SCHEMATIC & aSchematic,
PROJECT & aProject,
const wxString & aSchematicPath,
const std::map< std::string, UTF8 > * aProperties,
REPORTER & aReporter )

Reconcile aSchematic against the definitions aPlugin retained while loading it.

Shared by the interactive import and the kicad-cli sch import job so both materialize the project symbol library and re-point LIB_IDs. Importers publishing no definitions of their own are skipped, and a reconciliation failure is reported rather than thrown so an import is never aborted by it.

Parameters
aPropertiescarries the manager-chosen cache nickname and provenance source libraries; a standalone import passes nullptr and the nickname is derived from aSchematicPath.

Definition at line 480 of file symbol_import_reconciler.cpp.

References _, SCH_IO::GetImportedCachedLibrarySymbols(), PROJECT::GetProjectPath(), IMPORT_PROJ_PROPS::MakeSymbolCacheNickname(), IMPORT_PROJ_PROPS::ReadSymbolProps(), SYMBOL_IMPORT_RECONCILER::Reconcile(), REPORTER::Report(), result, RPT_SEVERITY_ERROR, PROJECT_SCH::SymbolLibAdapter(), and IO_ERROR::What().

Referenced by SCH_EDIT_FRAME::importFile(), and EESCHEMA_JOBS_HANDLER::JobImport().