← Back to team overview

kicad-developers team mailing list archive

Re: [FEATURE] Partial selection in pcbnew

 

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
>

Follow ups

References