Ratsnest display options wonky
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Fix Released
|
Low
|
Seth Hillbrand |
Bug Description
I am working in GAL mode, with yesterday’s nightly.
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,
Boost: 1.61.0
Curl: 7.43.0
Compiler: Clang 7.3.0 with C++ ABI 1002
Build settings:
USE_
USE_
KICAD_
KICAD_
KICAD_
KICAD_
BUILD_
KICAD_
KICAD_SPICE=ON
Changed in kicad: | |
status: | Fix Committed → Fix Released |
I am not sure I follow everything here, but I have filed a separate bug report (#1740646) for an appcrash in GAL that hit when exploring (due to your current report) the local ratnests. Also the local ratnests did not display in GAL (with Windows nightly 2017-12-29 revision 93683d002) when footprints were selected; I guess that is what you also observe, they do display when you move as you say, but this is standard behavior also without that icon selected.
I agree that the "Visibility Render tab’s Ratsnest checkbox" seems redundant, but it does not hurt to have an additional location to turn this on and off where everything is in one place?
So I do not agree to "a) Eliminate LHS ratsnest toolbar button entirely.". The Render tab’s Ratsnest checkbox is normally not visible and will be difficult to find for new users and requires additional mouse clicks.
In classic canvas where local ratnests are working, the selection is cumulative instead of selecting one net at a time, so one has to turn it off again by toggling the LHS before selectively looking at another local local ratnest. I am not sure this is the best approach, but one can probably live with it. Each approach has its merits.
Certainly the local ratnests selection in GAL is in need to be looked at.