kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #29428
Re: [FEATURE] Partial selection in pcbnew
-
To:
<kicad-developers@xxxxxxxxxxxxxxxxxxx>
-
From:
Maciej Sumiński <maciej.suminski@xxxxxxx>
-
Date:
Wed, 10 May 2017 11:41:57 +0200
-
Authentication-results:
spf=pass (sender IP is 188.184.36.46) smtp.mailfrom=cern.ch; lists.launchpad.net; dkim=none (message not signed) header.d=none;lists.launchpad.net; dmarc=bestguesspass action=none header.from=cern.ch;
-
In-reply-to:
<CAMfgvU_EQxhE3rwJmFFT5n05tHmxUqurLNdS6RoLYm+O=Amwkg@mail.gmail.com>
-
Spamdiagnosticmetadata:
NSPM
-
Spamdiagnosticoutput:
1:99
-
User-agent:
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1
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
>
Attachment:
signature.asc
Description: OpenPGP digital signature
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