kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #29432
Re: [FEATURE] Partial selection in pcbnew
JP,
I think that the code "wxPoint near" should also be changed to "wxPoint
nearpt" ('near' also seems to be a somewhat-reserved keyword)
On Wed, May 10, 2017 at 11:23 PM, Oliver Walters <
oliver.henry.walters@xxxxxxxxx> wrote:
> 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
-
[FEATURE] Partial selection in pcbnew
From: Oliver Walters, 2017-05-02
-
Re: [FEATURE] Partial selection in pcbnew
From: Oliver Walters, 2017-05-06
-
Re: [FEATURE] Partial selection in pcbnew
From: Maciej Suminski, 2017-05-06
-
Re: [FEATURE] Partial selection in pcbnew
From: Oliver Walters, 2017-05-06
-
Re: [FEATURE] Partial selection in pcbnew
From: Oliver Walters, 2017-05-07
-
Re: [FEATURE] Partial selection in pcbnew
From: Maciej Sumiński, 2017-05-08
-
Re: [FEATURE] Partial selection in pcbnew
From: Nick Østergaard, 2017-05-08
-
Re: [FEATURE] Partial selection in pcbnew
From: Oliver Walters, 2017-05-08
-
Re: [FEATURE] Partial selection in pcbnew
From: Wayne Stambaugh, 2017-05-08
-
Re: [FEATURE] Partial selection in pcbnew
From: José Ignacio, 2017-05-08
-
Re: [FEATURE] Partial selection in pcbnew
From: Andrey Kuznetsov, 2017-05-09
-
Re: [FEATURE] Partial selection in pcbnew
From: Oliver Walters, 2017-05-09
-
Re: [FEATURE] Partial selection in pcbnew
From: Maciej Sumiński, 2017-05-10
-
Re: [FEATURE] Partial selection in pcbnew
From: Wayne Stambaugh, 2017-05-10
-
Re: [FEATURE] Partial selection in pcbnew
From: Oliver Walters, 2017-05-10