libedit: Improved selection process for DeleteComponent
- Reused SelectComponent dialog - Reduced selection to current library only - Ability to filter component for deletion
This commit is contained in:
parent
702795f4a9
commit
4ba0fef8c1
|
@ -45,6 +45,9 @@
|
|||
#include <template_fieldnames.h>
|
||||
#include <wildcards_and_files_ext.h>
|
||||
|
||||
#include <dialog_choose_component.h>
|
||||
#include <component_tree_search_container.h>
|
||||
|
||||
#include <dialogs/dialog_lib_new_component.h>
|
||||
|
||||
|
||||
|
@ -533,30 +536,33 @@ void LIB_EDIT_FRAME::DeleteOnePart( wxCommandEvent& event )
|
|||
}
|
||||
}
|
||||
|
||||
lib->GetAliasNames( nameList );
|
||||
COMPONENT_TREE_SEARCH_CONTAINER search_container( Prj().SchLibs() );
|
||||
|
||||
if( nameList.IsEmpty() )
|
||||
search_container.AddLibrary( *lib );
|
||||
|
||||
wxString dialogTitle;
|
||||
dialogTitle.Printf( _( "Delete Component (%u items loaded)" ), search_container.GetComponentsCount() );
|
||||
|
||||
DIALOG_CHOOSE_COMPONENT dlg( this, dialogTitle, &search_container, m_convert );
|
||||
|
||||
if( dlg.ShowModal() == wxID_CANCEL )
|
||||
{
|
||||
msg.Printf( _( "Part library '%s' is empty." ), GetChars( lib->GetName() ) );
|
||||
wxMessageBox( msg, _( "Delete Entry Error" ), wxID_OK | wxICON_EXCLAMATION, this );
|
||||
return;
|
||||
}
|
||||
|
||||
msg.Printf( _( "Select one of %d components to delete\nfrom library '%s'." ),
|
||||
int( nameList.GetCount() ),
|
||||
GetChars( lib->GetName() ) );
|
||||
LIB_ALIAS* const alias = dlg.GetSelectedAlias( &m_unit );
|
||||
|
||||
wxSingleChoiceDialog dlg( this, msg, _( "Delete Part" ), nameList );
|
||||
|
||||
if( dlg.ShowModal() == wxID_CANCEL || dlg.GetStringSelection().IsEmpty() )
|
||||
if( !alias || !alias->GetLib() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
libEntry = lib->FindAlias( dlg.GetStringSelection() );
|
||||
libEntry = lib->FindAlias( alias->GetName() );
|
||||
|
||||
if( !libEntry )
|
||||
{
|
||||
msg.Printf( _( "Entry '%s' not found in library '%s'." ),
|
||||
GetChars( dlg.GetStringSelection() ),
|
||||
GetChars( alias->GetName() ),
|
||||
GetChars( lib->GetName() ) );
|
||||
DisplayError( this, msg );
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue