Don't allow negative line widths to shrink bounding box.
Fixes https://gitlab.com/kicad/code/kicad/issues/9776
This commit is contained in:
parent
7ccf658379
commit
78be5df39a
|
@ -647,7 +647,7 @@ const EDA_RECT EDA_SHAPE::getBoundingBox() const
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
bbox.Inflate( m_width / 2 );
|
bbox.Inflate( std::max( 0, m_width / 2 ) );
|
||||||
bbox.Normalize();
|
bbox.Normalize();
|
||||||
|
|
||||||
return bbox;
|
return bbox;
|
||||||
|
|
|
@ -35,6 +35,7 @@ DIALOG_LIB_SHAPE_PROPERTIES::DIALOG_LIB_SHAPE_PROPERTIES( SYMBOL_EDIT_FRAME* aPa
|
||||||
m_lineWidth( aParent, m_widthLabel, m_widthCtrl, m_widthUnits, true )
|
m_lineWidth( aParent, m_widthLabel, m_widthCtrl, m_widthUnits, true )
|
||||||
{
|
{
|
||||||
SetTitle( aItem->GetTypeName() + wxT( " " ) + GetTitle() );
|
SetTitle( aItem->GetTypeName() + wxT( " " ) + GetTitle() );
|
||||||
|
m_helpLabel->SetFont( KIUI::GetInfoFont( this ) );
|
||||||
|
|
||||||
SetInitialFocus( m_widthCtrl );
|
SetInitialFocus( m_widthCtrl );
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,10 @@ DIALOG_LIB_SHAPE_PROPERTIES_BASE::DIALOG_LIB_SHAPE_PROPERTIES_BASE( wxWindow* pa
|
||||||
|
|
||||||
dlgBorderSizer->Add( bSizerLineWidth, 0, wxEXPAND, 5 );
|
dlgBorderSizer->Add( bSizerLineWidth, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
m_helpLabel = new wxStaticText( this, wxID_ANY, _("Set width to 0 to use Schematic default symbol line width."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_helpLabel->Wrap( 333 );
|
||||||
|
dlgBorderSizer->Add( m_helpLabel, 0, wxALL, 5 );
|
||||||
|
|
||||||
wxString m_fillCtrlChoices[] = { _("Do not fill"), _("Fill with body outline color"), _("Fill with body background color") };
|
wxString m_fillCtrlChoices[] = { _("Do not fill"), _("Fill with body outline color"), _("Fill with body background color") };
|
||||||
int m_fillCtrlNChoices = sizeof( m_fillCtrlChoices ) / sizeof( wxString );
|
int m_fillCtrlNChoices = sizeof( m_fillCtrlChoices ) / sizeof( wxString );
|
||||||
m_fillCtrl = new wxRadioBox( this, wxID_ANY, _("Fill Style"), wxDefaultPosition, wxDefaultSize, m_fillCtrlNChoices, m_fillCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
m_fillCtrl = new wxRadioBox( this, wxID_ANY, _("Fill Style"), wxDefaultPosition, wxDefaultSize, m_fillCtrlNChoices, m_fillCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
||||||
|
|
|
@ -264,6 +264,67 @@
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxStaticText" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Set width to 0 to use Schematic default symbol line width.</property>
|
||||||
|
<property name="markup">0</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_helpLabel</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass">; ; forward_declare</property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<property name="wrap">333</property>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">10</property>
|
<property name="border">10</property>
|
||||||
<property name="flag">wxEXPAND|wxTOP|wxBOTTOM</property>
|
<property name="flag">wxEXPAND|wxTOP|wxBOTTOM</property>
|
||||||
|
|
|
@ -38,6 +38,7 @@ class DIALOG_LIB_SHAPE_PROPERTIES_BASE : public DIALOG_SHIM
|
||||||
wxStaticText* m_widthLabel;
|
wxStaticText* m_widthLabel;
|
||||||
wxTextCtrl* m_widthCtrl;
|
wxTextCtrl* m_widthCtrl;
|
||||||
wxStaticText* m_widthUnits;
|
wxStaticText* m_widthUnits;
|
||||||
|
wxStaticText* m_helpLabel;
|
||||||
wxRadioBox* m_fillCtrl;
|
wxRadioBox* m_fillCtrl;
|
||||||
wxCheckBox* m_checkApplyToAllUnits;
|
wxCheckBox* m_checkApplyToAllUnits;
|
||||||
wxCheckBox* m_checkApplyToAllConversions;
|
wxCheckBox* m_checkApplyToAllConversions;
|
||||||
|
|
|
@ -104,7 +104,7 @@ PANEL_SETUP_FORMATTING_BASE::PANEL_SETUP_FORMATTING_BASE( wxWindow* parent, wxWi
|
||||||
fgSizer321->SetFlexibleDirection( wxBOTH );
|
fgSizer321->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizer321->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizer321->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
m_lineWidthLabel = new wxStaticText( sbSizer41->GetStaticBox(), wxID_ANY, _("Default line thickness:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_lineWidthLabel = new wxStaticText( sbSizer41->GetStaticBox(), wxID_ANY, _("Default line width:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_lineWidthLabel->Wrap( -1 );
|
m_lineWidthLabel->Wrap( -1 );
|
||||||
fgSizer321->Add( m_lineWidthLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
fgSizer321->Add( m_lineWidthLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
|
|
@ -863,7 +863,7 @@
|
||||||
<property name="gripper">0</property>
|
<property name="gripper">0</property>
|
||||||
<property name="hidden">0</property>
|
<property name="hidden">0</property>
|
||||||
<property name="id">wxID_ANY</property>
|
<property name="id">wxID_ANY</property>
|
||||||
<property name="label">Default line thickness:</property>
|
<property name="label">Default line width:</property>
|
||||||
<property name="markup">0</property>
|
<property name="markup">0</property>
|
||||||
<property name="max_size"></property>
|
<property name="max_size"></property>
|
||||||
<property name="maximize_button">0</property>
|
<property name="maximize_button">0</property>
|
||||||
|
|
Loading…
Reference in New Issue