- new base class ConfigManager with commit/rollback functionality forced on
subclasses through pure virtuals.
All new managers should inherit this and implement the branching bahaviour
of IdentityManager, so that the configuredialog can work on the branch while
the rest of KMail sees only the "old" configuration.
- new IdentityManager, implementing the ConfigManager for KMIdentity's.
- new Signature class abstracting the signature processing.
- new structure for identities in kmailrc:
o upgrade-signature.pl: Turns the old signature-related config keys into
a sigtype/value scheme.
o kmail-upd-identities.pl: Removes all groups for identities not listed in
[Identity]/IdentityList.
Renames all remaining groups to [Identity #n],
with n starting a 0.
Saves the name of the default identity in
[General]/Default Identity
Together with the yet to be committed changes to existing files, this cleans
cleans up signature and identity handling. The only user-visible change is that
you can now rename the default identity.
This adds several new technologies to KMail/KMKernel:
- from the new Signature handling: A service to non-QObjects to collect
StdOut and/or StdErr of KProcess (-derived) classes for them.
(Will also be used in KMFilterAction's later on)
- from IdentityManager: A service to ConfigManagers requesting a sync of
kapp->config(). The requests get delayed, so multiple requests can
be serviced with a single kapp->config()->sync().
- from ConfigManager: A service to other ConfigManagers and to GUI elements
that wish to be notified of any change in a particular ConfigManager
implementation: Whenever a commit() changes something, the changed() signal
is emitted.
(Will be used for an IdentityCombo implementation later on)
Will post the patch to existing files later on for review and testing.
svn path=/trunk/kdenetwork/kmail/; revision=147875