Re-initialize conversion settings on failure
When the conversion fails, it may be the result of the settings values, so reset them to their original values afterward Fixes https://gitlab.com/kicad/code/kicad/-/issues/17886
This commit is contained in:
parent
0476b6c72d
commit
4c0fd6e791
|
@ -235,10 +235,7 @@ CONVERT_TOOL::CONVERT_TOOL() :
|
||||||
m_menu( nullptr ),
|
m_menu( nullptr ),
|
||||||
m_frame( nullptr )
|
m_frame( nullptr )
|
||||||
{
|
{
|
||||||
m_userSettings.m_Strategy = CENTERLINE;
|
initUserSettings();
|
||||||
m_userSettings.m_Gap = 0;
|
|
||||||
m_userSettings.m_LineWidth = 0;
|
|
||||||
m_userSettings.m_DeleteOriginals = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -319,6 +316,15 @@ bool CONVERT_TOOL::Init()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CONVERT_TOOL::initUserSettings()
|
||||||
|
{
|
||||||
|
m_userSettings.m_Strategy = CENTERLINE;
|
||||||
|
m_userSettings.m_Gap = 0;
|
||||||
|
m_userSettings.m_LineWidth = 0;
|
||||||
|
m_userSettings.m_DeleteOriginals = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int CONVERT_TOOL::CreatePolys( const TOOL_EVENT& aEvent )
|
int CONVERT_TOOL::CreatePolys( const TOOL_EVENT& aEvent )
|
||||||
{
|
{
|
||||||
BOARD_DESIGN_SETTINGS& bds = m_frame->GetBoard()->GetDesignSettings();
|
BOARD_DESIGN_SETTINGS& bds = m_frame->GetBoard()->GetDesignSettings();
|
||||||
|
@ -400,6 +406,8 @@ int CONVERT_TOOL::CreatePolys( const TOOL_EVENT& aEvent )
|
||||||
showCopyLineWidth = false;
|
showCopyLineWidth = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CONVERT_SETTINGS previousSettings = m_userSettings;
|
||||||
|
|
||||||
CONVERT_SETTINGS_DIALOG dlg( m_frame, &m_userSettings, showCopyLineWidth, true, true );
|
CONVERT_SETTINGS_DIALOG dlg( m_frame, &m_userSettings, showCopyLineWidth, true, true );
|
||||||
|
|
||||||
if( dlg.ShowModal() != wxID_OK )
|
if( dlg.ShowModal() != wxID_OK )
|
||||||
|
@ -429,6 +437,8 @@ int CONVERT_TOOL::CreatePolys( const TOOL_EVENT& aEvent )
|
||||||
msg = _( "Objects must form a closed shape" );
|
msg = _( "Objects must form a closed shape" );
|
||||||
|
|
||||||
DisplayErrorMessage( m_frame, _( "Could not convert selection" ), msg );
|
DisplayErrorMessage( m_frame, _( "Could not convert selection" ), msg );
|
||||||
|
|
||||||
|
m_userSettings = previousSettings;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,6 +96,11 @@ private:
|
||||||
SHAPE_POLY_SET makePolysFromClosedGraphics( const std::deque<EDA_ITEM*>& aItems,
|
SHAPE_POLY_SET makePolysFromClosedGraphics( const std::deque<EDA_ITEM*>& aItems,
|
||||||
CONVERT_STRATEGY aStrategy );
|
CONVERT_STRATEGY aStrategy );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize the user settings for the tool.
|
||||||
|
*/
|
||||||
|
void initUserSettings();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PCB_SELECTION_TOOL* m_selectionTool;
|
PCB_SELECTION_TOOL* m_selectionTool;
|
||||||
CONDITIONAL_MENU* m_menu;
|
CONDITIONAL_MENU* m_menu;
|
||||||
|
|
Loading…
Reference in New Issue