← Back to team overview

kicad-developers team mailing list archive

Re: [FEATURE] Partial selection in pcbnew

 

I've been away from the coal face for so long. I've just been catching up
with the list and can't wait to compile the latest!

Good work to all who've been doing some amazing work recently!

Hopefully I'll be able to start contributing again soon. :)

Brian.

On 10 May 2017 at 10:41, Maciej Sumiński <maciej.suminski@xxxxxxx> wrote:

> Hi Oliver,
>
> Thank you very much for your effort, I have just pushed your patches to
> the master branch.
>
> Regards,
> Orson
>
> On 05/09/2017 09:32 AM, Oliver Walters wrote:
> > Two more patches for this set (attached)
> >
> > 0017 - Slight fix for arc segment hit test (line width was not accounted
> > for)
> > 0018 - SELECTION_AREA color now indicates selection mode as discussed
> above:
> >
> > a) Normal selection = BLUE
> > b) Addition selection = GREEN (Shift modifier)
> > c) Subtraction selection = RED (Control modifier)
> >
> > Additionally the line color indicates whether it is window selection
> (left
> > to right) or crossing selection (right to left). This is in lieu of
> making
> > the line dashed which does not seem to be possible unless that is added
> to
> > GAL_CAIRO and GAL_OPENGL.
> >
> > Regards,
> > Oliver
> >
> > On Tue, May 9, 2017 at 3:22 PM, Andrey Kuznetsov <kandrey89@xxxxxxxxx>
> > 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
> >>>
> >>>
> >>
> >>
> >> --
> >> Remember The Past, Live The Present, Change The Future
> >> Those who look only to the past or the present are certain to miss the
> >> future [JFK]
> >>
> >> kandrey89@xxxxxxxxx
> >> Live Long and Prosper,
> >> Andrey
> >>
> >> _______________________________________________
> >> 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