7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-20 20:21:42 +00:00

pcbnew: disable Zone Manager thermal relief configuration when not needed

This commit is contained in:
Maciej Małecki 2025-01-12 15:50:43 +01:00 committed by Seth Hillbrand
parent 1fc3068de6
commit 82c1118679
5 changed files with 15 additions and 1 deletions

View File

@ -168,6 +168,7 @@ bool PANEL_ZONE_PROPERTIES::TransferZoneSettingsToWindow()
// Enable/Disable some widgets
wxCommandEvent aEvent;
OnStyleSelection( aEvent );
OnPadInZoneSelection( aEvent );
Fit();
return true;
@ -195,6 +196,14 @@ void PANEL_ZONE_PROPERTIES::OnRemoveIslandsSelection( wxCommandEvent& aEvent )
m_islandThreshold.Enable( m_cbRemoveIslands->GetSelection() == 2 );
}
void PANEL_ZONE_PROPERTIES::OnPadInZoneSelection( wxCommandEvent& event )
{
int selection = m_PadInZoneOpt->GetSelection();
bool enabled = selection == 1 || selection == 2;
m_antipadClearance.Enable( enabled );
m_spokeWidth.Enable( enabled );
}
void PANEL_ZONE_PROPERTIES::OnZoneNameChanged( wxCommandEvent& aEvent )
{
wxCommandEvent* evt = new wxCommandEvent( EVT_ZONE_NAME_UPDATE );

View File

@ -77,6 +77,7 @@ private:
void OnStyleSelection( wxCommandEvent& event ) override;
void OnUpdateUI( wxUpdateUIEvent& ) override;
void OnRemoveIslandsSelection( wxCommandEvent& event ) override;
void OnPadInZoneSelection( wxCommandEvent& event ) override;
void OnZoneNameChanged( wxCommandEvent& event ) override;
@ -103,4 +104,4 @@ private:
};
#endif
#endif

View File

@ -319,6 +319,7 @@ PANEL_ZONE_PROPERTIES_BASE::PANEL_ZONE_PROPERTIES_BASE( wxWindow* parent, wxWind
// Connect Events
this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnUpdateUI ) );
m_tcZoneName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnZoneNameChanged ), NULL, this );
m_PadInZoneOpt->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnPadInZoneSelection ), NULL, this );
m_GridStyleCtrl->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnStyleSelection ), NULL, this );
m_cbRemoveIslands->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnRemoveIslandsSelection ), NULL, this );
}
@ -328,6 +329,7 @@ PANEL_ZONE_PROPERTIES_BASE::~PANEL_ZONE_PROPERTIES_BASE()
// Disconnect Events
this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnUpdateUI ) );
m_tcZoneName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnZoneNameChanged ), NULL, this );
m_PadInZoneOpt->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnPadInZoneSelection ), NULL, this );
m_GridStyleCtrl->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnStyleSelection ), NULL, this );
m_cbRemoveIslands->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_ZONE_PROPERTIES_BASE::OnRemoveIslandsSelection ), NULL, this );

View File

@ -1680,6 +1680,7 @@
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChoice">OnPadInZoneSelection</event>
</object>
</object>
<object class="gbsizeritem" expanded="false">

View File

@ -90,6 +90,7 @@ class PANEL_ZONE_PROPERTIES_BASE : public wxPanel
// Virtual event handlers, override them in your derived class
virtual void OnUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnZoneNameChanged( wxCommandEvent& event ) { event.Skip(); }
virtual void OnPadInZoneSelection( wxCommandEvent& event ) { event.Skip(); }
virtual void OnStyleSelection( wxCommandEvent& event ) { event.Skip(); }
virtual void OnRemoveIslandsSelection( wxCommandEvent& event ) { event.Skip(); }