diff --git a/eeschema/eeschema_id.h b/eeschema/eeschema_id.h index cf24ee5d32..64065e1c3f 100644 --- a/eeschema/eeschema_id.h +++ b/eeschema/eeschema_id.h @@ -210,6 +210,7 @@ enum id_eeschema_frm ID_HOTKEY_HIGHLIGHT, ID_HIGHLIGHT_NET, + ID_ADD_PART_TO_SCHEMATIC, /* Library editor: edit events */ ID_LIBEDIT_NEW_LIBRARY, @@ -289,7 +290,6 @@ enum id_eeschema_frm ID_LIBVIEW_SELECT_PART_NUMBER, ID_LIBVIEW_LIB_LIST, ID_LIBVIEW_CMP_LIST, - ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC, ID_SET_RELATIVE_OFFSET, ID_LIBVIEW_SHOW_ELECTRICAL_TYPE, diff --git a/eeschema/getpart.cpp b/eeschema/getpart.cpp index 1e6bbc6aad..776ebb4351 100644 --- a/eeschema/getpart.cpp +++ b/eeschema/getpart.cpp @@ -52,8 +52,7 @@ SCH_BASE_FRAME::COMPONENT_SELECTION SCH_BASE_FRAME::SelectComponentFromLibBrowser( - wxTopLevelWindow* aParent, - const SCHLIB_FILTER* aFilter, const LIB_ID& aPreselectedLibId, + wxTopLevelWindow* aParent, const SCHLIB_FILTER* aFilter, const LIB_ID& aPreselectedLibId, int aUnit, int aConvert ) { // Close any open non-modal Lib browser, and open a new one, in "modal" mode: @@ -78,8 +77,7 @@ SCH_BASE_FRAME::COMPONENT_SELECTION SCH_BASE_FRAME::SelectComponentFromLibBrowse viewlibFrame->Refresh(); COMPONENT_SELECTION sel; - - wxString symbol = sel.LibId.Format(); + wxString symbol; if( viewlibFrame->ShowModal( &symbol, aParent ) ) { diff --git a/eeschema/libedit/lib_edit_frame.cpp b/eeschema/libedit/lib_edit_frame.cpp index 27ac6a1254..a84aed22d9 100644 --- a/eeschema/libedit/lib_edit_frame.cpp +++ b/eeschema/libedit/lib_edit_frame.cpp @@ -65,6 +65,7 @@ #include #include #include +#include int LIB_EDIT_FRAME:: m_unit = 1; int LIB_EDIT_FRAME:: m_convert = 1; @@ -119,6 +120,7 @@ BEGIN_EVENT_TABLE( LIB_EDIT_FRAME, EDA_DRAW_FRAME ) EVT_TOOL( ID_LIBEDIT_VIEW_DOC, LIB_EDIT_FRAME::OnViewEntryDoc ) EVT_TOOL( ID_LIBEDIT_SYNC_PIN_EDIT, LIB_EDIT_FRAME::Process_Special_Functions ) EVT_TOOL( ID_LIBEDIT_EDIT_PIN_BY_TABLE, LIB_EDIT_FRAME::OnOpenPinTable ) + EVT_TOOL( ID_ADD_PART_TO_SCHEMATIC, LIB_EDIT_FRAME::OnAddPartToSchematic ) EVT_COMBOBOX( ID_LIBEDIT_SELECT_PART_NUMBER, LIB_EDIT_FRAME::OnSelectPart ) @@ -171,7 +173,7 @@ BEGIN_EVENT_TABLE( LIB_EDIT_FRAME, EDA_DRAW_FRAME ) EVT_UPDATE_UI( ID_LIBEDIT_EXPORT_PART, LIB_EDIT_FRAME::OnUpdateHavePart ) EVT_UPDATE_UI( ID_LIBEDIT_SAVE, LIB_EDIT_FRAME::OnUpdateSave ) EVT_UPDATE_UI( ID_LIBEDIT_SAVE_ALL, LIB_EDIT_FRAME::OnUpdateSave ) - EVT_UPDATE_UI( ID_LIBEDIT_SAVE_AS, LIB_EDIT_FRAME::OnUpdateSaveAs ) + EVT_UPDATE_UI( ID_LIBEDIT_SAVE_AS, LIB_EDIT_FRAME::OnUpdateHavePart ) EVT_UPDATE_UI( ID_LIBEDIT_REVERT, LIB_EDIT_FRAME::OnUpdateRevert ) EVT_UPDATE_UI( ID_LIBEDIT_CHECK_PART, LIB_EDIT_FRAME::OnUpdateEditingPart ) EVT_UPDATE_UI( ID_LIBEDIT_GET_FRAME_EDIT_PART, LIB_EDIT_FRAME::OnUpdateEditingPart ) @@ -458,16 +460,6 @@ void LIB_EDIT_FRAME::OnUpdateSave( wxUpdateUIEvent& aEvent ) } -void LIB_EDIT_FRAME::OnUpdateSaveAs( wxUpdateUIEvent& aEvent ) -{ - LIB_ID libId = getTargetLibId(); - const wxString& libName = libId.GetLibNickname(); - const wxString& partName = libId.GetLibItemName(); - - aEvent.Enable( !libName.IsEmpty() || !partName.IsEmpty() ); -} - - void LIB_EDIT_FRAME::OnUpdateRevert( wxUpdateUIEvent& aEvent ) { LIB_ID libId = getTargetLibId(); @@ -627,10 +619,7 @@ void LIB_EDIT_FRAME::OnSelectBodyStyle( wxCommandEvent& event ) { m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, GetGalCanvas()->GetDefaultCursor() ); - if( event.GetId() == ID_DE_MORGAN_NORMAL_BUTT ) - m_convert = 1; - else - m_convert = 2; + m_convert = event.GetId() == ID_DE_MORGAN_NORMAL_BUTT ? 1 : 2; m_lastDrawItem = NULL; @@ -703,10 +692,10 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_LIBEDIT_END_CREATE_ITEM: m_canvas->MoveCursorToCrossHair(); + if( item ) - { EndDrawGraphicItem( nullptr ); - } + break; case ID_POPUP_LIBEDIT_BODY_EDIT_ITEM: @@ -742,7 +731,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; m_canvas->MoveCursorToCrossHair(); - ( (LIB_POLYLINE*) item )->DeleteSegment( GetCrossHairPosition( true ) ); + static_cast( item )->DeleteSegment( GetCrossHairPosition( true ) ); m_lastDrawItem = NULL; } break; @@ -765,7 +754,6 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_LIBEDIT_MODIFY_ITEM: - if( item == NULL ) break; @@ -773,8 +761,7 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( item->Type() == LIB_RECTANGLE_T || item->Type() == LIB_CIRCLE_T || item->Type() == LIB_POLYLINE_T - || item->Type() == LIB_ARC_T - ) + || item->Type() == LIB_ARC_T ) { StartModifyDrawSymbol( nullptr, item ); } @@ -1307,15 +1294,14 @@ LIB_ITEM* LIB_EDIT_FRAME::LocateItemUsingCursor( const wxPoint& aPosition, LIB_ITEM* LIB_EDIT_FRAME::locateItem( const wxPoint& aPosition, const KICAD_T aFilterList[] ) { - LIB_PART* part = GetCurPart(); + LIB_PART* part = GetCurPart(); if( !part ) return NULL; LIB_ITEM* item = NULL; - m_collectedItems.Collect( part->GetDrawItems(), aFilterList, aPosition, - m_unit, m_convert ); + m_collectedItems.Collect( part->GetDrawItems(), aFilterList, aPosition, m_unit, m_convert ); if( m_collectedItems.GetCount() == 0 ) { @@ -1327,32 +1313,28 @@ LIB_ITEM* LIB_EDIT_FRAME::locateItem( const wxPoint& aPosition, const KICAD_T aF } else { - if( item == NULL ) + wxASSERT_MSG( m_collectedItems.GetCount() <= MAX_SELECT_ITEM_IDS, + "Select item clarification context menu size limit exceeded." ); + + wxMenu selectMenu; + AddMenuItem( &selectMenu, wxID_NONE, _( "Clarify Selection" ), KiBitmap( info_xpm ) ); + + selectMenu.AppendSeparator(); + + for( int i = 0; i < m_collectedItems.GetCount() && i < MAX_SELECT_ITEM_IDS; i++ ) { - wxASSERT_MSG( m_collectedItems.GetCount() <= MAX_SELECT_ITEM_IDS, - "Select item clarification context menu size limit exceeded." ); + wxString text = m_collectedItems[i]->GetSelectMenuText( m_UserUnits ); + BITMAP_DEF xpm = m_collectedItems[i]->GetMenuImage(); - wxMenu selectMenu; - AddMenuItem( &selectMenu, wxID_NONE, _( "Clarify Selection" ), - KiBitmap( info_xpm ) ); - - selectMenu.AppendSeparator(); - - for( int i = 0; i < m_collectedItems.GetCount() && i < MAX_SELECT_ITEM_IDS; i++ ) - { - wxString text = m_collectedItems[i]->GetSelectMenuText( m_UserUnits ); - BITMAP_DEF xpm = m_collectedItems[i]->GetMenuImage(); - - AddMenuItem( &selectMenu, ID_SELECT_ITEM_START + i, text, KiBitmap( xpm ) ); - } - - // Set to NULL in case user aborts the clarification context menu. - SetDrawItem( NULL ); - m_canvas->SetAbortRequest( true ); // Changed to false if an item is selected - PopupMenu( &selectMenu ); - m_canvas->MoveCursorToCrossHair(); - item = GetDrawItem(); + AddMenuItem( &selectMenu, ID_SELECT_ITEM_START + i, text, KiBitmap( xpm ) ); } + + // Set to NULL in case user aborts the clarification context menu. + SetDrawItem( NULL ); + m_canvas->SetAbortRequest( true ); // Changed to false if an item is selected + PopupMenu( &selectMenu ); + m_canvas->MoveCursorToCrossHair(); + item = GetDrawItem(); } if( item ) @@ -1377,7 +1359,7 @@ void LIB_EDIT_FRAME::deleteItem( wxDC* aDC, LIB_ITEM* aItem ) m_canvas->CrossHairOff( aDC ); - LIB_PART* part = GetCurPart(); + LIB_PART* part = GetCurPart(); SaveCopyInUndoList( part ); @@ -1476,6 +1458,38 @@ bool LIB_EDIT_FRAME::SynchronizePins() } +void LIB_EDIT_FRAME::OnAddPartToSchematic( wxCommandEvent& event ) +{ + if( GetCurPart() ) + { + SCH_EDIT_FRAME* schframe = (SCH_EDIT_FRAME*) Kiway().Player( FRAME_SCH, false ); + + if( schframe == NULL ) // happens when the schematic editor is not active (or closed) + { + DisplayErrorMessage( this, _("No schematic currently open." ) ); + return; + } + + SCH_COMPONENT* component = new SCH_COMPONENT( *GetCurPart(), GetCurPart()->GetLibId(), + g_CurrentSheet, GetUnit(), GetConvert(), + wxPoint( 0, 0 ), true ); + + // Be sure the link to the corresponding LIB_PART is OK: + component->Resolve( *Prj().SchSymbolLibTable() ); + + MSG_PANEL_ITEMS items; + component->GetMsgPanelInfo( schframe->GetUserUnits(), items ); + schframe->SetMsgPanel( items ); + + if( schframe->GetAutoplaceFields() ) + component->AutoplaceFields( /* aScreen */ NULL, /* aManual */ false ); + + schframe->Raise(); + schframe->GetToolManager()->RunAction( SCH_ACTIONS::placeSymbol, true, component ); + } +} + + void LIB_EDIT_FRAME::refreshSchematic() { // There may be no parent window so use KIWAY message to refresh the schematic editor @@ -1489,9 +1503,8 @@ bool LIB_EDIT_FRAME::addLibraryFile( bool aCreateNew ) { wxFileName fn = m_libMgr->GetUniqueLibraryName(); - if( !LibraryFileBrowser( !aCreateNew, fn, - SchematicLibraryFileWildcard(), SchematicLibraryFileExtension, - false ) ) + if( !LibraryFileBrowser( !aCreateNew, fn, SchematicLibraryFileWildcard(), + SchematicLibraryFileExtension, false ) ) { return false; } @@ -1670,8 +1683,7 @@ bool LIB_EDIT_FRAME::backupFile( const wxFileName& aOriginalFile, const wxString if( !wxCopyFile( aOriginalFile.GetFullPath(), backupFileName.GetFullPath() ) ) { - DisplayError( this, _( "Failed to save backup document to file " ) + - backupFileName.GetFullPath() ); + DisplayError( this, _( "Failed to save backup to " ) + backupFileName.GetFullPath() ); return false; } } diff --git a/eeschema/libedit/lib_edit_frame.h b/eeschema/libedit/lib_edit_frame.h index 461d92b32f..d889944716 100644 --- a/eeschema/libedit/lib_edit_frame.h +++ b/eeschema/libedit/lib_edit_frame.h @@ -3,7 +3,7 @@ * * Copyright (C) 2014 Jean-Pierre Charras, jp.charras at wanadoo.fr * Copyright (C) 2008 Wayne Stambaugh - * Copyright (C) 2004-2018 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2004-2019 KiCad Developers, see AUTHORS.txt for contributors. * Copyright (C) 2017 CERN * @author Maciej Suminski * @@ -25,11 +25,6 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -/** - * @file lib_edit_frame.h - * @brief Definition of class LIB_EDIT_FRAME - */ - #ifndef LIB_EDIT_FRAME_H #define LIB_EDIT_FRAME_H @@ -272,6 +267,11 @@ public: */ void OnExportPart( wxCommandEvent& event ); + /** + * Add the current part to the schematic + */ + void OnAddPartToSchematic( wxCommandEvent& event ); + /** * Saves the selected part or library. */ @@ -297,7 +297,6 @@ public: */ void OnRemovePart( wxCommandEvent& aEvent ); - void OnDuplicatePart( wxCommandEvent& aEvent ); void OnCopyCutPart( wxCommandEvent& aEvent ); void OnPasteDuplicatePart( wxCommandEvent& aEvent ); @@ -330,7 +329,6 @@ public: void OnUpdateEditingPart( wxUpdateUIEvent& event ); void OnUpdateHavePart( wxUpdateUIEvent& aEvent ); void OnUpdateSave( wxUpdateUIEvent& aEvent ); - void OnUpdateSaveAs( wxUpdateUIEvent& aEvent ); void OnUpdateRevert( wxUpdateUIEvent& aEvent ); void OnUpdateUndo( wxUpdateUIEvent& event ); void OnUpdateRedo( wxUpdateUIEvent& event ); @@ -401,38 +399,21 @@ public: void OnModify(); int GetUnit() { return m_unit; } - - void SetUnit( int unit ) - { - wxASSERT( unit >= 1 ); - m_unit = unit; - } + void SetUnit( int unit ) { m_unit = unit; } int GetConvert() { return m_convert; } - - void SetConvert( int convert ) - { - wxASSERT( convert >= 0 ); - m_convert = convert; - } + void SetConvert( int convert ) { m_convert = convert; } LIB_ITEM* GetLastDrawItem() { return m_lastDrawItem; } - - void SetLastDrawItem( LIB_ITEM* drawItem ) - { - m_lastDrawItem = drawItem; - } + void SetLastDrawItem( LIB_ITEM* drawItem ) { m_lastDrawItem = drawItem; } LIB_ITEM* GetDrawItem() const { return GetScreen()->GetCurLibItem(); } - void SetDrawItem( LIB_ITEM* drawItem ) { GetScreen()->SetCurLibItem( drawItem ); } bool GetShowDeMorgan() { return m_showDeMorgan; } - void SetShowDeMorgan( bool show ) { m_showDeMorgan = show; } bool GetShowElectricalType() { return m_showPinElectricalTypeName; } - void SetShowElectricalType( bool aShow ) { m_showPinElectricalTypeName = aShow; } FILL_T GetFillStyle() { return m_drawFillStyle; } diff --git a/eeschema/libedit/tool_lib.cpp b/eeschema/libedit/tool_lib.cpp index ee4892e03c..b9c7a0085d 100644 --- a/eeschema/libedit/tool_lib.cpp +++ b/eeschema/libedit/tool_lib.cpp @@ -190,6 +190,12 @@ void LIB_EDIT_FRAME::ReCreateHToolbar() m_mainToolBar->AddTool( ID_LIBEDIT_SYNC_PIN_EDIT, wxEmptyString, KiScaledBitmap( pin2pin_xpm, this ), msg, wxITEM_CHECK ); + KiScaledSeparator( m_mainToolBar, this ); + + m_mainToolBar->AddTool( ID_ADD_PART_TO_SCHEMATIC, wxEmptyString, + KiScaledBitmap( export_xpm, this ), + _( "Add symbol to schematic" ) ); + // after adding the buttons to the toolbar, must call Realize() to reflect the changes m_mainToolBar->Realize(); } diff --git a/eeschema/tool_viewlib.cpp b/eeschema/tool_viewlib.cpp index 52c928b9f2..d5817e176b 100644 --- a/eeschema/tool_viewlib.cpp +++ b/eeschema/tool_viewlib.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2016 Jean-Pierre Charras, jp.charras at wanadoo.fr * Copyright (C) 2008 Wayne Stambaugh - * Copyright (C) 2004-2018 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2004-2019 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -19,11 +19,6 @@ * with this program. If not, see . */ -/** - * @file tool_viewlib.cpp - * @brief Build the toolbars for the library browser. - */ - #include #include @@ -52,7 +47,7 @@ void LIB_VIEW_FRAME::ReCreateHToolbar() KiScaledBitmap( add_component_xpm, this ), _( "Select symbol to browse" ) ); - m_mainToolBar->AddSeparator(); + KiScaledSeparator( m_mainToolBar, this ); m_mainToolBar->AddTool( ID_LIBVIEW_PREVIOUS, wxEmptyString, KiScaledBitmap( lib_previous_xpm, this ), _( "Display previous symbol" ) ); @@ -61,7 +56,7 @@ void LIB_VIEW_FRAME::ReCreateHToolbar() KiScaledBitmap( lib_next_xpm, this ), _( "Display next symbol" ) ); - m_mainToolBar->AddSeparator(); + KiScaledSeparator( m_mainToolBar, this ); msg = AddHotkeyName( _( "Zoom in" ), g_Viewlib_Hotkeys_Descr, HK_ZOOM_IN, IS_COMMENT ); m_mainToolBar->AddTool( ID_ZOOM_IN, wxEmptyString, @@ -82,7 +77,7 @@ void LIB_VIEW_FRAME::ReCreateHToolbar() m_mainToolBar->AddTool( ID_ZOOM_PAGE, wxEmptyString, KiScaledBitmap( zoom_fit_in_page_xpm, this ), msg ); - m_mainToolBar->AddSeparator(); + KiScaledSeparator( m_mainToolBar, this ); m_mainToolBar->AddTool( ID_LIBVIEW_DE_MORGAN_NORMAL_BUTT, wxEmptyString, KiScaledBitmap( morgan1_xpm, this ), _( "Show as \"De Morgan\" normal symbol" ), @@ -93,24 +88,21 @@ void LIB_VIEW_FRAME::ReCreateHToolbar() _( "Show as \"De Morgan\" convert symbol" ), wxITEM_CHECK ); - m_mainToolBar->AddSeparator(); + KiScaledSeparator( m_mainToolBar, this ); m_unitChoice = new wxChoice( m_mainToolBar, ID_LIBVIEW_SELECT_PART_NUMBER, wxDefaultPosition, wxSize( 150, -1 ) ); m_mainToolBar->AddControl( m_unitChoice ); - m_mainToolBar->AddSeparator(); + KiScaledSeparator( m_mainToolBar, this ); m_mainToolBar->AddTool( ID_LIBVIEW_VIEWDOC, wxEmptyString, KiScaledBitmap( datasheet_xpm, this ), _( "View symbol documents" ) ); - if( IsModal() ) - { - m_mainToolBar->AddSeparator(); - m_mainToolBar->AddTool( ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC, - wxEmptyString, KiScaledBitmap( export_xpm, this ), - _( "Insert symbol in schematic" ) ); - } + KiScaledSeparator( m_mainToolBar, this ); + m_mainToolBar->AddTool( ID_ADD_PART_TO_SCHEMATIC, wxEmptyString, + KiScaledBitmap( export_xpm, this ), + _( "Add symbol to schematic" ) ); // after adding the buttons to the toolbar, must call Realize() to // reflect the changes diff --git a/eeschema/tools/sch_editor_control.cpp b/eeschema/tools/sch_editor_control.cpp index 8ef74815cb..7e92c3ba11 100644 --- a/eeschema/tools/sch_editor_control.cpp +++ b/eeschema/tools/sch_editor_control.cpp @@ -336,9 +336,8 @@ int SCH_EDITOR_CONTROL::placeComponent( SCH_COMPONENT* aComponent, SCHLIB_FILTER m_frame->SetRepeatItem( NULL ); m_frame->GetCanvas()->SetIgnoreMouseEvents( true ); - auto sel = m_frame->SelectComponentFromLibTree( - aFilter, aHistoryList, true, 1, 1, - m_frame->GetShowFootprintPreviews() ); + auto sel = m_frame->SelectComponentFromLibTree( aFilter, aHistoryList, true, 1, 1, + m_frame->GetShowFootprintPreviews() ); // Restore cursor after dialog m_frame->GetCanvas()->MoveCursorToCrossHair(); diff --git a/eeschema/viewlib_frame.cpp b/eeschema/viewlib_frame.cpp index e03479528a..ee08322899 100644 --- a/eeschema/viewlib_frame.cpp +++ b/eeschema/viewlib_frame.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2018 Jean-Pierre Charras, jp.charras at wanadoo.fr * Copyright (C) 2008 Wayne Stambaugh - * Copyright (C) 2004-2018 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2004-2019 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -23,10 +23,6 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -/** - * @file viewlib_frame.cpp - */ - #include #include #include @@ -49,6 +45,7 @@ #include #include #include +#include // Save previous component library viewer state. wxString LIB_VIEW_FRAME::m_libraryName; @@ -71,8 +68,8 @@ BEGIN_EVENT_TABLE( LIB_VIEW_FRAME, EDA_DRAW_FRAME ) EVT_TOOL( ID_LIBVIEW_VIEWDOC, LIB_VIEW_FRAME::onViewSymbolDocument ) EVT_TOOL_RANGE( ID_LIBVIEW_DE_MORGAN_NORMAL_BUTT, ID_LIBVIEW_DE_MORGAN_CONVERT_BUTT, LIB_VIEW_FRAME::onSelectSymbolBodyStyle ) - EVT_TOOL( ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC, LIB_VIEW_FRAME::ExportToSchematicLibraryPart ) EVT_CHOICE( ID_LIBVIEW_SELECT_PART_NUMBER, LIB_VIEW_FRAME::onSelectSymbolUnit ) + EVT_TOOL( ID_ADD_PART_TO_SCHEMATIC, LIB_VIEW_FRAME::OnAddPartToSchematic ) // listbox events EVT_LISTBOX( ID_LIBVIEW_LIB_LIST, LIB_VIEW_FRAME::ClickOnLibList ) @@ -240,9 +237,7 @@ LIB_ALIAS* LIB_VIEW_FRAME::getSelectedAlias() const LIB_ALIAS* alias = NULL; if( !m_libraryName.IsEmpty() && !m_entryName.IsEmpty() ) - { alias = Prj().SchSymbolLibTable()->LoadSymbol( m_libraryName, m_entryName ); - } return alias; } @@ -673,46 +668,22 @@ void LIB_VIEW_FRAME::SetSelectedComponent( const wxString& aComponentName ) void LIB_VIEW_FRAME::DClickOnCmpList( wxCommandEvent& event ) { - if( IsModal() ) + OnAddPartToSchematic( event ); + + // The schematic editor might not be the parent of the library viewer. + // It could be a python window. + SCH_EDIT_FRAME* schframe = dynamic_cast( GetParent() ); + + if( schframe ) { - ExportToSchematicLibraryPart( event ); - - // The schematic editor might not be the parent of the library viewer. - // It could be a python window. - SCH_EDIT_FRAME* schframe = dynamic_cast( GetParent() ); - - if( schframe ) - { - // Prevent the double click from being as a single click in the parent - // window which would cause the part to be parked rather than staying - // in drag mode. - schframe->SkipNextLeftButtonReleaseEvent(); - } + // Prevent the double click from being as a single click in the parent + // window which would cause the part to be parked rather than staying + // in drag mode. + schframe->SkipNextLeftButtonReleaseEvent(); } } -void LIB_VIEW_FRAME::ExportToSchematicLibraryPart( wxCommandEvent& event ) -{ - int ii = m_cmpList->GetSelection(); - - if( ii >= 0 ) - { - wxString part_name = m_libraryName + ':' + m_cmpList->GetString( ii ); - - // a selection was made, pass true - DismissModal( true, part_name ); - } - else - { - // no selection was made, pass false - DismissModal( false ); - } - - Close( true ); -} - - #define LIBLIST_WIDTH_KEY "ViewLiblistWidth" #define CMPLIST_WIDTH_KEY "ViewCmplistWidth" #define CMPVIEW_SHOW_PINELECTRICALTYPE_KEY "ViewCmpShowPinElectricalType" @@ -801,6 +772,7 @@ void LIB_VIEW_FRAME::SetFilter( const SCHLIB_FILTER* aFilter ) ReCreateListLib(); } + const BOX2I LIB_VIEW_FRAME::GetDocumentExtents() const { LIB_ALIAS* alias = getSelectedAlias(); @@ -817,3 +789,49 @@ const BOX2I LIB_VIEW_FRAME::GetDocumentExtents() const } } + + +void LIB_VIEW_FRAME::OnAddPartToSchematic( wxCommandEvent& aEvent ) +{ + if( IsModal() ) + { + // if we're modal then we just need to return the symbol selection; the caller is + // already in a SCH_ACTIONS::placeSymbol coroutine. + if( m_cmpList->GetSelection() >= 0 ) + DismissModal( true, m_libraryName + ':' + m_cmpList->GetStringSelection() ); + else + DismissModal( false ); + + Close( true ); + return; + } + + if( getSelectedSymbol() ) + { + SCH_EDIT_FRAME* schframe = (SCH_EDIT_FRAME*) Kiway().Player( FRAME_SCH, false ); + + if( schframe == NULL ) // happens when the schematic editor is not active (or closed) + { + DisplayErrorMessage( this, _("No schematic currently open." ) ); + return; + } + + SCH_COMPONENT* component = new SCH_COMPONENT( *getSelectedSymbol(), + getSelectedAlias()->GetLibId(), + g_CurrentSheet, m_unit, m_convert, + wxPoint( 0, 0 ), true ); + + // Be sure the link to the corresponding LIB_PART is OK: + component->Resolve( *Prj().SchSymbolLibTable() ); + + MSG_PANEL_ITEMS items; + component->GetMsgPanelInfo( schframe->GetUserUnits(), items ); + schframe->SetMsgPanel( items ); + + if( schframe->GetAutoplaceFields() ) + component->AutoplaceFields( /* aScreen */ NULL, /* aManual */ false ); + + schframe->Raise(); + schframe->GetToolManager()->RunAction( SCH_ACTIONS::placeSymbol, true, component ); + } +} diff --git a/eeschema/viewlib_frame.h b/eeschema/viewlib_frame.h index d9b94ddbf9..1eda44566c 100644 --- a/eeschema/viewlib_frame.h +++ b/eeschema/viewlib_frame.h @@ -3,7 +3,7 @@ * * Copyright (C) 2016 Jean-Pierre Charras, jp.charras at wanadoo.fr * Copyright (C) 2008 Wayne Stambaugh - * Copyright (C) 2004-2017 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2004-2019 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -25,7 +25,6 @@ #ifndef LIB_VIEW_FRAME_H__ - #define LIB_VIEW_FRAME_H__ #include @@ -164,11 +163,6 @@ private: */ virtual void OnActivate( wxActivateEvent& event ) override; - /** - * Function ExportToSchematicLibraryPart - * exports the current component to schematic and close the library browser. - */ - void ExportToSchematicLibraryPart( wxCommandEvent& event ); bool OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu ) override; void DClickOnCmpList( wxCommandEvent& event ); @@ -177,11 +171,13 @@ private: void onUpdateDocButton( wxUpdateUIEvent& aEvent ); void OnUpdateElectricalType( wxUpdateUIEvent& aEvent ); void onUpdateUnitChoice( wxUpdateUIEvent& aEvent ); + void onSelectNextSymbol( wxCommandEvent& aEvent ); void onSelectPreviousSymbol( wxCommandEvent& aEvent ); void onViewSymbolDocument( wxCommandEvent& aEvent ); void onSelectSymbolBodyStyle( wxCommandEvent& aEvent ); void onSelectSymbolUnit( wxCommandEvent& aEvent ); + void OnAddPartToSchematic( wxCommandEvent& aEvent ); LIB_ALIAS* getSelectedAlias() const; LIB_PART* getSelectedSymbol() const; diff --git a/eeschema/viewlibs.cpp b/eeschema/viewlibs.cpp index 6ecbe64621..b6777d4892 100644 --- a/eeschema/viewlibs.cpp +++ b/eeschema/viewlibs.cpp @@ -2,7 +2,7 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2015 Jean-Pierre Charras, jp.charras at wanadoo.fr - * Copyright (C) 2015-2018 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2015-2019 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,10 +22,6 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -/** - * @file viewlibs.cpp - */ - #include #include #include @@ -138,19 +134,10 @@ void LIB_VIEW_FRAME::onViewSymbolDocument( wxCommandEvent& aEvent ) void LIB_VIEW_FRAME::onSelectSymbolBodyStyle( wxCommandEvent& aEvent ) { - int id = aEvent.GetId(); - - switch( id ) - { - default: - case ID_LIBVIEW_DE_MORGAN_NORMAL_BUTT: - m_convert = LIB_ITEM::LIB_CONVERT::BASE; - break; - - case ID_LIBVIEW_DE_MORGAN_CONVERT_BUTT: + if( aEvent.GetId() == ID_LIBVIEW_DE_MORGAN_CONVERT_BUTT ) m_convert = LIB_ITEM::LIB_CONVERT::DEMORGAN; - break; - } + else + m_convert = LIB_ITEM::LIB_CONVERT::BASE; updatePreviewSymbol(); } diff --git a/pcbnew/footprint_edit_frame.cpp b/pcbnew/footprint_edit_frame.cpp index 7ceb1e34de..d319e6285b 100644 --- a/pcbnew/footprint_edit_frame.cpp +++ b/pcbnew/footprint_edit_frame.cpp @@ -113,7 +113,7 @@ BEGIN_EVENT_TABLE( FOOTPRINT_EDIT_FRAME, PCB_BASE_FRAME ) EVT_TOOL( ID_MODEDIT_CHECK, FOOTPRINT_EDIT_FRAME::Process_Special_Functions ) EVT_TOOL( ID_MODEDIT_PAD_SETTINGS, FOOTPRINT_EDIT_FRAME::Process_Special_Functions ) EVT_TOOL( ID_MODEDIT_LOAD_MODULE_FROM_BOARD, FOOTPRINT_EDIT_FRAME::LoadModuleFromBoard ) - EVT_TOOL( ID_MODEDIT_INSERT_MODULE_IN_BOARD, FOOTPRINT_EDIT_FRAME::Process_Special_Functions ) + EVT_TOOL( ID_ADD_FOOTPRINT_TO_BOARD, FOOTPRINT_EDIT_FRAME::Process_Special_Functions ) EVT_TOOL( ID_MODEDIT_EDIT_MODULE_PROPERTIES, FOOTPRINT_EDIT_FRAME::Process_Special_Functions ) EVT_TOOL( wxID_UNDO, FOOTPRINT_EDIT_FRAME::RestoreCopyFromUndoList ) EVT_TOOL( wxID_REDO, FOOTPRINT_EDIT_FRAME::RestoreCopyFromRedoList ) @@ -183,7 +183,7 @@ BEGIN_EVENT_TABLE( FOOTPRINT_EDIT_FRAME, PCB_BASE_FRAME ) EVT_UPDATE_UI( ID_MODEDIT_DELETE_PART, FOOTPRINT_EDIT_FRAME::OnUpdateModuleTargeted ) EVT_UPDATE_UI( ID_MODEDIT_LOAD_MODULE_FROM_BOARD, FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard ) - EVT_UPDATE_UI( ID_MODEDIT_INSERT_MODULE_IN_BOARD, + EVT_UPDATE_UI( ID_ADD_FOOTPRINT_TO_BOARD, FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard ) EVT_UPDATE_UI( ID_NO_TOOL_SELECTED, FOOTPRINT_EDIT_FRAME::OnUpdateSelectTool ) EVT_UPDATE_UI( ID_ZOOM_SELECTION, FOOTPRINT_EDIT_FRAME::OnUpdateSelectTool ) diff --git a/pcbnew/footprint_editor_utils.cpp b/pcbnew/footprint_editor_utils.cpp index 7a93af989f..58dcd475fe 100644 --- a/pcbnew/footprint_editor_utils.cpp +++ b/pcbnew/footprint_editor_utils.cpp @@ -545,7 +545,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } break; - case ID_MODEDIT_INSERT_MODULE_IN_BOARD: + case ID_ADD_FOOTPRINT_TO_BOARD: SaveFootprintToBoard( true ); break; diff --git a/pcbnew/footprint_libraries_utils.cpp b/pcbnew/footprint_libraries_utils.cpp index 508abb949c..cc5e7ae076 100644 --- a/pcbnew/footprint_libraries_utils.cpp +++ b/pcbnew/footprint_libraries_utils.cpp @@ -855,6 +855,12 @@ bool FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard( bool aAddNew ) pcbframe->SetCrossHairPosition( cursor_pos ); newmodule->SetTimeStamp( GetNewTimeStamp() ); commit.Push( wxT( "Insert module" ) ); + + if( pcbframe->IsGalCanvasActive() ) + { + pcbframe->Raise(); + pcbframe->GetToolManager()->RunAction( PCB_ACTIONS::placeModule, true, newmodule ); + } } newmodule->ClearFlags(); diff --git a/pcbnew/footprint_viewer_frame.cpp b/pcbnew/footprint_viewer_frame.cpp index 2ac57c7b14..da9d58b125 100644 --- a/pcbnew/footprint_viewer_frame.cpp +++ b/pcbnew/footprint_viewer_frame.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2012-2015 Jean-Pierre Charras, jp.charras at wanadoo.fr * Copyright (C) 2008-2016 Wayne Stambaugh - * Copyright (C) 2004-2018 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2004-2019 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -23,10 +23,6 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -/** - * @file footprint_viewer_frame.cpp - */ - #include #include #include @@ -60,6 +56,7 @@ #include "tools/selection_tool.h" #include "tools/pcbnew_control.h" #include "tools/pcb_actions.h" +#include "board_commit.h" #include #include @@ -92,7 +89,7 @@ BEGIN_EVENT_TABLE( FOOTPRINT_VIEWER_FRAME, EDA_DRAW_FRAME ) EVT_TOOL( ID_MODVIEW_OPTIONS, FOOTPRINT_VIEWER_FRAME::InstallDisplayOptions ) EVT_TOOL( ID_MODVIEW_NEXT, FOOTPRINT_VIEWER_FRAME::OnIterateFootprintList ) EVT_TOOL( ID_MODVIEW_PREVIOUS, FOOTPRINT_VIEWER_FRAME::OnIterateFootprintList ) - EVT_TOOL( ID_MODVIEW_EXPORT_TO_BOARD, FOOTPRINT_VIEWER_FRAME::ExportSelectedFootprint ) + EVT_TOOL( ID_ADD_FOOTPRINT_TO_BOARD, FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB ) EVT_TOOL( ID_MODVIEW_SHOW_3D_VIEW, FOOTPRINT_VIEWER_FRAME::Show3D_Frame ) EVT_CHOICE( ID_ON_ZOOM_SELECT, FOOTPRINT_VIEWER_FRAME::OnSelectZoom ) EVT_CHOICE( ID_ON_GRID_SELECT, FOOTPRINT_VIEWER_FRAME::OnSelectGrid ) @@ -240,8 +237,7 @@ FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME( KIWAY* aKiway, wxWindow* aParent m_auimgr.AddPane( m_canvas, EDA_PANE().Canvas().Name( "DrawFrame" ).Center() ); m_auimgr.AddPane( GetGalCanvas(), EDA_PANE().Canvas().Name( "DrawFrameGal" ).Center().Hide() ); - // after changing something to the aui manager, - // call Update()() to reflect the changes + // after changing something to the aui manager call Update() to reflect the changes m_auimgr.Update(); GetGalCanvas()->GetGAL()->SetAxesEnabled( true ); @@ -452,48 +448,74 @@ void FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList( wxCommandEvent& event ) void FOOTPRINT_VIEWER_FRAME::DClickOnFootprintList( wxCommandEvent& event ) { - if( IsModal() ) - { - // @todo(DICK) - ExportSelectedFootprint( event ); + AddFootprintToPCB( event ); - // Prevent the double click from being as a single mouse button release - // event in the parent window which would cause the part to be parked - // rather than staying in move mode. - // Remember the mouse button will be released in the parent window - // thus creating a mouse button release event which should be ignored - PCB_EDIT_FRAME* pcbframe = dynamic_cast( GetParent() ); + // Prevent the double click from being as a single mouse button release + // event in the parent window which would cause the part to be parked + // rather than staying in move mode. + // Remember the mouse button will be released in the parent window + // thus creating a mouse button release event which should be ignored + PCB_EDIT_FRAME* pcbframe = dynamic_cast( GetParent() ); - // The parent may not be the board editor: - if( pcbframe ) - { - pcbframe->SkipNextLeftButtonReleaseEvent(); - } - } + // The parent may not be the board editor: + if( pcbframe ) + pcbframe->SkipNextLeftButtonReleaseEvent(); } -void FOOTPRINT_VIEWER_FRAME::ExportSelectedFootprint( wxCommandEvent& event ) +void FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB( wxCommandEvent& event ) { - int ii = m_footprintList->GetSelection(); - - if( ii >= 0 ) + if( IsModal() ) { - wxString fp_name = m_footprintList->GetString( ii ); + if( m_footprintList->GetSelection() >= 0 ) + { + LIB_ID fpid( getCurNickname(), m_footprintList->GetStringSelection() ); + DismissModal( true, fpid.Format() ); + } + else + { + DismissModal( false ); + } - LIB_ID fpid; - - fpid.SetLibNickname( getCurNickname() ); - fpid.SetLibItemName( fp_name ); - - DismissModal( true, fpid.Format() ); + Close( true ); } else { - DismissModal( false ); - } + PCB_EDIT_FRAME* pcbframe = (PCB_EDIT_FRAME*) Kiway().Player( FRAME_PCB, false ); - Close( true ); + if( pcbframe == NULL ) // happens when the board editor is not active (or closed) + { + DisplayErrorMessage( this, _( "No board currently open." ) ); + return; + } + + pcbframe->GetToolManager()->RunAction( PCB_ACTIONS::selectionClear, true ); + BOARD_COMMIT commit( pcbframe ); + + // Create the "new" module + MODULE* newmodule = new MODULE( *GetBoard()->m_Modules ); + newmodule->SetParent( pcbframe->GetBoard() ); + newmodule->SetLink( 0 ); + + wxPoint cursor_pos = pcbframe->GetCrossHairPosition(); + + commit.Add( newmodule ); + pcbframe->SetCrossHairPosition( wxPoint( 0, 0 ) ); + pcbframe->PlaceModule( newmodule, NULL ); + newmodule->SetPosition( wxPoint( 0, 0 ) ); + pcbframe->SetCrossHairPosition( cursor_pos ); + newmodule->SetTimeStamp( GetNewTimeStamp() ); + commit.Push( wxT( "Insert module" ) ); + + if( pcbframe->IsGalCanvasActive() ) + { + pcbframe->Raise(); + pcbframe->GetToolManager()->RunAction( PCB_ACTIONS::placeModule, true, newmodule ); + } + + newmodule->ClearFlags(); + pcbframe->SetCurItem( NULL ); + } } @@ -735,12 +757,10 @@ void FOOTPRINT_VIEWER_FRAME::UpdateTitle() wxString path; title.Printf( _( "Footprint Library Browser" ) + L" \u2014 %s", - getCurNickname().size() - ? getCurNickname() - : _( "no library selected" ) ); + getCurNickname().IsEmpty() ? _( "no library selected" ) : getCurNickname() ); // Now, add the full path, for info - if( getCurNickname().size() ) + if( !getCurNickname().IsEmpty() ) { FP_LIB_TABLE* libtable = Prj().PcbFootprintLibs(); const LIB_TABLE_ROW* row = libtable->FindRow( getCurNickname() ); diff --git a/pcbnew/footprint_viewer_frame.h b/pcbnew/footprint_viewer_frame.h index 13c266416f..b746c4ddc6 100644 --- a/pcbnew/footprint_viewer_frame.h +++ b/pcbnew/footprint_viewer_frame.h @@ -2,7 +2,7 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2018 Jean-Pierre Charras, jap.charras at wanadoo.fr - * Copyright (C) 2004-2018 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2004-2019 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,10 +22,6 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -/** - * @file footprint_viewer_frame.h - */ - #ifndef FOOTPRINT_VIEWER_FRAME_H #define FOOTPRINT_VIEWER_FRAME_H @@ -167,10 +163,10 @@ private: void SelectCurrentFootprint( wxCommandEvent& event ); /** - * Function ExportSelectedFootprint + * Function AddFootprintToPCB * exports the current footprint name and close the library browser. */ - void ExportSelectedFootprint( wxCommandEvent& event ); + void AddFootprintToPCB( wxCommandEvent& event ); /** * Function SelectAndViewFootprint diff --git a/pcbnew/menubar_footprint_editor.cpp b/pcbnew/menubar_footprint_editor.cpp index 95bdfaf188..f10ad7498c 100644 --- a/pcbnew/menubar_footprint_editor.cpp +++ b/pcbnew/menubar_footprint_editor.cpp @@ -405,7 +405,7 @@ void FOOTPRINT_EDIT_FRAME::ReCreateMenuBar() _( "Load a footprint from the current board into the editor" ), KiBitmap( load_module_board_xpm ) ); - AddMenuItem( toolsMenu, ID_MODEDIT_INSERT_MODULE_IN_BOARD, + AddMenuItem( toolsMenu, ID_ADD_FOOTPRINT_TO_BOARD, _( "&Insert Footprint on PCB" ), _( "Insert footprint onto current board" ), KiBitmap( insert_module_board_xpm ) ); diff --git a/pcbnew/pcbnew_id.h b/pcbnew/pcbnew_id.h index ec043de10f..23a854e4f1 100644 --- a/pcbnew/pcbnew_id.h +++ b/pcbnew/pcbnew_id.h @@ -345,7 +345,6 @@ enum pcbnew_ids ID_POPUP_MODEDIT_GLOBAL_EDIT_EDGE, ID_POPUP_MODEDIT_EDIT_WIDTH_ALL_EDGE, ID_POPUP_MODEDIT_EDIT_LAYER_ALL_EDGE, - ID_POPUP_MODEDIT_EDIT_EDGE, ID_MODEDIT_CHECK, ID_MODEDIT_CREATE_NEW_LIB, ID_MODEDIT_ADD_LIBRARY, @@ -363,7 +362,6 @@ enum pcbnew_ids ID_MODEDIT_EDIT_MODULE, ID_MODEDIT_PAD_SETTINGS, ID_MODEDIT_LOAD_MODULE_FROM_BOARD, - ID_MODEDIT_INSERT_MODULE_IN_BOARD, ID_MODEDIT_EDIT_MODULE_PROPERTIES, ID_MODEDIT_TRANSFORM_MODULE, ID_MODEDIT_MODULE_ROTATE, @@ -381,23 +379,17 @@ enum pcbnew_ids ID_MODVIEW_PREVIOUS, ID_MODVIEW_NEXT, ID_MODVIEW_SHOW_3D_VIEW, - ID_MODVIEW_EXPORT_TO_BOARD, - ID_FOOTPRINT_WIZARD_WINDOW, - ID_FOOTPRINT_WIZARD_PAGES, - ID_FOOTPRINT_WIZARD_PARAMETERS, ID_FOOTPRINT_WIZARD_NEXT, ID_FOOTPRINT_WIZARD_PREVIOUS, ID_FOOTPRINT_WIZARD_DONE, ID_FOOTPRINT_WIZARD_SHOW_3D_VIEW, ID_FOOTPRINT_WIZARD_PAGE_LIST, ID_FOOTPRINT_WIZARD_PARAMETER_LIST, - ID_FOOTPRINT_WIZARD_PAGES_WINDOW, - ID_FOOTPRINT_WIZARD_PARAMETERS_WINDOW, ID_FOOTPRINT_WIZARD_SELECT_WIZARD, ID_FOOTPRINT_WIZARD_RESET_TO_DEFAULT, - ID_FOOTPRINT_WIZARD_EXPORT_TO_BOARD, + ID_ADD_FOOTPRINT_TO_BOARD, ID_UPDATE_PCB_FROM_SCH, ID_RUN_EESCHEMA, ID_EDIT_CUT, diff --git a/pcbnew/tool_footprint_editor.cpp b/pcbnew/tool_footprint_editor.cpp index be226db1ef..9542bbbb30 100644 --- a/pcbnew/tool_footprint_editor.cpp +++ b/pcbnew/tool_footprint_editor.cpp @@ -118,8 +118,8 @@ void FOOTPRINT_EDIT_FRAME::ReCreateHToolbar() KiScaledBitmap( load_module_board_xpm, this ), _( "Load footprint from current board" ) ); - m_mainToolBar->AddTool( ID_MODEDIT_INSERT_MODULE_IN_BOARD, wxEmptyString, - KiScaledBitmap( insert_module_board_xpm, this ), + m_mainToolBar->AddTool( ID_ADD_FOOTPRINT_TO_BOARD, wxEmptyString, + KiScaledBitmap( export_xpm, this ), _( "Insert footprint into current board" ) ); #if 0 // Currently there is no check footprint function defined, so do not show this tool diff --git a/pcbnew/tool_footprint_viewer.cpp b/pcbnew/tool_footprint_viewer.cpp index 76053be33c..84fb06b212 100644 --- a/pcbnew/tool_footprint_viewer.cpp +++ b/pcbnew/tool_footprint_viewer.cpp @@ -4,7 +4,7 @@ * Copyright (C) 2014 Jean-Pierre Charras, jp.charras at wanadoo.fr * Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck * Copyright (C) 2012 Wayne Stambaugh - * Copyright (C) 1992-2018 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 1992-2019 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -20,12 +20,6 @@ * with this program. If not, see . */ -/** - * @file tool_footprint_viewer.cpp - * @brief Build the toolbars for the footprint library browser. - */ - - #include #include #include @@ -99,12 +93,9 @@ void FOOTPRINT_VIEWER_FRAME::ReCreateHToolbar() KiScaledBitmap( three_d_xpm, this ), _( "Show footprint in 3D viewer" ) ); - if( IsModal() ) - { - m_mainToolBar->AddTool( ID_MODVIEW_EXPORT_TO_BOARD, wxEmptyString, - KiScaledBitmap( export_footprint_names_xpm, this ), - _( "Insert footprint in board" ) ); - } + m_mainToolBar->AddTool( ID_ADD_FOOTPRINT_TO_BOARD, wxEmptyString, + KiScaledBitmap( export_xpm, this ), + _( "Insert footprint in board" ) ); KiScaledSeparator( m_mainToolBar, this );