← Back to team overview

kicad-developers team mailing list archive

Re: [FEATURE] Partial selection in pcbnew

 

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
>


References