← Back to team overview

kicad-developers team mailing list archive

Re: [FEATURE] Partial selection in pcbnew

 

In the improved selection tool Ctrl switch to subtractive selection mode.

Regards,
Orson

On 05/09/2017 07:22 AM, Andrey Kuznetsov wrote:
> What's CTRL taken by?
> I thought CTRL would be used to toggle grid snapping?
> 
> On Mon, May 8, 2017 at 3:39 PM, José Ignacio <jose.cyborg@xxxxxxxxx> wrote:
> 
>> Or switching between object and grid snap :)
>>
>> On Mon, May 8, 2017 at 5:34 PM, Wayne Stambaugh <stambaughw@xxxxxxxxx>
>> wrote:
>>
>>> I tend to lean toward Oliver's approach.  Most CAD tools I've used have
>>> this type of includes vs intersects selection paradigm.  I don't see the
>>> need to tie up the modifier key if we don't have to.  I would prefer
>>> that we keep a modifier key open for something like orthogonal move.
>>>
>>> On 5/8/2017 5:51 PM, Oliver Walters wrote:
>>>> 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
>>>> <mailto:oe.nick@xxxxxxxxx>> wrote:
>>>>
>>>>     2017-05-08 14:59 GMT+02:00 Maciej Sumiński <maciej.suminski@xxxxxxx
>>>>     <mailto: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
>>>>     <mailto: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 <mailto: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
>>>>     <mailto: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
>>>>     <https://launchpad.net/~kicad-developers>
>>>>     >>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>>>     >>>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>>     <https://launchpad.net/~kicad-developers>
>>>>     >>>>> More help   : https://help.launchpad.net/ListHelp
>>>>     <https://help.launchpad.net/ListHelp>
>>>>     >>>>>
>>>>     >>>>
>>>>     >>>> _______________________________________________
>>>>     >>>> Mailing list: https://launchpad.net/~kicad-developers
>>>>     <https://launchpad.net/~kicad-developers>
>>>>     >>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>>>     >>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>>     <https://launchpad.net/~kicad-developers>
>>>>     >>>> More help   : https://help.launchpad.net/ListHelp
>>>>     <https://help.launchpad.net/ListHelp>
>>>>     >>>>
>>>>     >>>
>>>>     >>>
>>>>     >>
>>>>     >
>>>>     >
>>>>     >
>>>>     > _______________________________________________
>>>>     > Mailing list: https://launchpad.net/~kicad-developers
>>>>     <https://launchpad.net/~kicad-developers>
>>>>     > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>>>     > Unsubscribe : https://launchpad.net/~kicad-developers
>>>>     <https://launchpad.net/~kicad-developers>
>>>>     > More help   : https://help.launchpad.net/ListHelp
>>>>     <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
>>>
>>
>>
>> _______________________________________________
>> 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
> 


Attachment: signature.asc
Description: OpenPGP digital signature


References