file is. This prevents the ids file from being rewritten for every
folder that is opened.
Second diff enables KMMsgDict the dict of serial number to handle
duplicate serial numbers, which can happen in the case of ids file
corruption. In my case somehow an IMAP folder and my outbox ended up
with duplicate serial numbers. This caused my KMail to crash as I
locally I've kept the QASSERT's I recently added to kmreaderwin.cpp.
svn path=/trunk/kdenetwork/kmail/; revision=169373
Activate them via View-menu or rmb-menu from the tree-header.
Changed the qpopup for the folder-context-menu to kpopup to be consistent with the rest.
svn path=/trunk/kdenetwork/kmail/; revision=153547
- 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
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.
- 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.
Included is also a fix for the problem of "no stdin at execute filter"
and the introduction of IdentityCombo.
svn path=/trunk/kdenetwork/kmail/; revision=148825
no longer overwritten by the flags on the server and checking for new mails
only reports the really new mails.
svn path=/trunk/kdenetwork/kmail/; revision=130054
it has always an older date than the index, even if the user changed the clock
or lets KMail running, while it switches itself from daylight savings time to
normal time.
svn path=/trunk/kdenetwork/kmail/; revision=129370
- Show number of queued messages in outbox
- Open thread if it contains new, unread or _important_ messages
svn path=/trunk/kdenetwork/kmail/; revision=128438
- Slightly better support for broken mails without charset header
Thanks to Takumi ASAKI <asataku@osk3.3web.ne.jp>
svn path=/trunk/kdenetwork/kmail/; revision=127974
- Allows easily keeping track of obsolete cache files. These are now cleaned up.
- IMAP folders are now always accesible, not only when already connected.
svn path=/trunk/kdenetwork/kmail/; revision=111641
The idea is to attempt to prevent mail loss when exceptional
events that KMail was not designed to handle occur.
In order to prevent mail loss when an external application
(like procmail) modifies folder files in ~/Mail I want to
check for an out of date index file everywhere that the
index file is updated which is in three places.
1) When closing (for real) a folder
2) When adding message to a folder
3) When compacting a folder
There's also the possibility that an external program
modifies a folder file but doesn't update its date, making
the kmail index file out of sync with the corresponding
folder file. I want to check for this, and if it occurs
then no longer compact that folder file (disabling
compaction should eliminate the possibility of losing mail
due to an index file being out of sync).
I have two ideas for doing this.
1) Check that the index entry matches the folder file when
a message is selected and if not disable compaction for
that folder (I've done that in the attached patch, it would
be best to prompt the user asking if they want to regnerate
the index file).
2) When compacting check that the index entry matches the
folder file. I'm working on a way to this quickly.
svn path=/trunk/kdenetwork/kmail/; revision=106520