Don't require more clicks than necessary to communicate intent.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16261
This commit is contained in:
parent
88760f5c0e
commit
9885b7a4ef
|
@ -481,7 +481,7 @@ void DIALOG_SIM_MODEL<T_symbol, T_field>::updateBuiltinModelWidgets( SIM_MODEL*
|
||||||
m_deviceChoice->Clear();
|
m_deviceChoice->Clear();
|
||||||
m_deviceTypeChoice->Clear();
|
m_deviceTypeChoice->Clear();
|
||||||
|
|
||||||
if( m_rbBuiltinModel->GetValue() )
|
if( !m_rbLibraryModel->GetValue() )
|
||||||
{
|
{
|
||||||
for( SIM_MODEL::DEVICE_T deviceType : SIM_MODEL::DEVICE_T_ITERATOR() )
|
for( SIM_MODEL::DEVICE_T deviceType : SIM_MODEL::DEVICE_T_ITERATOR() )
|
||||||
{
|
{
|
||||||
|
@ -1071,30 +1071,43 @@ int DIALOG_SIM_MODEL<T_symbol, T_field>::getModelPinIndex( const wxString& aMode
|
||||||
template <typename T_symbol, typename T_field>
|
template <typename T_symbol, typename T_field>
|
||||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onRadioButton( wxCommandEvent& aEvent )
|
void DIALOG_SIM_MODEL<T_symbol, T_field>::onRadioButton( wxCommandEvent& aEvent )
|
||||||
{
|
{
|
||||||
bool fromLibrary = m_rbLibraryModel->GetValue();
|
if( m_rbLibraryModel->GetValue() )
|
||||||
|
{
|
||||||
m_pathLabel->Enable( fromLibrary );
|
m_deviceLabel->Enable( false );
|
||||||
m_libraryPathText->Enable( fromLibrary );
|
m_deviceChoice->Enable( false );
|
||||||
m_browseButton->Enable( fromLibrary );
|
m_deviceTypeLabel->Enable( false );
|
||||||
m_modelNameLabel->Enable( fromLibrary );
|
}
|
||||||
m_modelNameChoice->Enable( fromLibrary );
|
else if( m_rbBuiltinModel->GetValue() )
|
||||||
m_pinLabel->Enable( fromLibrary );
|
{
|
||||||
m_pinCombobox->Enable( fromLibrary );
|
m_pathLabel->Enable( false );
|
||||||
m_differentialCheckbox->Enable( fromLibrary );
|
m_libraryPathText->Enable( false );
|
||||||
m_pinModelLabel->Enable( fromLibrary );
|
m_browseButton->Enable( false );
|
||||||
m_pinModelCombobox->Enable( fromLibrary );
|
m_modelNameLabel->Enable( false );
|
||||||
m_waveformLabel->Enable( fromLibrary );
|
m_modelNameChoice->Enable( false );
|
||||||
m_waveformChoice->Enable( fromLibrary );
|
m_pinLabel->Enable( false );
|
||||||
|
m_pinCombobox->Enable( false );
|
||||||
m_deviceLabel->Enable( !fromLibrary );
|
m_differentialCheckbox->Enable( false );
|
||||||
m_deviceChoice->Enable( !fromLibrary );
|
m_pinModelLabel->Enable( false );
|
||||||
m_deviceTypeLabel->Enable( !fromLibrary );
|
m_pinModelCombobox->Enable( false );
|
||||||
|
m_waveformLabel->Enable( false );
|
||||||
|
m_waveformChoice->Enable( false );
|
||||||
|
}
|
||||||
|
|
||||||
m_prevModel = nullptr; // Ensure the Model panel will be rebuild after updating other params.
|
m_prevModel = nullptr; // Ensure the Model panel will be rebuild after updating other params.
|
||||||
updateWidgets();
|
updateWidgets();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T_symbol, typename T_field>
|
||||||
|
void DIALOG_SIM_MODEL<T_symbol, T_field>::onLibrarayPathText( wxCommandEvent& aEvent )
|
||||||
|
{
|
||||||
|
m_rbLibraryModel->SetValue( true );
|
||||||
|
m_deviceLabel->Enable( false );
|
||||||
|
m_deviceChoice->Enable( false );
|
||||||
|
m_deviceTypeLabel->Enable( false );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template <typename T_symbol, typename T_field>
|
template <typename T_symbol, typename T_field>
|
||||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onLibraryPathTextEnter( wxCommandEvent& aEvent )
|
void DIALOG_SIM_MODEL<T_symbol, T_field>::onLibraryPathTextEnter( wxCommandEvent& aEvent )
|
||||||
{
|
{
|
||||||
|
@ -1144,6 +1157,11 @@ void DIALOG_SIM_MODEL<T_symbol, T_field>::onBrowseButtonClick( wxCommandEvent& a
|
||||||
if( dlg.ShowModal() == wxID_CANCEL )
|
if( dlg.ShowModal() == wxID_CANCEL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
m_rbLibraryModel->SetValue( true );
|
||||||
|
m_deviceLabel->Enable( false );
|
||||||
|
m_deviceChoice->Enable( false );
|
||||||
|
m_deviceTypeLabel->Enable( false );
|
||||||
|
|
||||||
path = dlg.GetPath();
|
path = dlg.GetPath();
|
||||||
wxFileName fn( path );
|
wxFileName fn( path );
|
||||||
|
|
||||||
|
@ -1249,6 +1267,20 @@ void DIALOG_SIM_MODEL<T_symbol, T_field>::onDifferentialCheckbox( wxCommandEvent
|
||||||
template <typename T_symbol, typename T_field>
|
template <typename T_symbol, typename T_field>
|
||||||
void DIALOG_SIM_MODEL<T_symbol, T_field>::onDeviceTypeChoice( wxCommandEvent& aEvent )
|
void DIALOG_SIM_MODEL<T_symbol, T_field>::onDeviceTypeChoice( wxCommandEvent& aEvent )
|
||||||
{
|
{
|
||||||
|
m_rbBuiltinModel->SetValue( true );
|
||||||
|
m_pathLabel->Enable( false );
|
||||||
|
m_libraryPathText->Enable( false );
|
||||||
|
m_browseButton->Enable( false );
|
||||||
|
m_modelNameLabel->Enable( false );
|
||||||
|
m_modelNameChoice->Enable( false );
|
||||||
|
m_pinLabel->Enable( false );
|
||||||
|
m_pinCombobox->Enable( false );
|
||||||
|
m_differentialCheckbox->Enable( false );
|
||||||
|
m_pinModelLabel->Enable( false );
|
||||||
|
m_pinModelCombobox->Enable( false );
|
||||||
|
m_waveformLabel->Enable( false );
|
||||||
|
m_waveformChoice->Enable( false );
|
||||||
|
|
||||||
for( SIM_MODEL::DEVICE_T deviceType : SIM_MODEL::DEVICE_T_ITERATOR() )
|
for( SIM_MODEL::DEVICE_T deviceType : SIM_MODEL::DEVICE_T_ITERATOR() )
|
||||||
{
|
{
|
||||||
if( SIM_MODEL::DeviceInfo( deviceType ).description == m_deviceChoice->GetStringSelection() )
|
if( SIM_MODEL::DeviceInfo( deviceType ).description == m_deviceChoice->GetStringSelection() )
|
||||||
|
|
|
@ -93,6 +93,7 @@ private:
|
||||||
int getModelPinIndex( const wxString& aModelPinString ) const;
|
int getModelPinIndex( const wxString& aModelPinString ) const;
|
||||||
|
|
||||||
void onRadioButton( wxCommandEvent& aEvent ) override;
|
void onRadioButton( wxCommandEvent& aEvent ) override;
|
||||||
|
void onLibrarayPathText( wxCommandEvent& aEvent ) override;
|
||||||
void onLibraryPathTextEnter( wxCommandEvent& aEvent ) override;
|
void onLibraryPathTextEnter( wxCommandEvent& aEvent ) override;
|
||||||
void onLibraryPathTextKillFocus( wxFocusEvent& aEvent ) override;
|
void onLibraryPathTextKillFocus( wxFocusEvent& aEvent ) override;
|
||||||
void onBrowseButtonClick( wxCommandEvent& aEvent ) override;
|
void onBrowseButtonClick( wxCommandEvent& aEvent ) override;
|
||||||
|
|
|
@ -330,6 +330,7 @@ DIALOG_SIM_MODEL_BASE::DIALOG_SIM_MODEL_BASE( wxWindow* parent, wxWindowID id, c
|
||||||
m_rbLibraryModel->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onRadioButton ), NULL, this );
|
m_rbLibraryModel->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onRadioButton ), NULL, this );
|
||||||
m_pathLabel->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onLibraryPathLabelUpdate ), NULL, this );
|
m_pathLabel->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onLibraryPathLabelUpdate ), NULL, this );
|
||||||
m_libraryPathText->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_SIM_MODEL_BASE::onLibraryPathTextKillFocus ), NULL, this );
|
m_libraryPathText->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_SIM_MODEL_BASE::onLibraryPathTextKillFocus ), NULL, this );
|
||||||
|
m_libraryPathText->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onLibrarayPathText ), NULL, this );
|
||||||
m_libraryPathText->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onLibraryPathTextEnter ), NULL, this );
|
m_libraryPathText->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onLibraryPathTextEnter ), NULL, this );
|
||||||
m_browseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onBrowseButtonClick ), NULL, this );
|
m_browseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onBrowseButtonClick ), NULL, this );
|
||||||
m_browseButton->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onBrowseButtonUpdate ), NULL, this );
|
m_browseButton->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onBrowseButtonUpdate ), NULL, this );
|
||||||
|
@ -366,6 +367,7 @@ DIALOG_SIM_MODEL_BASE::~DIALOG_SIM_MODEL_BASE()
|
||||||
m_rbLibraryModel->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onRadioButton ), NULL, this );
|
m_rbLibraryModel->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onRadioButton ), NULL, this );
|
||||||
m_pathLabel->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onLibraryPathLabelUpdate ), NULL, this );
|
m_pathLabel->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onLibraryPathLabelUpdate ), NULL, this );
|
||||||
m_libraryPathText->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_SIM_MODEL_BASE::onLibraryPathTextKillFocus ), NULL, this );
|
m_libraryPathText->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_SIM_MODEL_BASE::onLibraryPathTextKillFocus ), NULL, this );
|
||||||
|
m_libraryPathText->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onLibrarayPathText ), NULL, this );
|
||||||
m_libraryPathText->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onLibraryPathTextEnter ), NULL, this );
|
m_libraryPathText->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onLibraryPathTextEnter ), NULL, this );
|
||||||
m_browseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onBrowseButtonClick ), NULL, this );
|
m_browseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SIM_MODEL_BASE::onBrowseButtonClick ), NULL, this );
|
||||||
m_browseButton->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onBrowseButtonUpdate ), NULL, this );
|
m_browseButton->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_SIM_MODEL_BASE::onBrowseButtonUpdate ), NULL, this );
|
||||||
|
|
|
@ -407,6 +407,7 @@
|
||||||
<property name="window_name"></property>
|
<property name="window_name"></property>
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
<event name="OnKillFocus">onLibraryPathTextKillFocus</event>
|
<event name="OnKillFocus">onLibraryPathTextKillFocus</event>
|
||||||
|
<event name="OnText">onLibrarayPathText</event>
|
||||||
<event name="OnTextEnter">onLibraryPathTextEnter</event>
|
<event name="OnTextEnter">onLibraryPathTextEnter</event>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
|
|
@ -91,6 +91,7 @@ class DIALOG_SIM_MODEL_BASE : public DIALOG_SHIM
|
||||||
virtual void onRadioButton( wxCommandEvent& event ) { event.Skip(); }
|
virtual void onRadioButton( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void onLibraryPathLabelUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
|
virtual void onLibraryPathLabelUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
|
||||||
virtual void onLibraryPathTextKillFocus( wxFocusEvent& event ) { event.Skip(); }
|
virtual void onLibraryPathTextKillFocus( wxFocusEvent& event ) { event.Skip(); }
|
||||||
|
virtual void onLibrarayPathText( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void onLibraryPathTextEnter( wxCommandEvent& event ) { event.Skip(); }
|
virtual void onLibraryPathTextEnter( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void onBrowseButtonClick( wxCommandEvent& event ) { event.Skip(); }
|
virtual void onBrowseButtonClick( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void onBrowseButtonUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
|
virtual void onBrowseButtonUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
|
||||||
|
|
Loading…
Reference in New Issue