Autodetect plugin type when editing filename cell.
Fixes https://gitlab.com/kicad/code/kicad/issues/8687
This commit is contained in:
parent
fecf7ec708
commit
6c161eec68
|
@ -106,6 +106,26 @@ protected:
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
void SetValue( int aRow, int aCol, const wxString &aValue ) override
|
||||||
|
{
|
||||||
|
LIB_TABLE_GRID::SetValue( aRow, aCol, aValue );
|
||||||
|
|
||||||
|
// If setting a filepath, attempt to auto-detect the format
|
||||||
|
if( aCol == COL_URI )
|
||||||
|
{
|
||||||
|
wxFileName fn( aValue );
|
||||||
|
|
||||||
|
for( SCH_IO_MGR::SCH_FILE_T piType : SCH_IO_MGR::SCH_FILE_T_vector )
|
||||||
|
{
|
||||||
|
if( SCH_IO_MGR::GetLibraryFileExtension( piType ).Lower() == fn.GetExt().Lower() )
|
||||||
|
{
|
||||||
|
SetValue( aRow, COL_TYPE, SCH_IO_MGR::ShowType( piType ) );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
SYMBOL_LIB_TABLE_GRID( const SYMBOL_LIB_TABLE& aTableToEdit )
|
SYMBOL_LIB_TABLE_GRID( const SYMBOL_LIB_TABLE& aTableToEdit )
|
||||||
{
|
{
|
||||||
|
@ -176,7 +196,7 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
PANEL_SYM_LIB_TABLE::PANEL_SYM_LIB_TABLE( DIALOG_EDIT_LIBRARY_TABLES* aParent, PROJECT* aProject ,
|
PANEL_SYM_LIB_TABLE::PANEL_SYM_LIB_TABLE( DIALOG_EDIT_LIBRARY_TABLES* aParent, PROJECT* aProject,
|
||||||
SYMBOL_LIB_TABLE* aGlobalTable,
|
SYMBOL_LIB_TABLE* aGlobalTable,
|
||||||
const wxString& aGlobalTablePath,
|
const wxString& aGlobalTablePath,
|
||||||
SYMBOL_LIB_TABLE* aProjectTable,
|
SYMBOL_LIB_TABLE* aProjectTable,
|
||||||
|
@ -467,26 +487,20 @@ void PANEL_SYM_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event )
|
||||||
EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>();
|
EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>();
|
||||||
|
|
||||||
wxString openDir = cfg->m_lastSymbolLibDir;
|
wxString openDir = cfg->m_lastSymbolLibDir;
|
||||||
if( m_cur_grid == m_project_grid )
|
|
||||||
{
|
|
||||||
openDir = m_lastProjectLibDir;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxFileDialog dlg( this, _( "Select Library" ),
|
if( m_cur_grid == m_project_grid )
|
||||||
openDir, wxEmptyString, wildcards,
|
openDir = m_lastProjectLibDir;
|
||||||
|
|
||||||
|
wxFileDialog dlg( this, _( "Select Library" ), openDir, wxEmptyString, wildcards,
|
||||||
wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_MULTIPLE );
|
wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_MULTIPLE );
|
||||||
|
|
||||||
if( dlg.ShowModal() == wxID_CANCEL )
|
if( dlg.ShowModal() == wxID_CANCEL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( m_cur_grid == m_global_grid )
|
if( m_cur_grid == m_global_grid )
|
||||||
{
|
|
||||||
cfg->m_lastSymbolLibDir = dlg.GetPath();
|
cfg->m_lastSymbolLibDir = dlg.GetPath();
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
m_lastProjectLibDir = dlg.GetPath();
|
m_lastProjectLibDir = dlg.GetPath();
|
||||||
}
|
|
||||||
|
|
||||||
const ENV_VAR_MAP& envVars = Pgm().GetLocalEnvVariables();
|
const ENV_VAR_MAP& envVars = Pgm().GetLocalEnvVariables();
|
||||||
bool addDuplicates = false;
|
bool addDuplicates = false;
|
||||||
|
@ -525,10 +539,7 @@ void PANEL_SYM_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event )
|
||||||
|
|
||||||
m_cur_grid->SetCellValue( last_row, COL_NICKNAME, nickname );
|
m_cur_grid->SetCellValue( last_row, COL_NICKNAME, nickname );
|
||||||
|
|
||||||
// TODO the following code can detect only schematic types, not libs
|
// attempt to auto-detect the plugin type
|
||||||
// SCH_IO_MGR needs to provide file extension information for libraries too
|
|
||||||
|
|
||||||
// auto detect the plugin type
|
|
||||||
for( SCH_IO_MGR::SCH_FILE_T piType : SCH_IO_MGR::SCH_FILE_T_vector )
|
for( SCH_IO_MGR::SCH_FILE_T piType : SCH_IO_MGR::SCH_FILE_T_vector )
|
||||||
{
|
{
|
||||||
if( SCH_IO_MGR::GetLibraryFileExtension( piType ).Lower() == fn.GetExt().Lower() )
|
if( SCH_IO_MGR::GetLibraryFileExtension( piType ).Lower() == fn.GetExt().Lower() )
|
||||||
|
|
Loading…
Reference in New Issue