← Back to team overview

kicad-developers team mailing list archive

Ratsnest local ratsnest display option wackiness

 

I am working in GAL mode, with yesterday’s nightly. I have reported this as bug 1740156.

There are three controls for ratsnest display: left-hand-side toolbar’s (LHS) Hide/Show Board Ratsnest button, Visibility Render tab’s Ratsnest checkbox, and the right-hand-side (RHS) toolbar’s Display Local Ratsnest button.

Toggling the LHS Board Ratsnest button toggles the visibility of the whole board’s ratsnest, as expected. The icon in this button changes so subtly that it’s not at all obvious that it changes! However, the tooltip for this button changes correctly. That is, when the ratsnest is visible, the tooltip reads “hide board ratsnest,” and when the ratsnest is invisible, it reads “show board ratsnest.” This is good — the tooltip should show what will happen if you press the button. Also, toggling this button toggles the checkmark in the ratsnest visibility option in the render thing. This too is good.

In the visibility window render tab, toggling the Ratsnest checkbox toggles the whole board ratsnest, as expected. When the checkbox is off, the ratsnest is gone; when on, the ratsnest appears. Also, the LHS toolbar board ratsnest button changes tooltip and (very subtly) its icon appropriately. So far so good. 

(However, the tooltip for the visibility checkbox always says “show unconnected nets as a ratsnest,” so it explains the feature, but doesn’t explain the effect of the checkbox toggle. The layer options in the visibility area are different: the checkboxes all have tooltips that say “enable this for visibility” and the items themselves have tooltips that are descriptive. This is an inconsistency, not really a bug.)

Now the really useful feature, the “local ratsnest.” It seems to work when it wants! Toggling it when the board ratsnest is enabled has no effect. The whole board ratsnest remains visible, the tooltip does not change from  “Display local ratsnest” and its icon very subtly changes until you either click on something or hit M with the cursor over a footprint, at which point it reverts to its previous state.

After some experimentation, it seems as if the only way to enable local ratsnest display is to toggle the ratsnest visibility to off, so all ratsnest lines vanish, then hover the mouse over a footprint and hit “M," at which time the nets connected to that footprint will appear and move as you move the part. The ratsnest doesn’t appear when you click on a part to select it, you must hit “M.” BUT — this does not hold true for the LHS Board Ratsnest button, that is, if you turn board ratsnest off with that button and select and move a part, no local ratsnest is displayed. Thus the visibility checkbox and the LHS toolbar button are not redundant.

If in that mode, you place the part (left-mouse-button click), the ratsnest lines vanish, and press the LHS Board Ratsnest button, the whole board ratsnest does not appear until you select or move a footprint. But, if you toggle the ratsnest visibility checkbox, the board ratsnest appears immediately.

Finally, it is clear that the RHS Local Ratsnest toolbar button does absolutely nothing.

My guess is that the logic should work the following way:

a) LHS ratnest button should toggle ratsnest on and off, with its icon state showing the current state and make it obvious.
b) RHS local ratsnest button should toggle between board and local ratsnest
c) Eliminate render tab visibility option for ratsnest entirely.

I understand that c) is where the ratsnest color may be changed, and if the user changes the background color to white, then white ratsnest lines become invisible. So perhaps the way this all should work is:

a) Eliminate LHS ratsnest toolbar button entirely.
b) Toggle ratsnest visibility with the checkbox in the render tab.
c) RHS ratsnest button toggles between board and local ratnest button. (And its tooltip should change with the state.)

I know this is somewhat long-winded but local ratnest display is really important when you’re working on a crowded board. 





Application: kicad
Version: (2017-12-24 revision 5708665)-master, release build
Libraries:
    wxWidgets 3.0.2
    libcurl/7.54.0 LibreSSL/2.0.20 zlib/1.2.11 nghttp2/1.24.0
Platform: Mac OS X (Darwin 17.3.0 x86_64), 64 bit, Little endian, wxMac
Build Info:
    wxWidgets: 3.0.2 (UTF-8,STL containers,compatible with 2.8)
    Boost: 1.61.0
    Curl: 7.43.0
    Compiler: Clang 7.3.0 with C++ ABI 1002

Build settings:
    USE_WX_GRAPHICS_CONTEXT=ON
    USE_WX_OVERLAY=ON
    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