← Back to team overview

kicad-developers team mailing list archive

Re: [FEATURE] Partial selection in pcbnew

 

Looks like JP has already fixed this :)

On Wed, May 10, 2017 at 10:56 PM, Wayne Stambaugh <stambaughw@xxxxxxxxx>
wrote:

> Windows builds on mingw using gcc 6.3.0 are broken.  Here is the
> compiler error:
>
> C:/msys64/home/wstambaugh/src/kicad-trunk/common/base_struct.cpp: In
> member function 'bool EDA_RECT::IntersectsCircleEdge(const wxPoint&,
> int, int) const':
> C:/msys64/home/wstambaugh/src/kicad-trunk/common/base_struct.cpp:592:17:
> error: expected unqualified-id before '=' token
>      wxPoint far = FarthestPointTo( aCenter );
>                  ^
> C:/msys64/home/wstambaugh/src/kicad-trunk/common/base_struct.cpp:594:18:
> error: expected primary-expression before 'double'
>      double fx = (double) far.x;
>                   ^~~~~~
> C:/msys64/home/wstambaugh/src/kicad-trunk/common/base_struct.cpp:594:18:
> error: expected ')' before 'double'
> C:/msys64/home/wstambaugh/src/kicad-trunk/common/base_struct.cpp:595:18:
> error: expected primary-expression before 'double'
>      double fy = (double) far.y;
>                   ^~~~~~
> C:/msys64/home/wstambaugh/src/kicad-trunk/common/base_struct.cpp:595:18:
> error: expected ')' before 'double'
> make[2]: *** [common/CMakeFiles/common.dir/build.make:1200:
> common/CMakeFiles/common.dir/base_struct.cpp.obj] Error 1
> make[1]: *** [CMakeFiles/Makefile2:326:
> common/CMakeFiles/common.dir/all] Error 2
>
>
> On 5/10/2017 5:41 AM, Maciej Sumiński 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
> >
>
> _______________________________________________
> 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