← Back to team overview

kicad-developers team mailing list archive

Re: [FEATURE] Partial selection in pcbnew

 

I was approaching this from having used mechanical CAD tools where the
direction of selection is the standard approach. Whatever function is
chosen, it will still be required that the users adjust to the new style,
manuals updated, etc.

Is assigning what is essentially the last remaining modifier key worth it
for this?

On 8 May 2017 23:55, "Nick Østergaard" <oe.nick@xxxxxxxxx> wrote:

2017-05-08 14:59 GMT+02:00 Maciej Sumiński <maciej.suminski@xxxxxxx>:
> Hi Oliver,
>
> I took your set of patches for a test drive. I am glad that you thought
> about the subtractive mode in the selection tool, it really fits there.
> Regarding different selection modes - I like the idea, but I think the
> two modes should be more distinct, changing the selection direction
> might be not enough.
>

I personally prefer modifier keys as we are used to in Gimp and Inkscape.

> I observed another user trying out the tool and he could not tell how
> does it work, but noticed it is a bit different than the old tool.
>
> Perhaps one of the following would work:
>
> - change the selection box colors so they are easier to tell apart (my
> mate was surprised to find out there were two colors for the selection
box)
>
> - change the mode using a key modifier (I think only Alt is left free)
> or mouse button
>
> - add an option to select the default mode (though I do not really like
> having too many options to set)
>
> I agree with Tom about the geometry library. IIRC currently it is only
> used by the PNS router, but ultimately we would like to use it in the
> primary model. The library already provides methods to check for
> collisions between basic shapes, yet we still need a few more.
> It would be a pity to drop your code now, so perhaps we could merge the
> code as is and fix the methods during the model refactor.
>
> Just to let you know, there are a few code formatting violations (mostly
> not keeping two empty lines between method definitions in .cpp files),
> but as they are infrequent - I can handle them myself.
>
> Regards,
> Orson
>
> On 05/07/2017 02:11 AM, Oliver Walters wrote:
>> Maciej,
>>
>> That was it! Thanks for the hint.
>>
>> #0016 attached, which fixes both issues:
>>
>> a) No more double-selection of module and module-items (pads / lines /
etc)
>> in PCBNEW
>> b) Disable selection of entire module in MODEDIT
>>
>> As far as I can tell this patchset is now working very well.
>>
>> Regards,
>> Oliver
>>
>> On Sat, May 6, 2017 at 10:21 PM, Oliver Walters <
>> oliver.henry.walters@xxxxxxxxx> wrote:
>>
>>> Maciej,
>>>
>>> Thanks, I'll look into that. If you have a chance to look over what I've
>>> done, I'd appreciate that :)
>>>
>>> On Sat, May 6, 2017 at 10:17 PM, Maciej Suminski <
maciej.suminski@xxxxxxx>
>>> wrote:
>>>
>>>> Hi Oliver,
>>>>
>>>> I have not tested the patches yet, but my gut feeling says that you
miss
>>>> calling SELECTION_TOOL::selectable() to filter out redundant items.
>>>>
>>>> Regards,
>>>> Orson
>>>>
>>>> On 05/06/2017 09:21 AM, Oliver Walters wrote:
>>>>> Three further patch files attached:
>>>>>
>>>>> - Different color select box based on direction
>>>>> - Fixed HitTest for EDA_TEXT
>>>>> - Control modifier unselects anything in rectangle.
>>>>>
>>>>> The major piece of feedback I need right now is how to perfect the
>>>>> behaviour of the tool in PCBNEW and MODEDIT:
>>>>>
>>>>> a) PCBNEW
>>>>>
>>>>> Selecting part of a MODULE (right to left) will select both the entire
>>>>> module and also any parts of the module that you touched (lines, pads,
>>>>> etc). Then, when you move the module, the doubly-selected items are
>>>> moved
>>>>> twice! It is hard to describe properly but if you try this you will
see
>>>>> what I mean.
>>>>>
>>>>> b) MODEDIT
>>>>>
>>>>> Selecting any item in the footprint selects the entire footprint,
which
>>>> is
>>>>> highly undesirable. In this case I think the best approach is to
filter
>>>> the
>>>>> MODULE from the selection entirely. But I am not sure how to do this.
>>>>>
>>>>> Feedback welcome :)
>>>>>
>>>>> Regards,
>>>>> Oliver
>>>>>
>>>>> On Tue, May 2, 2017 at 5:25 PM, Oliver Walters <
>>>>> oliver.henry.walters@xxxxxxxxx> wrote:
>>>>>
>>>>>> I have attached a patch-set that implements "partial selection" of
>>>> objects
>>>>>> when the selection box is dragged right-to-left.
>>>>>>
>>>>>> L -> R = Objects must be completely enclosed to be selected
>>>>>> R -> L = Objects that intersect the selection rectangle will be
>>>> selected.
>>>>>>
>>>>>> To achieve this I had to fix a lot of the HitTest implementations as
>>>> this
>>>>>> was broken for most shapes, under a variety of edge cases (some
HitTest
>>>>>> code did not work at all).
>>>>>>
>>>>>> There are two issues I see as outstanding, and am unsure how to
>>>> proceed:
>>>>>>
>>>>>> 1. When editing a PCB, selecting part of a footprint (e.g. a line of
>>>> the
>>>>>> courtyard) selects both that line and the entire footprint. This
causes
>>>>>> some issues when the footprint is dragged around the PCB. I believe
>>>> that
>>>>>> the line should not be selected separately, but the entire footprint
>>>> should.
>>>>>>
>>>>>> 2. The inverse of 1. In the footprint editor, selecting a single
>>>> graphical
>>>>>> item selects the entire footprint. Somehow I would like to filter the
>>>>>> selection such that individual items are selected but NOT the entire
>>>>>> footprint.
>>>>>>
>>>>>> Feedback please! :)
>>>>>>
>>>>>> I have fixed hit testing (both for wxPoint and EDA_RECT comparison)
>>>> for:
>>>>>>
>>>>>> - Pads (all shapes)
>>>>>> - Lines
>>>>>> - Circles
>>>>>> - Arcs
>>>>>> - Text items
>>>>>> - Zones
>>>>>> - Footprints
>>>>>>
>>>>>> Cheers,
>>>>>> Oliver
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Mailing list: https://launchpad.net/~kicad-developers
>>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>
>>>>
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~kicad-developers
>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>> More help   : https://help.launchpad.net/ListHelp
>>>>
>>>
>>>
>>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>

Follow ups

References