Change Libedit save icon from Save Library to Save All Libraries.

Also changes Save Library and Save Library As to work off the
visible selection if there is one.

Also implements enablement for Save All Libraries.

Fixes: lp:1764081
* https://bugs.launchpad.net/kicad/+bug/1764081
This commit is contained in:
Jeff Young 2018-05-02 23:33:53 +01:00
parent 2eddf1d8db
commit bf135b0690
4 changed files with 29 additions and 17 deletions

View File

@ -186,6 +186,7 @@ BEGIN_EVENT_TABLE( LIB_EDIT_FRAME, EDA_DRAW_FRAME )
EVT_UPDATE_UI( wxID_REDO, LIB_EDIT_FRAME::OnUpdateRedo ) EVT_UPDATE_UI( wxID_REDO, LIB_EDIT_FRAME::OnUpdateRedo )
EVT_UPDATE_UI( ID_LIBEDIT_SAVE_LIBRARY, LIB_EDIT_FRAME::OnUpdateSaveLib ) EVT_UPDATE_UI( ID_LIBEDIT_SAVE_LIBRARY, LIB_EDIT_FRAME::OnUpdateSaveLib )
EVT_UPDATE_UI( ID_LIBEDIT_SAVE_LIBRARY_AS, LIB_EDIT_FRAME::OnUpdateSaveLibAs ) EVT_UPDATE_UI( ID_LIBEDIT_SAVE_LIBRARY_AS, LIB_EDIT_FRAME::OnUpdateSaveLibAs )
EVT_UPDATE_UI( ID_LIBEDIT_SAVE_ALL_LIBS, LIB_EDIT_FRAME::OnUpdateSaveAll )
EVT_UPDATE_UI( ID_LIBEDIT_VIEW_DOC, LIB_EDIT_FRAME::OnUpdateViewDoc ) EVT_UPDATE_UI( ID_LIBEDIT_VIEW_DOC, LIB_EDIT_FRAME::OnUpdateViewDoc )
EVT_UPDATE_UI( ID_LIBEDIT_SYNC_PIN_EDIT, LIB_EDIT_FRAME::OnUpdateSyncPinEdit ) EVT_UPDATE_UI( ID_LIBEDIT_SYNC_PIN_EDIT, LIB_EDIT_FRAME::OnUpdateSyncPinEdit )
EVT_UPDATE_UI( ID_LIBEDIT_EDIT_PIN_BY_TABLE, LIB_EDIT_FRAME::OnUpdatePinTable ) EVT_UPDATE_UI( ID_LIBEDIT_EDIT_PIN_BY_TABLE, LIB_EDIT_FRAME::OnUpdatePinTable )
@ -571,6 +572,24 @@ void LIB_EDIT_FRAME::OnUpdateSaveLibAs( wxUpdateUIEvent& event )
} }
void LIB_EDIT_FRAME::OnUpdateSaveAll( wxUpdateUIEvent& event )
{
int modified = 0;
for( const auto& lib : m_libMgr->GetLibraryNames() )
{
if( m_libMgr->IsLibraryModified( lib ) )
modified++;
if( modified > 1 )
break;
}
event.SetText( modified > 1 ? _( "Save All &Libraries..." ) : _( "Save All &Libraries" ) );
event.Enable( modified > 0 );
}
void LIB_EDIT_FRAME::OnUpdateViewDoc( wxUpdateUIEvent& event ) void LIB_EDIT_FRAME::OnUpdateViewDoc( wxUpdateUIEvent& event )
{ {
bool enable = false; bool enable = false;
@ -1612,27 +1631,19 @@ LIB_PART* LIB_EDIT_FRAME::getTargetPart() const
LIB_ID LIB_EDIT_FRAME::getTargetLibId() const LIB_ID LIB_EDIT_FRAME::getTargetLibId() const
{ {
if( m_treePane->GetCmpTree()->IsMenuActive() ) LIB_ID id = m_treePane->GetCmpTree()->GetSelectedLibId();
return m_treePane->GetCmpTree()->GetSelectedLibId(); wxString nickname = id.GetLibNickname();
if( LIB_PART* part = GetCurPart() ) if( nickname.IsEmpty() && GetCurPart() )
return part->GetLibId(); id = GetCurPart()->GetLibId();
return LIB_ID(); return id;
} }
wxString LIB_EDIT_FRAME::getTargetLib() const wxString LIB_EDIT_FRAME::getTargetLib() const
{ {
if( m_treePane->GetCmpTree()->IsMenuActive() ) return getTargetLibId().GetLibNickname();
{
LIB_ID libId = m_treePane->GetCmpTree()->GetSelectedLibId();
return libId.GetLibNickname();
}
else
{
return GetCurLib();
}
} }

View File

@ -342,6 +342,7 @@ public:
void OnUpdateRedo( wxUpdateUIEvent& event ); void OnUpdateRedo( wxUpdateUIEvent& event );
void OnUpdateSaveLib( wxUpdateUIEvent& event ); void OnUpdateSaveLib( wxUpdateUIEvent& event );
void OnUpdateSaveLibAs( wxUpdateUIEvent& event ); void OnUpdateSaveLibAs( wxUpdateUIEvent& event );
void OnUpdateSaveAll( wxUpdateUIEvent& event );
void OnUpdateViewDoc( wxUpdateUIEvent& event ); void OnUpdateViewDoc( wxUpdateUIEvent& event );
void OnUpdateSyncPinEdit( wxUpdateUIEvent& event ); void OnUpdateSyncPinEdit( wxUpdateUIEvent& event );
void OnUpdatePinTable( wxUpdateUIEvent& event ); void OnUpdatePinTable( wxUpdateUIEvent& event );

View File

@ -74,7 +74,7 @@ void LIB_EDIT_FRAME::ReCreateMenuBar()
AddMenuItem( fileMenu, AddMenuItem( fileMenu,
ID_LIBEDIT_SAVE_LIBRARY, ID_LIBEDIT_SAVE_LIBRARY,
_( "&Save Library" ), _( "&Save Library" ),
_( "Save the current active library" ), _( "Save the current library" ),
KiBitmap( save_library_xpm ) ); KiBitmap( save_library_xpm ) );
AddMenuItem( fileMenu, AddMenuItem( fileMenu,

View File

@ -119,9 +119,9 @@ void LIB_EDIT_FRAME::ReCreateHToolbar()
KiScaledBitmap( add_library_xpm, this ), KiScaledBitmap( add_library_xpm, this ),
_( "Add an existing library" ) ); _( "Add an existing library" ) );
m_mainToolBar->AddTool( ID_LIBEDIT_SAVE_LIBRARY, wxEmptyString, m_mainToolBar->AddTool( ID_LIBEDIT_SAVE_ALL_LIBS, wxEmptyString,
KiScaledBitmap( save_library_xpm, this ), KiScaledBitmap( save_library_xpm, this ),
_( "Save current library" ) ); _( "Save all libraries" ) );
KiScaledSeparator( m_mainToolBar, this ); KiScaledSeparator( m_mainToolBar, this );