We have to save the value per account and contact, because otherwise
it could lead to problems if a jid is added to more than one account.
As key this uses a string in the form of 'Account-BareJid'.
The config option group 'contacts' is not used because there are values
like 'speller_language' that make more sense to set on a Jid basis, rather than a
Account-Jid basis.
Treat an empty config value or no config value as 'disabled', instead
of writing a config value of 'disabled'. This has the benefit that we
dont have to write config values for contacts were we dont use encryption.
- Add extension points when receiving/sending a message
- Add extension point for setting the lock image
- Add extension point after clicking the send button
- Add extension point when typing
- Add a new menu button to choose the desired encryption
- Extend the PluginManager to hold a list of encryption plugins
ChatControlBase was split from ChatControl into its own module in commit
80221afc2c. With this split the import of the CommandContainer modules
was removed as well, likely because their members are not referenced
anywhere. However, importing these modules even when they are not used
directly is crucial because the contained CommandContainers are only
registered with the command system when their definitions are evaluated.
Import the modules with CommandContainers in chat_control_base.py to fix
the command system. Also add a comment stating more clearly why the
imports need to be kept around.