Reduces unread status changes to publish to the eventbus
at most once every 200ms per window. These events are
handled synchronously on the EDT so cause massive
performance issues.
When connecting to several bouncers with huge backbuffers
this makes the client usable in seconds rather than tens of minutes.
Internally this uses RX to handle the throttling, because it's
super easy. We might eventually want to expose that externally
instead of using an event bus, but I'm not sure.
This is for the interfaces/trivial implementation classes that
DMDirc plugins can interact with. Eventually plugins will build
against the API instead of the DMDirc client itself, which will
allow for remote/detachable clients (amongst other things).
Stop swimming against the tide and accept what most of the rest of
the world does.
While it adds an annoying depth to the actual source code, it makes
the root directory nicer (no more 'test-res' dirs), means we don't
have to override the gradle config, and makes it nicer to work in
IDEA 2016.1.
This release contains some performance improvements compared
to the version we were using.
Error handlers are now passed in at construction time, so
there was a small bit of refactoring required.
Building client:fatjar will bundle all plugins in the 'plugin'
configuration in gradle (currently IRC parser, Swing UI, two
tab completers) into a client jar.
Fixes #100