Library Editor field edit dialog takes data from LIB_MANAGER

This commit is contained in:
Maciej Suminski 2017-11-12 20:55:34 +01:00
parent 5c61b61c27
commit 3589244ff3
1 changed files with 8 additions and 6 deletions

View File

@ -35,6 +35,7 @@
#include <symbol_lib_table.h>
#include <template_fieldnames.h>
#include <dialog_edit_one_field.h>
#include <lib_manager.h>
void LIB_EDIT_FRAME::EditField( LIB_FIELD* aField )
@ -42,14 +43,12 @@ void LIB_EDIT_FRAME::EditField( LIB_FIELD* aField )
wxString newFieldValue;
wxString title;
wxString caption;
wxString oldName;
if( aField == NULL )
return;
LIB_PART* parent = aField->GetParent();
wxASSERT( parent );
wxCHECK( parent, /* void */ );
// Editing the component value field is equivalent to creating a new component based
// on the current component. Set the dialog message to inform the user.
@ -85,7 +84,7 @@ void LIB_EDIT_FRAME::EditField( LIB_FIELD* aField )
wxString lib = GetCurLib();
// Test the current library for name conflicts.
if( !lib.empty() && Prj().SchSymbolLibTable()->LoadSymbol( lib, newFieldValue ) )
if( !lib.empty() && m_libMgr->PartExists( newFieldValue, lib ) )
{
msg.Printf( _(
"The name '%s' conflicts with an existing entry in the component library '%s'.\n\n"
@ -124,7 +123,7 @@ void LIB_EDIT_FRAME::EditField( LIB_FIELD* aField )
bool conflicts = false;
wxArrayString libAliasNames, symbolAliasNames;
Prj().SchSymbolLibTable()->EnumerateSymbolLib( lib, libAliasNames );
libAliasNames = m_libMgr->GetAliasNames( lib );
symbolAliasNames = parent->GetAliasNames();
for( size_t i = 0; i < symbolAliasNames.GetCount(); i++ )
@ -156,7 +155,7 @@ void LIB_EDIT_FRAME::EditField( LIB_FIELD* aField )
for( size_t i = 0; i < aliases.GetCount(); i++ )
{
if( Prj().SchSymbolLibTable()->LoadSymbol( lib, aliases[ i ] ) != NULL )
if( m_libMgr->GetAlias( aliases[i], lib ) != NULL )
parent->RemoveAlias( aliases[ i ] );
}
}
@ -164,6 +163,9 @@ void LIB_EDIT_FRAME::EditField( LIB_FIELD* aField )
if( !parent->HasAlias( m_aliasName ) )
m_aliasName = newFieldValue;
//m_libMgr->RemovePart( fieldText, lib );
m_libMgr->UpdatePart( parent, lib, fieldText );
}
dlg.UpdateField( aField );