← Back to team overview

kicad-developers team mailing list archive

Re: [FEATURE] Partial selection in pcbnew

 

Brian,

Welcome back!  It's good to hear from you after such a long absence.

Cheers,

Wayne

On 5/10/2017 6:18 AM, Brian Sidebotham wrote:
> 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
> <mailto: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 <mailto: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 <mailto:jose.cyborg@xxxxxxxxx>>
>     >> wrote:
>     >>
>     >>> Or switching between object and grid snap :)
>     >>>
>     >>> On Mon, May 8, 2017 at 5:34 PM, Wayne Stambaugh
>     <stambaughw@xxxxxxxxx <mailto: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>
>     >>>>> <mailto: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>
>     >>>>>     <mailto: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>
>     >>>>>     <mailto: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>
>     <mailto: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>
>     >>>>>     <mailto: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>
>     >>>>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >>>>>     >>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >>>>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >>>>>     >>>>> Unsubscribe :
>     https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >>>>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >>>>>     >>>>> More help   : https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >>>>>     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >>>>>     >>>>>
>     >>>>>     >>>>
>     >>>>>     >>>> _______________________________________________
>     >>>>>     >>>> Mailing list: https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >>>>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >>>>>     >>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >>>>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >>>>>     >>>> Unsubscribe : https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >>>>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >>>>>     >>>> More help   : https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >>>>>     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >>>>>     >>>>
>     >>>>>     >>>
>     >>>>>     >>>
>     >>>>>     >>
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >
>     >>>>>     > _______________________________________________
>     >>>>>     > Mailing list: https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >>>>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >>>>>     > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >>>>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >>>>>     > Unsubscribe : https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >>>>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >>>>>     > More help   : https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >>>>>     <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
>     <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>
>     >>>
>     >>>
>     >>
>     >>
>     >> --
>     >> 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 <mailto:kandrey89@xxxxxxxxx>
>     >> Live Long and Prosper,
>     >> Andrey
>     >>
>     >> _______________________________________________
>     >> 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
> 


References