gplugin/gplugin

Implement enable switch in GTK4 viewer

2021-12-16, Elliott Sales de Andrade
f03eee6f9596
Implement enable switch in GTK4 viewer

This adds a `state-set` signal on the plugin row, which merely re-broadcasts the signal from the switch. This enables the view to watch for the signal and pass along the desired state to the manager.

The plugin row sets the display of the enable switch whenever the plugin state refreshes. I'm not entirely sure if all states are displayed in the way we want.

Testing Done:
Start viewer and see that auto-loaded plugins are actually enabled, and that others can be enabled/disabled.

Reviewed at https://reviews.imfreedom.org/r/1193/
There are a few notes about building on OSX.
First off, building has *ONLY* been tested against homebrew. If you want to
support fink or macports, please let me know and I will merge your pull
request.
Currently there is no known way to build the Perl loader on MacOS. So you
**MUST** run meson with `-Dperl5=false`.
## Lua
For the Lua loader to work, you need to install `lgi` from luarocks either
systemwide for lua 5.1 as `lgi` does not currently work with lua 5.4 which is
the default in homebrew.
To make this work, you'll need to install both `lua@5.1` and `luarocks` via
`brew install lua@5.1 luarocks`. Once those are installed, you'll need to
create `/usr/local/etc/luarocks/config-5.1.lua` with the following contents.
```
-- LuaRocks configuration
rocks_trees = {
{ name = "user", root = home .. "/.luarocks" };
{ name = "system", root = "/usr/local" };
}
lua_interpreter = "lua5.1";
variables = {
LUA_DIR = "/usr/local/opt/lua@5.1";
LUA_BINDIR = "/usr/local/opt/lua@5.1/bin";
}
```
Once that is done, you can then finally install `lgi` with the following
command.
```
luarocks --lua-version=5.1 install lgi
```
## Python3
If you're using homebrew, you need to install `pygobject3`.