Eeschema: add create symbol library to legacy schematic I/O plugin.
This commit is contained in:
parent
fdebcd8a6d
commit
4f0c2ad083
|
@ -304,10 +304,12 @@ public:
|
|||
|
||||
/**
|
||||
* Function SaveSymbol
|
||||
* will write @a aSymbol to an existing library located at @a aLibraryPath.
|
||||
* If a #LIB_PART by the same name already exists or there are any conflicting
|
||||
* alias names, an exception is thrown. Symbol libraries cannot have duplicate
|
||||
* alias names.
|
||||
*
|
||||
* will write @a aSymbol to an existing library located at @a aLibraryPath. If a #LIB_PART
|
||||
* by the same name already exists or there are any conflicting alias names, the new
|
||||
* #LIB_PART will silently overwrite any existing aliases and/or part becaue libraries
|
||||
* cannot have duplicate alias names. It is the responsibility of the caller to check
|
||||
* the library for conflicts before saving.
|
||||
*
|
||||
* @param aLibraryPath is a locator for the "library", usually a directory, file,
|
||||
* or URL containing several symbols.
|
||||
|
@ -321,7 +323,7 @@ public:
|
|||
* The caller continues to own this object (plugin may not delete it), and
|
||||
* plugins should expect it to be optionally NULL.
|
||||
*
|
||||
* @throw IO_ERROR if there is a problem saving or duplicate alias names.
|
||||
* @throw IO_ERROR if there is a problem saving.
|
||||
*/
|
||||
virtual void SaveSymbol( const wxString& aLibraryPath, const LIB_PART* aSymbol,
|
||||
const PROPERTIES* aProperties = NULL );
|
||||
|
@ -374,23 +376,22 @@ public:
|
|||
const PROPERTIES* aProperties = NULL );
|
||||
|
||||
/**
|
||||
* Function SymbolLibCreate
|
||||
* creates a new empty footprint library at @a aLibraryPath empty. It is an
|
||||
* error to attempt to create an existing library or to attempt to create
|
||||
* on a "read only" location.
|
||||
* Function CreateSymbolLib
|
||||
* creates a new empty symbol library at @a aLibraryPath. It is an error to attempt
|
||||
* to create an existing library or to attempt to create on a "read only" location.
|
||||
*
|
||||
* @param aLibraryPath is a locator for the "library", usually a directory, file,
|
||||
* or URL containing several footprints.
|
||||
*
|
||||
* @param aProperties is an associative array that can be used to tell the
|
||||
* library create function anything special, because it can take any number of
|
||||
* additional named tuning arguments that the plugin is known to support.
|
||||
* The caller continues to own this object (plugin may not delete it), and
|
||||
* plugins should expect it to be optionally NULL.
|
||||
* @param aProperties is an associative array that can be used to tell the library
|
||||
* create function anything special, because it can take any number
|
||||
* of additional named tuning arguments that the plugin is known to
|
||||
* support. The caller continues to own this object (plugin may not
|
||||
* delete it), and plugins should expect it to be optionally NULL.
|
||||
*
|
||||
* @throw IO_ERROR if there is a problem finding the library, or creating it.
|
||||
*/
|
||||
virtual void SymbolLibCreate( const wxString& aLibraryPath,
|
||||
virtual void CreateSymbolLib( const wxString& aLibraryPath,
|
||||
const PROPERTIES* aProperties = NULL );
|
||||
|
||||
/**
|
||||
|
|
|
@ -3373,3 +3373,24 @@ void SCH_LEGACY_PLUGIN::DeleteSymbol( const wxString& aLibraryPath, const wxStri
|
|||
|
||||
m_cache->DeleteSymbol( aAliasName );
|
||||
}
|
||||
|
||||
|
||||
void SCH_LEGACY_PLUGIN::CreateSymbolLib( const wxString& aLibraryPath,
|
||||
const PROPERTIES* aProperties )
|
||||
{
|
||||
if( wxFileExists( aLibraryPath ) )
|
||||
{
|
||||
THROW_IO_ERROR( wxString::Format(
|
||||
_( "symbol library '%s' already exists, cannot create a new library" ),
|
||||
aLibraryPath.GetData() ) );
|
||||
}
|
||||
|
||||
LOCALE_IO toggle;
|
||||
|
||||
m_props = aProperties;
|
||||
|
||||
delete m_cache;
|
||||
m_cache = new SCH_LEGACY_PLUGIN_CACHE( aLibraryPath );
|
||||
m_cache->Save();
|
||||
m_cache->Load(); // update m_writable and m_mod_time
|
||||
}
|
||||
|
|
|
@ -92,9 +92,10 @@ public:
|
|||
const PROPERTIES* aProperties = NULL ) override;
|
||||
void DeleteAlias( const wxString& aLibraryPath, const wxString& aAliasName,
|
||||
const PROPERTIES* aProperties = NULL ) override;
|
||||
|
||||
void DeleteSymbol( const wxString& aLibraryPath, const wxString& aAliasName,
|
||||
const PROPERTIES* aProperties = NULL ) override;
|
||||
void CreateSymbolLib( const wxString& aLibraryPath,
|
||||
const PROPERTIES* aProperties = NULL ) override;
|
||||
|
||||
// Temporary for testing using PART_LIB instead of SCH_PLUGIN.
|
||||
void TransferCache( PART_LIB& aTarget ) override;
|
||||
|
|
|
@ -107,7 +107,7 @@ void SCH_PLUGIN::DeleteSymbol( const wxString& aLibraryPath, const wxString& aAl
|
|||
}
|
||||
|
||||
|
||||
void SCH_PLUGIN::SymbolLibCreate( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||
void SCH_PLUGIN::CreateSymbolLib( const wxString& aLibraryPath, const PROPERTIES* aProperties )
|
||||
{
|
||||
// not pure virtual so that plugins only have to implement subset of the SCH_PLUGIN interface.
|
||||
not_implemented( this, __FUNCTION__ );
|
||||
|
|
Loading…
Reference in New Issue