A crash could occur if the plugin window was closed and reopened and a
new resource was added to either the Variable, Action queue, Websocket,
or Twitch tab.
No context object was provided to the signal handlers.
The signal provider is intentionally not deleted when the UI is closed.
Because of this, the signal connections were never cleared when the
underlying tab widget was destroyed.
So, in the case of closing and reopening the settings window, the old
connection with the outdated widget pointers would be called again.
* Remove could lead to the "add" dialog being opened
* Rename could result in some entries not being renamed (due to
FilterComboBox using a QComboBox with setEditable() set to true)
The "core" macro conditions and actions have been extracted out to the
"base" plugin.
The library now mostly contains functionality which is required across
all plugins and (e.g. definitions for macro segments).
The goal is to reduce the complexity and cross-dependencies and group
the source files in a better way.
This should relsove the "library limit of 65535 objects exceeded" build
issue occuring in some Windows build environments.