Hi Seth,

Yeah, I did try some of those other methods first.  But they all let 
implementation details bleed into the wrong places (COLLECORS_GUIDE instead of 
SELECTION_TOOL, but the info still doesn’t belong outside of the router).

You are correct that some of the changes in selectPoint are just cleanup and 
are not required.  I almost removed the Wait(TOOL_EVENT) thing entirely as 
selectPoint is never called with aOnDrag = true.  But that seemed like perhaps 
too much cleanup. ;)

However, it’s not true that Wait will get called under different circumstances 
as the heuristics part isn’t a filter per se, and won’t ever remove everything.

Cheers,
Jeff.


> On 9 Jan 2018, at 20:09, Seth Hillbrand <seth.hillbr...@gmail.com> wrote:
> 
> Jeff-
> 
> I get your reasoning.  However, it seems like you could accomplish the same 
> goal (preventing disambiguation) by using the existing 
> GENERAL_COLLECTOR::Modules[] for your footprint disambiguation and maybe 
> modifying the COLLECTORS_GUIDE or Inspect() to get the track disambiguation.  
> This would reduce the impact of your patch and not create duplicate 
> functionality.
> 
> In other aspects, the changes to selectPoint do not seem required (correct me 
> if I'm wrong) and they introduce a subtle bug by triggering a 
> Wait(TOOL_EVENT) even if the heuristics have removed all items from the 
> collector.
> 
> Overall, I like the idea.  It makes sense to have a post-filter.  But I would 
> worry that this is more invasive than is needed to resolve the issue during 
> feature-freeze.
> 
> -S
> 
> 2018-01-09 11:36 GMT-08:00 Jeff Young <j...@rokeby.ie 
> <mailto:j...@rokeby.ie>>:
> Hi Seth,
> 
> The test_window creates a  SELECTION_TOOL without the rest of kicad behind 
> it.  Since I added methods which SELECTION_TOOL calls, I had to mock them in 
> the test files.
> 
> GENERAL_COLLECTOR::Modules[] can’t be used because the creator of the 
> collector (SELECTION_TOOL) shouldn’t know anything about the semantics of the 
> filter (only the specific action implementation knows that).  In the 
> FootprintFilter case it’s simply enough that you’d nearly be willing to 
> overlook that, but the other filters are more complicated and required things 
> like ROUTER_TOOL knowledge, which definitely shouldn’t be leaking into 
> SELECTION_TOOL.
> 
> Cheers,
> Jeff.
> 
> 
>> On 9 Jan 2018, at 19:26, Seth Hillbrand <seth.hillbr...@gmail.com 
>> <mailto:seth.hillbr...@gmail.com>> wrote:
>> 
>> Same here.  Same errors.  Yes, cmaked.
>> 
>> I don't understand why you are changing the test_window link libraries in 
>> this patch.
>> 
>> Also, why did you decide to write a "FootprintFilter" routine instead of 
>> using the GENERAL_COLLECTOR::Modules[]?
>> 
>> -S
>> 
>> 2018-01-09 11:05 GMT-08:00 Jeff Young <j...@rokeby.ie 
>> <mailto:j...@rokeby.ie>>:
>> Did you do a CMake?  There’s a change in the CMake files….
>> 
>> > On 9 Jan 2018, at 18:59, kristoffer Ödmark <kristofferodmar...@gmail.com 
>> > <mailto:kristofferodmar...@gmail.com>> wrote:
>> >
>> > Hmm, cannot compile, get a lot of undefiner references. Even after nuking 
>> > the build dir.
>> >
>> >
>> > ../../common/libpcbcommon.a(class_pad.cpp.o): In function 
>> > `D_PAD::HitTest(EDA_RECT const&, bool, int) const':
>> > kicad/pcbnew/class_pad.cpp:982: undefined reference to 
>> > `TestPointInsidePolygon(wxPoint const*, int, wxPoint const&)'
>> > ../../common/libpcbcommon.a(class_zone.cpp.o): In function 
>> > `ZONE_CONTAINER::Hatch()':
>> > kicad/pcbnew/class_zone.cpp:1219: undefined reference to 
>> > `FindLineSegmentIntersection(double, double, int, int, int, int, double*, 
>> > double*, double*, double*, double*)'
>> > ../../common/libcommon.a(shape_poly_set.cpp.o): In function 
>> > `SHAPE_POLY_SET::convertToClipper(SHAPE_LINE_CHAIN const&, bool)':
>> > kicad/common/geometry/shape_poly_set.cpp:466: undefined reference to 
>> > `ClipperLib::Orientation(std::vector<ClipperLib::IntPoint, 
>> > std::allocator<ClipperLib::IntPoint> > const&)'
>> > kicad/common/geometry/shape_poly_set.cpp:467: undefined reference to 
>> > `ClipperLib::ReversePath(std::vector<ClipperLib::IntPoint, 
>> > std::allocator<ClipperLib::IntPoint> >&)'
>> > ../../common/libcommon.a(shape_poly_set.cpp.o): In function 
>> > `SHAPE_POLY_SET::booleanOp(ClipperLib::ClipType, SHAPE_POLY_SET const&, 
>> > SHAPE_POLY_SET::POLYGON_MODE)':
>> > kicad/common/geometry/shape_poly_set.cpp:489: undefined reference to 
>> > `ClipperLib::Clipper::Clipper(int)'
>> >
>> >
>> > On 2018-01-09 19:22, Wayne Stambaugh wrote:
>> >> Does the patch resolve your issue?
>> >>
>> >> On 1/9/2018 1:21 PM, kristoffer Ödmark wrote:
>> >>> Yes, I can reproduce this with very thick tracks!
>> >>>
>> >>>
>> >>> On 2018-01-09 16:55, Jeff Young wrote:
>> >>>> Hi Kristoffer,
>> >>>>
>> >>>> That’s odd.  Did you try it with your mouse pointer directly over the
>> >>>> corner?  (You may need a reasonably thick track for this to happen.
>> >>>> Try something on the order of 2mm.)
>> >>>>
>> >>>> Without my change the selection disambiguation is run *before* we know
>> >>>> it’s a drag action on a simple corner, so the selection_tool thinks it
>> >>>> needs to know which of the two segments is to be selected.
>> >>>>
>> >>>> Cheers,
>> >>>> Jeff.
>> >>>>
>> >>>>
>> >>>>> On 9 Jan 2018, at 15:37, Kristoffer Ödmark
>> >>>>> <kristofferodmar...@gmail.com <mailto:kristofferodmar...@gmail.com>> 
>> >>>>> wrote:
>> >>>>>
>> >>>>> If i understand him correctly that would only be when on a corner, I
>> >>>>> think it would be the desired behaviour.
>> >>>>>
>> >>>>> Although, when I try it on my build on my laptop, there is no clarify
>> >>>>> selection menu popping up when trying do drag ( 'd' ) or such on
>> >>>>> corners. Not in opengl anywas. So I dont know.
>> >>>>>
>> >>>>> Application: kicad
>> >>>>> Version: (2017-12-30 revision b55eb0b5f)-master, release build
>> >>>>> Libraries:
>> >>>>>     wxWidgets 3.0.3
>> >>>>>     libcurl/7.57.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4
>> >>>>> libpsl/0.19.1 (+libidn2/2.0.4) libssh2/1.8.0 nghttp2/1.29.0
>> >>>>> Platform: Linux 4.14.12-1-MANJARO x86_64, 64 bit, Little endian, wxGTK
>> >>>>> Build Info:
>> >>>>>     wxWidgets: 3.0.3 (wchar_t,wx containers,compatible with 2.8) GTK+
>> >>>>> 2.24
>> >>>>>     Boost: 1.65.1
>> >>>>>     Curl: 7.57.0
>> >>>>>     Compiler: GCC 7.2.1 with C++ ABI 1011
>> >>>>>
>> >>>>> Build settings:
>> >>>>>     USE_WX_GRAPHICS_CONTEXT=OFF
>> >>>>>     USE_WX_OVERLAY=OFF
>> >>>>>     KICAD_SCRIPTING=ON
>> >>>>>     KICAD_SCRIPTING_MODULES=ON
>> >>>>>     KICAD_SCRIPTING_WXPYTHON=ON
>> >>>>>     KICAD_SCRIPTING_ACTION_MENU=ON
>> >>>>>     BUILD_GITHUB_PLUGIN=ON
>> >>>>>     KICAD_USE_OCE=ON
>> >>>>>     KICAD_SPICE=ON
>> >>>>>
>> >>>>>
>> >>>>> -Kristoffer
>> >>>>>
>> >>>>> On 01/09/2018 04:27 PM, Wayne Stambaugh wrote:
>> >>>>>> Jeff,
>> >>>>>> Have actually confirmed that this is the desired behavior for this
>> >>>>>> outside of you own objectives?  I'm not saying that this is or isn't a
>> >>>>>> good idea but I personally don't drag trace corners around so I'm not
>> >>>>>> sure what the appropriate behavior should be.  You should get comments
>> >>>>>> from the dev list and users before you make a change like this.  As 
>> >>>>>> far
>> >>>>>> as pushing this to the dev repo, if it's not too invasive I will
>> >>>>>> consider it.  If it is a large change set, I would prefer that we hold
>> >>>>>> off until after the stable release.
>> >>>>>> Thanks,
>> >>>>>> Wayne
>> >>>>>> On 1/8/2018 5:49 AM, Jeff Young wrote:
>> >>>>>>> Wayne, if I could get you to don that old project manager’s hat one
>> >>>>>>> more time:
>> >>>>>>>
>> >>>>>>> If we’re still weeks out from declaring an RC, I wanted to make one
>> >>>>>>> more plug for getting rid of the Clarify Selection dialog when
>> >>>>>>> dragging corners or using ‘U’ or ‘I’ over a corner[1].
>> >>>>>>>
>> >>>>>>> While it’s marked Wishlist, it seriously impacts productivity when
>> >>>>>>> editing tracks, and I think most users would consider it a bug
>> >>>>>>> (particularly in the corner case when dragging the corner is
>> >>>>>>> clearly moving both the tracks listed in the Clarify Selection menu).
>> >>>>>>>
>> >>>>>>> I’ve been running the patch for about a week now with no issues.
>> >>>>>>>
>> >>>>>>> Cheers,
>> >>>>>>> Jeff.
>> >>>>>>>
>> >>>>>>> [1] https://bugs.launchpad.net/kicad/+bug/1708869 
>> >>>>>>> <https://bugs.launchpad.net/kicad/+bug/1708869>
>> >>>>>>> _______________________________________________
>> >>>>>>> Mailing list: https://launchpad.net/~kicad-developers 
>> >>>>>>> <https://launchpad.net/~kicad-developers>
>> >>>>>>> Post to     : kicad-developers@lists.launchpad.net 
>> >>>>>>> <mailto:kicad-developers@lists.launchpad.net>
>> >>>>>>> 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@lists.launchpad.net 
>> >>>>>> <mailto:kicad-developers@lists.launchpad.net>
>> >>>>>> 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@lists.launchpad.net 
>> >>>>> <mailto:kicad-developers@lists.launchpad.net>
>> >>>>> 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@lists.launchpad.net 
>> >>> <mailto:kicad-developers@lists.launchpad.net>
>> >>> 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@lists.launchpad.net 
>> >> <mailto:kicad-developers@lists.launchpad.net>
>> >> 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@lists.launchpad.net 
>> > <mailto:kicad-developers@lists.launchpad.net>
>> > 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@lists.launchpad.net 
>> <mailto:kicad-developers@lists.launchpad.net>
>> 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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to