← Back to team overview

kicad-developers team mailing list archive

Re: [FEATURE] Partial selection in pcbnew

 

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
> 



Follow ups

References