← Back to team overview

kicad-developers team mailing list archive

Re: Tool-assisted selection disambiguation

 

Ehh… that probably need a bit of background.

When you try to drag a corner of a track, Kicad always annoys you with a selection disambiguation menu (because there are two segments connected at the corner).  Same for dragging a via with one or two tracks connected.

This change fixes that by allowing tools to register filters which are run by the selection tool (which shouldn’t know anything about their specific semantics) before invoking the disambiguation menu.

Cheers,
Jeff.


> On 5 Jan 2018, at 00:11, Jeff Young <jeff@xxxxxxxxx> wrote:
> 
> I’ve got a version of this up and running.
> 
> So far I’ve only written one filter which works for dragging a simple track corner, or a non-fan-out via.  But even that is pretty nice.
> 
> I’ve got a TODO for a footprint filter for ctrl/cmd-E.  It could also be used for Exchange Footprints and Show Local Ratsnest in case anyone assigned hotkeys to them.
> 
> So should I stash this and wait for 6.0, or is this the kind of thing we’re still accepting into 5?
> 
> Cheers,
> Jeff.
> 
> 
>> On 2 Jan 2018, at 13:10, Jeff Young <jeff@xxxxxxxxx <mailto:jeff@xxxxxxxxx>> wrote:
>> 
>> There’s a bug report[1] which complains that every time you attempt to drag a track corner it asks you which track (when of course they share the same corner).
>> 
>> The SELECTION_TOOL shouldn’t know about this kind of stuff, though, so I propose to add a client filter to SELECTION_TOOL::RequestSelection().
>> 
>> Something along the lines of:
>> 
>> SELECTION_TOOL::RequestSelection( int aFlags, 
>>                                   std::function<void(GENERAL_COLLECTOR&)> aClientFilter )
>> 
>> Comments?
>> 
>> Thanks,
>> Jeff.
>> 
>> [1] https://bugs.launchpad.net/kicad/+bug/1503679 <https://bugs.launchpad.net/kicad/+bug/1503679>
>> [2] The SanitizeSelection() routines might also be candidates for moving to this architecture.
> 


Follow ups

References