From 65f90f141f815087bcc7cf1ca0645734bf04966a Mon Sep 17 00:00:00 2001 From: Michael Kavanagh Date: Sun, 17 Jan 2021 11:14:37 +0000 Subject: [PATCH] Symbol editor: remove duplicate legacy code path Fixes https://gitlab.com/kicad/code/kicad/issues/7139 --- eeschema/eeschema_id.h | 4 - eeschema/symbol_editor/symbol_edit_frame.cpp | 23 --- eeschema/symbol_editor/symbol_edit_frame.h | 18 -- eeschema/symbol_editor/symbol_editor.cpp | 163 ------------------ .../symbol_editor/toolbars_symbol_editor.cpp | 9 - 5 files changed, 217 deletions(-) diff --git a/eeschema/eeschema_id.h b/eeschema/eeschema_id.h index 65fd5e4711..5e4b776acf 100644 --- a/eeschema/eeschema_id.h +++ b/eeschema/eeschema_id.h @@ -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, diff --git a/eeschema/symbol_editor/symbol_edit_frame.cpp b/eeschema/symbol_editor/symbol_edit_frame.cpp index 9e31640a00..1627b7222e 100644 --- a/eeschema/symbol_editor/symbol_edit_frame.cpp +++ b/eeschema/symbol_editor/symbol_edit_frame.cpp @@ -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(); diff --git a/eeschema/symbol_editor/symbol_edit_frame.h b/eeschema/symbol_editor/symbol_edit_frame.h index 40f93081da..893d66f33f 100644 --- a/eeschema/symbol_editor/symbol_edit_frame.h +++ b/eeschema/symbol_editor/symbol_edit_frame.h @@ -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. * diff --git a/eeschema/symbol_editor/symbol_editor.cpp b/eeschema/symbol_editor/symbol_editor.cpp index 80816a18dd..6d8e68f267 100644 --- a/eeschema/symbol_editor/symbol_editor.cpp +++ b/eeschema/symbol_editor/symbol_editor.cpp @@ -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(); - - // 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() ); } - - diff --git a/eeschema/symbol_editor/toolbars_symbol_editor.cpp b/eeschema/symbol_editor/toolbars_symbol_editor.cpp index 09ab97b775..15ed76b651 100644 --- a/eeschema/symbol_editor/toolbars_symbol_editor.cpp +++ b/eeschema/symbol_editor/toolbars_symbol_editor.cpp @@ -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();