From 6b3d36b6c375cccd546f1e8be658306d3b1df191 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Wed, 7 Sep 2022 10:47:44 +0200 Subject: [PATCH] CONVERT_TOOL: also show the "Create From Selection" menu if a array can be created The "Create Array" sub-menu was recently moved to this menu, so it must me shown as soon as an array can be created. --- pcbnew/tools/convert_tool.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pcbnew/tools/convert_tool.cpp b/pcbnew/tools/convert_tool.cpp index 19caec0488..08cfdfb46c 100644 --- a/pcbnew/tools/convert_tool.cpp +++ b/pcbnew/tools/convert_tool.cpp @@ -165,7 +165,10 @@ bool CONVERT_TOOL::Init() auto lineToArc = S_C::Count( 1 ) && S_C::OnlyTypes( { PCB_TRACE_T, PCB_SHAPE_LOCATE_SEGMENT_T } ); - auto showConvert = anyPolys || anyLines || lineToArc; + auto canCreateArray = S_C::MoreThan( 0 ); + + auto showConvertMenu = anyPolys || anyLines || lineToArc || canCreateArray; + auto canCreatePolyType = anyLines || anyPolys; auto canCreateTracks = anyPolys || graphicToTrack; @@ -174,7 +177,6 @@ bool CONVERT_TOOL::Init() m_menu->AddItem( PCB_ACTIONS::convertToKeepout, canCreatePolyType ); m_menu->AddItem( PCB_ACTIONS::convertToLines, anyPolys ); m_menu->AppendSeparator(); - m_menu->AddItem( PCB_ACTIONS::createArray, SELECTION_CONDITIONS::ShowAlways ); // Currently the code exists, but tracks are not really existing in footprints // only segments on copper layers @@ -183,8 +185,11 @@ bool CONVERT_TOOL::Init() m_menu->AddItem( PCB_ACTIONS::convertToArc, lineToArc ); + m_menu->AppendSeparator(); + m_menu->AddItem( PCB_ACTIONS::createArray, canCreateArray ); + CONDITIONAL_MENU& selToolMenu = m_selectionTool->GetToolMenu().GetMenu(); - selToolMenu.AddMenu( m_menu, showConvert, 100 ); + selToolMenu.AddMenu( m_menu, showConvertMenu, 100 ); return true; }