← Back to team overview

kicad-developers team mailing list archive

Re: [FEATURE] Partial selection in pcbnew

 

Hi Oliver,

Unfortunately, as you have noticed - there is no way to draw dashed
lines in GAL at the moment.

I really like the new way of the selection mode indication. I vote for
merging the patch. If there are no other objections, I will do it.

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