Symbol editor: remove duplicate legacy code path

Fixes https://gitlab.com/kicad/code/kicad/issues/7139
This commit is contained in:
Michael Kavanagh 2021-01-17 11:14:37 +00:00
parent e10025db64
commit 65f90f141f
5 changed files with 0 additions and 217 deletions

View File

@ -59,10 +59,6 @@ enum id_eeschema_frm
/* Library editor horizontal toolbar IDs. */
ID_LIBEDIT_SELECT_PART_NUMBER,
/* Library editor vertical toolbar IDs. */
ID_LIBEDIT_IMPORT_BODY_BUTT,
ID_LIBEDIT_EXPORT_BODY_BUTT,
/* Library viewer horizontal toolbar IDs */
ID_LIBVIEW_SELECT_PART,
ID_LIBVIEW_NEXT,

View File

@ -79,10 +79,6 @@ BEGIN_EVENT_TABLE( SYMBOL_EDIT_FRAME, EDA_DRAW_FRAME )
EVT_COMBOBOX( ID_LIBEDIT_SELECT_PART_NUMBER, SYMBOL_EDIT_FRAME::OnSelectUnit )
// Right vertical toolbar.
EVT_TOOL( ID_LIBEDIT_IMPORT_BODY_BUTT, SYMBOL_EDIT_FRAME::OnImportBody )
EVT_TOOL( ID_LIBEDIT_EXPORT_BODY_BUTT, SYMBOL_EDIT_FRAME::OnExportBody )
// menubar commands
EVT_MENU( wxID_EXIT, SYMBOL_EDIT_FRAME::OnExitKiCad )
EVT_MENU( wxID_CLOSE, SYMBOL_EDIT_FRAME::CloseWindow )
@ -487,9 +483,6 @@ void SYMBOL_EDIT_FRAME::setupUIConditions()
mgr->SetConditions( EE_ACTIONS::placeSymbolAnchor,
EDIT_TOOL( EE_ACTIONS::placeSymbolAnchor ) );
RegisterUIUpdateHandler( ID_LIBEDIT_IMPORT_BODY_BUTT, ENABLE( isEditableCond ) );
RegisterUIUpdateHandler( ID_LIBEDIT_EXPORT_BODY_BUTT, ENABLE( haveSymbolCond ) );
#undef CHECK
#undef ENABLE
#undef EDIT_TOOL
@ -783,22 +776,6 @@ SYMBOL_LIBRARY_MANAGER& SYMBOL_EDIT_FRAME::GetLibManager()
}
void SYMBOL_EDIT_FRAME::OnImportBody( wxCommandEvent& aEvent )
{
m_toolManager->DeactivateTool();
LoadOneSymbol();
m_drawToolBar->ToggleTool( ID_LIBEDIT_IMPORT_BODY_BUTT, false );
}
void SYMBOL_EDIT_FRAME::OnExportBody( wxCommandEvent& aEvent )
{
m_toolManager->DeactivateTool();
SaveOneSymbol();
m_drawToolBar->ToggleTool( ID_LIBEDIT_EXPORT_BODY_BUTT, false );
}
void SYMBOL_EDIT_FRAME::OnModify()
{
GetScreen()->SetModify();

View File

@ -116,9 +116,6 @@ public:
// See comments for m_SyncPinEdit.
bool SynchronizePins();
void OnImportBody( wxCommandEvent& aEvent );
void OnExportBody( wxCommandEvent& aEvent );
/**
* Create or add an existing library to the symbol library table.
*/
@ -422,21 +419,6 @@ private:
bool LoadOneLibraryPartAux( LIB_PART* aLibEntry, const wxString& aLibrary, int aUnit,
int aConvert );
/**
* Read a symbol file (*.sym ) and add graphic items to the current symbol.
*
* A symbol file *.sym has the same format as a library, and contains only one symbol.
*/
void LoadOneSymbol();
/**
* Save the current symbol to a symbol file.
*
* The symbol file format is similar to the standard symbol library file format, but
* there is only one symbol. Invisible pins are not saved.
*/
void SaveOneSymbol();
/**
* Display a dialog asking the user to select a symbol library table.
*

View File

@ -357,167 +357,6 @@ bool SYMBOL_EDIT_FRAME::LoadOneLibraryPartAux( LIB_PART* aEntry, const wxString&
}
void SYMBOL_EDIT_FRAME::LoadOneSymbol()
{
EE_SELECTION_TOOL* selTool = m_toolManager->GetTool<EE_SELECTION_TOOL>();
// Exit if no library entry is selected or a command is in progress.
if( !m_my_part || !EE_CONDITIONS::Idle( selTool->GetSelection() ) )
return;
PROJECT& prj = Prj();
SEARCH_STACK* search = prj.SchSearchS();
wxString default_path = prj.GetRString( PROJECT::SCH_LIB_PATH );
if( !default_path )
default_path = search->LastVisitedPath();
wxFileDialog dlg( this, _( "Import Symbol" ), default_path,
wxEmptyString, SchematicSymbolFileWildcard(),
wxFD_OPEN | wxFD_FILE_MUST_EXIST );
if( dlg.ShowModal() == wxID_CANCEL )
return;
wxString filename = dlg.GetPath();
prj.SetRString( PROJECT::SCH_LIB_PATH, filename );
wxArrayString symbols;
SCH_PLUGIN::SCH_PLUGIN_RELEASER pi( SCH_IO_MGR::FindPlugin( SCH_IO_MGR::SCH_LEGACY ) );
wxString msg;
try
{
pi->EnumerateSymbolLib( symbols, filename );
}
catch( const IO_ERROR& ioe )
{
msg.Printf( _( "Cannot import symbol library \"%s\"." ), filename );
DisplayErrorMessage( this, msg, ioe.What() );
return;
}
if( symbols.empty() )
{
msg.Printf( _( "Symbol library file \"%s\" is empty." ), filename );
DisplayError( this, msg );
return;
}
if( symbols.GetCount() > 1 )
{
msg.Printf( _( "More than one symbol found in symbol file \"%s\"." ), filename );
wxMessageBox( msg, _( "Warning" ), wxOK | wxICON_EXCLAMATION, this );
}
LIB_PART* alias = nullptr;
try
{
alias = pi->LoadSymbol( filename, symbols[0] );
}
catch( const IO_ERROR& )
{
return;
}
wxCHECK_RET( alias, "Invalid symbol." );
SaveCopyInUndoList( m_my_part );
LIB_PART* first = alias;
LIB_ITEMS_CONTAINER& drawList = first->GetDrawItems();
for( LIB_ITEM& item : drawList )
{
if( item.Type() == LIB_FIELD_T )
continue;
if( item.GetUnit() )
item.SetUnit( m_unit );
if( item.GetConvert() )
item.SetConvert( m_convert );
item.SetFlags( IS_NEW | SELECTED );
LIB_ITEM* newItem = (LIB_ITEM*) item.Clone();
newItem->SetParent( m_my_part );
m_my_part->AddDrawItem( newItem );
item.ClearSelected();
}
m_my_part->RemoveDuplicateDrawItems();
OnModify();
}
void SYMBOL_EDIT_FRAME::SaveOneSymbol()
{
wxCHECK( m_my_part, /* void */ );
// Export the current part as a symbol (.sym file)
// this is the current part without its aliases and doc file
// because a .sym file is used to import graphics in a part being edited
if( m_my_part->GetDrawItems().empty() )
return;
wxString msg;
PROJECT& prj = Prj();
SEARCH_STACK* search = prj.SchSearchS();
wxString default_path = prj.GetRString( PROJECT::SCH_LIB_PATH );
if( !default_path )
default_path = search->LastVisitedPath();
wxFileDialog dlg( this, _( "Export Symbol" ), default_path,
m_my_part->GetName() + "." + SchematicSymbolFileExtension,
SchematicSymbolFileWildcard(),
wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
if( dlg.ShowModal() == wxID_CANCEL )
return;
wxFileName fn = dlg.GetPath();
/* The GTK file chooser doesn't return the file extension added to
* file name so add it here. */
if( fn.GetExt().IsEmpty() )
fn.SetExt( SchematicSymbolFileExtension );
prj.SetRString( PROJECT::SCH_LIB_PATH, fn.GetPath() );
if( fn.FileExists() && !wxRemoveFile( fn.GetFullPath() ) )
return;
SetStatusText( wxString::Format( _( "Saving symbol in \"%s\"" ), fn.GetPath() ) );
SCH_PLUGIN::SCH_PLUGIN_RELEASER plugin( SCH_IO_MGR::FindPlugin( SCH_IO_MGR::SCH_LEGACY ) );
try
{
PROPERTIES nodoc_props; // Doc file is useless for a .sym file
nodoc_props[ SCH_LEGACY_PLUGIN::PropNoDocFile ] = "";
plugin->CreateSymbolLib( fn.GetFullPath(), &nodoc_props );
// The part gets flattened by the LIB_PART copy constructor.
LIB_PART* saved_part = new LIB_PART( *m_my_part );
plugin->SaveSymbol( fn.GetFullPath(), saved_part, &nodoc_props );
}
catch( const IO_ERROR& ioe )
{
msg.Printf( _( "An error occurred saving symbol file \"%s\"" ), fn.GetFullPath() );
DisplayErrorMessage( this, msg, ioe.What() );
}
}
void SYMBOL_EDIT_FRAME::SaveAll()
{
saveAllLibraries( false );
@ -1346,5 +1185,3 @@ void SYMBOL_EDIT_FRAME::DisplaySymbolDatasheet()
AppendMsgPanel( _( "Keywords" ), m_my_part->GetKeyWords() );
AppendMsgPanel( _( "Datasheet" ), m_my_part->GetDatasheetField().GetText() );
}

View File

@ -65,15 +65,6 @@ void SYMBOL_EDIT_FRAME::ReCreateVToolbar()
m_drawToolBar->Add( EE_ACTIONS::drawSymbolArc, ACTION_TOOLBAR::TOGGLE );
m_drawToolBar->Add( EE_ACTIONS::drawSymbolLines, ACTION_TOOLBAR::TOGGLE );
m_drawToolBar->Add( EE_ACTIONS::placeSymbolAnchor, ACTION_TOOLBAR::TOGGLE );
m_drawToolBar->AddTool( ID_LIBEDIT_IMPORT_BODY_BUTT, wxEmptyString,
KiScaledBitmap( import_xpm, this ),
_( "Import existing drawings" ), wxITEM_CHECK );
m_drawToolBar->AddTool( ID_LIBEDIT_EXPORT_BODY_BUTT, wxEmptyString,
KiScaledBitmap( export_xpm, this ),
_( "Export current drawing" ), wxITEM_CHECK );
m_drawToolBar->Add( ACTIONS::deleteTool, ACTION_TOOLBAR::TOGGLE );
m_drawToolBar->Realize();