Ratsnest display options wonky (lp:#1740156)

[Original report](https://bugs.launchpad.net/bugs/1740156) created by **Andy Peters (devel-latke)**
```
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,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
```

Story points: 14.0