Pass FrameContainer their parents when constructed
There's no reason for the parent to ever change, and this simplifies
a lot of things going forward.
Change-Id: I0dc9f767840ce0989739ea28f08254c78ef0d565
Depends-On: I3c0dc4b6cf42b5c6b69a499ac11195271c0aa846
Reviewed-on: http://gerrit.dmdirc.com/3466
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Move the functionality down into just FrameContainer. Callers can use
isWritable() to determine if the FrameContainer is writable, instead
of horrible instanceof/casting logic.
Change-Id: Iab58f1d2b9275ee3fc60d79e433e158bae784911
Depends-On: I52a09d5f5ad69c2bebafa58582a173f706515fa6
Reviewed-on: http://gerrit.dmdirc.com/3426
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
There's no sane reason for this to be an abstract method - instead
just create the tab completer and pass it up to WritableFrameContainer.
Change-Id: Ifa80de021c22d2e302d4b66514923cd08c91cac4
Depends-On: I15ab9677fdbcb510ab87a69a07ce8ecb3a994f7f
Reviewed-on: http://gerrit.dmdirc.com/3422
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Previously /mode #channel failed with an exception trying to
get the arguments. Now it works as expected.
Also fix an issue with silence chars not being propagated to
channel command - /.topic #channel will now work silently.
Change-Id: Ifa314b0daf81a30003d5879b9484e759668bc763
Fixes-Issue: CLIENT-455
Reviewed-on: http://gerrit.dmdirc.com/3208
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Makes more sense to just bite the bullet and have FrameContainers
require a URLBuilder so they can make an IconManager, rather than
have every caller pass one in.
Also removes the silly map which would've only ever had one entry,
and stops us making 19 million icon managers for giggles.
Change-Id: I3b95185db3f7e6ef09a6c4f91cd28c88d2c601ba
Depends-On: Ida8887d4065db2f26080986a4c426c6de700d65c
Reviewed-on: http://gerrit.dmdirc.com/3107
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
The highest level command parser now generates the context, regardless of
who executes it. So a global command executed in a channel window will get
a ChannelCommandContext, whereas before it got a plain CommandContext.
Commands that don't expect other contexts will work as before, because the
inheritence tree of contexts mirorrs the command parser (e.g., if a
ServerCommandParser executes a command, you can guarantee its context will
be a sublcass of ServerCommandContext).
This fixes the /set command never allowing --channel.
Change-Id: I86e3c9f0bfedecb5c6b538e2309528c9e71f5eb3
Fixes-issue: CLIENT-424
Reviewed-on: http://gerrit.dmdirc.com/3085
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
These are a hold-over from when the core had to have a back-and-forth with
the UI in order to close a window.
Provide stub implementations in FrameContainer, deprecate them, and remove
any unecessary overrides in the core.
Change-Id: Icf9bfc6bc40b66135d161a5047d01d46b2171234
Reviewed-on: http://gerrit.dmdirc.com/3008
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Anywhere that doesn't just work with a Connection, cast back to a Server for
now. These can be tidied up later.
Change-Id: I02a54b0bcfaef08d5757cc015c356f9779ec0371
Depends-On: Id55c3611173be7ed79fae8f9e976996d713b8646
Reviewed-on: http://gerrit.dmdirc.com/2950
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
- Don't have FrameContainers add themselves to the WindowManager in
the constructor.
- Don't make FrameContainers keep a reference to WindowManager just
to remove themselves when they're closed
- Instead have WindowManager register a FrameClosed listener and use
that to remove windows itself.
Change-Id: Iadbca8a28f7ef3372df7fda722a3cbba2a0fbad6
Depends-On: I0f60ac23438313cab49cdb86c089938f5ee44abc
Reviewed-on: http://gerrit.dmdirc.com/2842
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
Remove the remaining WindowManager singleton refs.
Add a GlobalWindowManager to keep state and references, rather than
use static methods on GlobalWindow.
Minor tidying.
Change-Id: I65b84082f0a07cdc9e4c05263f6c5c77282e9b04
Reviewed-on: http://gerrit.dmdirc.com/2818
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Make the ColourManager into a proper class so it can have
dependencies, just like a real boy.
Change-Id: Ib49f046f7dee6f240cb0970603b4fcd3d71f3cba
Reviewed-on: http://gerrit.dmdirc.com/2696
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
Sprinkle some annotations over the CommandManager
More fiddling with NB7.1 settings
Change-Id: I2a0b751798249d4cc3e527f6d2e5525d1936f0e1
Reviewed-on: http://gerrit.dmdirc.com/2278
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
Add new base plugin for plugins requring extracted files.
Remove plugininfo getters and setters.
Add meta data to available injections.
Change-Id: Id6cafe38cb04a9ee4513ac6e98158faf3cafc37d
Depends-On: Ib559fda3ac9d5b65937c563b165ef078106cdd15
Reviewed-on: http://gerrit.dmdirc.com/2095
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Chris Smith <chris@dmdirc.com>
Highlights:
- FrameContainers are now generic, according to their window type
- Writable frame containers now handle their tab completers
- Redirect plugin works again
- Windows are no longer actively requested from the UI; the UI
creates and adds them in response to events from the WindowManager
fixes issue 3997, fixes issue 4000, fixes issue 4012, fixes issue 4030
fixes issue 4027, fixes issue 4028, fixes issue 4029, fixes issue 4031
fixes issue 4032, fixes issue 4033
Change-Id: Ife307728e46bd3b6dcd189be6886ab8b6fbd9212
Reviewed-on: http://gerrit.dmdirc.com/1144
Reviewed-by: Gregory Holmes <greg@dmdirc.com>
Automatic-Compile: Gregory Holmes <greg@dmdirc.com>