← Back to team overview

kicad-developers team mailing list archive

Re: Patch to fix a boundary box bug


Brian Sidebotham wrote:
> 2009/11/17 Dick Hollenbeck <dick@...>:
>> Brian Sidebotham wrote:
>>> 2009/11/17 Rob Frohne <rob.frohne@...>:
>>>> Thanks Brian,
>>>> This behavior has bothered me a lot as well. I think your patches will
>>>> improve things.
>>>> How do you make the boundary boxes visible? I have had a lot of trouble
>>>> selecting things with the present method because I would have to guess
>>>> what things might be in the selection box and I was usually wrong.
>>>> Seeing the box helps a lot.
>>>> Also, I took a look at the code to see if we could have a control left
>>>> click keep selecting items and add them to the selected list. I got
>>>> sidetracked on this task, but I still think it would be a big help as
>>>> well. It appears your skills are better than mine. You might want to
>>>> look at it too. :-)
>>>> Rob
>>> Hi Rob,
>>> Look at the Draw method in class_sch_component.cpp under the eeschema
>>> source directory. In current SVN line 235 is where you want to look.
>>> You can remove the #if(0) and corresponding #endif directives in the
>>> code to see the boundary boxes. It is very useful when you're trying
>>> to work out what is going on!
>>> Multiple selection would be nice to have with Ctrl+Click, especially
>>> if common properties could then be edited for the selection. I am
>>> trying to fit in bug fixes at the moment as and when I trip over them.
>>> I'm under pressure to get a PCB design into production though so my
>>> time is extremely limited.
>>> Best Regards,
>>> Brian.
>> Of the two use cases:
>> 1) apply the same operation to multiple objects
>> 2) tell the app which of multiple objects under the cursor you are
>> talking about
>> I think 2) wins in frequency.
>> We have (or had) in our to do list the desire to add the Collector
>> support to eeschema. This is a feature that I added to PCBNEW very
>> early on after I joined the team. The result of the collector then
>> drives a "Selection Clarification" menu which I'm sure you have all
>> seen. This serves us well in PCBNEW, why not stick with this plan,
>> which is already in place? With such support it is not essential to
>> know the bounds of a box, because when you have multiple mouse hits at a
>> given coordinate, the menu tells you what was collected. If only one
>> object was HitTest()ed, then the menu is skipped.
> Hi Dick,
> This patch simply fixes a bug in the component boundary calculations
> where invisible fields are included in the boundary calculations. In
> some cases this can mean that it's currently impossible to select some
> other schematic items because component boundaries are much larger
> than their drawn items.


Your patch could be used a temporary fix until a complete solution as
Dick suggested is implemented. I changed this because I was tired of
accidentally moving the field value when I thought I was selecting the
component. The old behavior made fields a separate item from the
component. This was especially annoying on small components like
resistors and capacitors where the value and reference fields are close
to the body of the component. I failed to take into account the fact
that some people use lots of hidden fields with long strings. I still
think checking for all objects at a given coordinate like pcbnew does is
the way to go. Even if an object is not visible, it still gives the
user an indication that there is an object at that location.


> Best Regards,
> Brian.


Follow ups