Don't conflate instance and ibis widgets.

This commit is contained in:
Jeff Young 2022-10-31 10:33:45 +00:00
parent 20a4d76635
commit 6390c28737
2 changed files with 31 additions and 24 deletions

View File

@ -292,6 +292,7 @@ void DIALOG_SIM_MODEL<T>::updateWidgets()
m_overrideCheckbox->SetValue( curModel().HasNonInstanceOverrides() ); m_overrideCheckbox->SetValue( curModel().HasNonInstanceOverrides() );
updateIbisWidgets(); updateIbisWidgets();
updateInstanceWidgets();
updateModelParamsTab(); updateModelParamsTab();
updateModelCodeTab(); updateModelCodeTab();
updatePinAssignments(); updatePinAssignments();
@ -355,35 +356,40 @@ void DIALOG_SIM_MODEL<T>::updateIbisWidgets()
} }
template <typename T>
void DIALOG_SIM_MODEL<T>::updateInstanceWidgets()
{
SIM_MODEL::DEVICE_TYPE_ deviceType = SIM_MODEL::TypeInfo( curModel().GetType() ).deviceType;
// Change the Type choice to match the current device type.
if( !m_prevModel || deviceType != m_prevModel->GetDeviceType() )
{
m_deviceTypeChoice->SetSelection( static_cast<int>( deviceType ) );
m_typeChoice->Clear();
for( SIM_MODEL::TYPE type : SIM_MODEL::TYPE_ITERATOR() )
{
if( SIM_MODEL::TypeInfo( type ).deviceType == deviceType )
{
wxString description = SIM_MODEL::TypeInfo( type ).description;
if( !description.IsEmpty() )
m_typeChoice->Append( description );
if( type == curModel().GetType() )
m_typeChoice->SetSelection( m_typeChoice->GetCount() - 1 );
}
}
}
}
template <typename T> template <typename T>
void DIALOG_SIM_MODEL<T>::updateModelParamsTab() void DIALOG_SIM_MODEL<T>::updateModelParamsTab()
{ {
if( &curModel() != m_prevModel ) if( &curModel() != m_prevModel )
{ {
SIM_MODEL::DEVICE_TYPE_ deviceType = SIM_MODEL::TypeInfo( curModel().GetType() ).deviceType;
// Change the Type choice to match the current device type.
if( !m_prevModel || deviceType != m_prevModel->GetDeviceType() )
{
m_deviceTypeChoice->SetSelection( static_cast<int>( deviceType ) );
m_typeChoice->Clear();
for( SIM_MODEL::TYPE type : SIM_MODEL::TYPE_ITERATOR() )
{
if( SIM_MODEL::TypeInfo( type ).deviceType == deviceType )
{
wxString description = SIM_MODEL::TypeInfo( type ).description;
if( !description.IsEmpty() )
m_typeChoice->Append( description );
if( type == curModel().GetType() )
m_typeChoice->SetSelection( m_typeChoice->GetCount() - 1 );
}
}
}
// This wxPropertyGridManager column and header stuff has to be here because it segfaults in // This wxPropertyGridManager column and header stuff has to be here because it segfaults in
// the constructor. // the constructor.

View File

@ -92,6 +92,7 @@ private:
void updateWidgets(); void updateWidgets();
void updateIbisWidgets(); void updateIbisWidgets();
void updateInstanceWidgets();
void updateModelParamsTab(); void updateModelParamsTab();
void updateModelCodeTab(); void updateModelCodeTab();
void updatePinAssignments(); void updatePinAssignments();