Patch by Jean-Christophe Dubois <jcd at tribudubois dot net>, thanks!
This is a backport of rev. 751307 from trunk!
svn path=/branches/kdepim/enterprise/kdepim/; revision=760353
keeping the msginfo pointer around in the message object, and restoring it on
unGet. Should help with a whole class of crashes around filtering, searching
etc. Original patch by Ingo and Andreas, with some fixes and memleak plugs
in corner cases by me. We'll testdrive this a while in enterprise branch, let's
see how it behaves.
CCMAIL: a.gungl@gmx.de
CCMAIL: ingo@kde.org
svn path=/branches/kdepim/enterprise/kdepim/; revision=694327
SVN commit 662110 by wstephens:
3.5+ version of Till's dimap mail loss fix, see r662047
For reference :
SVN commit 662047 by tilladam:
Apply ported version of the mail loss debugging and explicit deletions patch,
which I've been developing with the help of some adventurous users. Thanks!
This tracks all deletions that happen through user actions and adds a check
to the sync making sure that only things that were explicitely deleted
are removed during sync. If unsure, the sync now re-downloads (duplicates)
instead of removing mails, which should be safer. Also adds a lot of
conditional debugging and refactors open/close to duplicate less code.
Will has a ported version of this for 3.x, which will go into pim+ shortly.
SVN commit 678604 by tilladam:
Clear the cache of explicitely deleted uids early enough, right after successful
deletion on the server, so messages taken during getting of messages (because of
filtering) are properly remembered. Fixes kolab/issue1792.
svn path=/branches/KDE/3.5/kdepim/; revision=680182
kmail. Add the ability to use a configurable color for the
folder name and size when it is close to a configurable quota
threshold (provided the folder has quota info in the first
place). Implement size retrieval for mbox and maildir storage.
(prokde35 w1-6)
svn path=/branches/kdepim/enterprise/kdepim/; revision=669156
SVN commit 633071 by winterz:
merge SVN commit 632062 by adridg:
After updating KMail and throwing away index files, I encountered a file which has charset= set, and that triggered
a QGList warning when subscripting an empty string; adding this extra check for empty charsets stops crashing after
that warning.
SVN commit 633069 by winterz:
merge SVN commit 632089 by adridg:
TRUE and FALSE are C-isms, use C++ keywords instead
merge SVN commit 632360 by adridg:
Indentation style is spaces; there's crashes in here occasionally after removing index files, rather peculiar.
svn path=/branches/kdepim/enterprise/kdepim/; revision=667618
which I've been developing with the help of some adventurous users. Thanks!
This tracks all deletions that happen through user actions and adds a check
to the sync making sure that only things that were explicitely deleted
are removed during sync. If unsure, the sync now re-downloads (duplicates)
instead of removing mails, which should be safer. Also adds a lot of
conditional debugging and refactors open/close to duplicate less code.
Will has a ported version of this for 3.x, which will go into pim+ shortly.
svn path=/branches/kdepim/enterprise/kdepim/; revision=662047
This obviously reintroduces issue661, "forwarding emails can produce bad signature", which will have to be fixed another way once I get more infos about it.
Also remove getMsgString from all folder classes, since it's now unused; getDwString is used instead.
svn path=/branches/kdepim/enterprise/kdepim/; revision=650094
The time between Ctrl+Enter and the composer window disappearing is noticeably shorter (it's almost immediate now), especially when no crypto is used.
This is part of the contracted work for kolab issue 1222 ("out of memory when signing large attachments").
svn path=/branches/KDE/3.5/kdepim/; revision=633777
This is part of the contracted work for kolab issue 1222 ("out of memory when signing large attachments").
svn path=/branches/kdepim/enterprise/kdepim/; revision=633625
After updating KMail and throwing away index files, I encountered a file which has charset= set, and that triggered a QGList warning when subscripting an empty string; adding this extra check for empty charsets stops crashing after that warning.
svn path=/branches/KDE/3.5/kdepim/; revision=633071
Suppose headers charset from content-type header if headers not
properly encoded. If content-type charset is "us-ascii", use "utf-8"
instead. Write maildir and mbox indexes in right encoding.
BUGS:98079
svn path=/branches/KDE/3.5/kdepim/; revision=614058
but not too early, to make moves from online imap into global shared
dimap folders possible (Kolab Issue 1395)
svn path=/branches/kdepim/proko2/kdepim/; revision=582786
the helper function crlf2lf there, which was formerly a class static in
FolderStorage. Remove the now obsolete forward Folder -> Folderstorage
and port all users.
svn path=/trunk/KDE/kdepim/; revision=435216
it, if there is no physical folder yet. Code creating (instantiating)
KMFolders does not need to care. Remove the ugly "bool imap" parameter
from create() and do proper reimplementation instead. Remove create()
forward from KMFolder -> FolderStorage.
This fixes "no such file or folder" warnings when creating or syncing
down new folders.
In case you missed it, today is Zack's birthday, so show the man some
love, will ya?
svn path=/trunk/KDE/kdepim/; revision=430989
handling and index handling.
o Make it possible to have folders that optionally have no index
and/or don't export their serial numbers to the message dict. This
was partly possible before, but relying on all kinds of implicit (and
often wrong) assumptions as to the presence and state of various
datastructures and files on disk.
o [TRUE|FALSE] => [true|false] (sorry about mixing this in)
o group a bunch of bools and use a bit for each to save memory
o remove index related forwards folder -> folderstorage
o api dox additions
Fixed the crashes with local and maildir accounts in the process, I
think.
BUG: 108386
svn path=/trunk/KDE/kdepim/; revision=430817
fooFolderIdsFile from fooMsgDict, to make the distinction somewhat
clearer
o move the only folder ids handling function not implemented in
FolderStorage to there and out of KMFolderIndex, which also means
it does not have to be virtual
o clarify comments and api dox
svn path=/trunk/KDE/kdepim/; revision=428615
here: http://lists.kde.org/?l=kmail-devel&m=111945756024656&w=2
I've changed the KMMsgDict::instance() to return a pointer instead of a
reference, compared to the patch I posted, after valid criticism from
Marc that the pattern is generally used with a pointer, in KDE, so it's
better not to surprise people here.
svn path=/trunk/KDE/kdepim/; revision=428560
is quieted.
* Delay/compress UpdateCounts in FolderTree.
With this improvements,kmail don't eat the 100% CPU when refresh the cache from
a dimap server when this resides on the same lan.
svn path=/trunk/kdepim/; revision=405858
reentrancy issues which result in hanging operations and eventual segfaults
when multiple mailchecks in parallel all notice at the same time that a
common shared folder has gone away and all start such jobs more or less in
parallel (although on different dirs). Use homegrown recursive delete
instead. (proko2 issue612)
svn path=/branches/proko2/kdepim/; revision=378412
- try to add the message, find it incomplete
- trigger download
- upon download try to add it, strip the uid, because the target dimap
folder need to assign a new one on upload
- try to delete the message from the original folder which fails, since
we have no uid anymore with which to find the message
- add fails, because take fails, canAddMsg fails, try downloading again
- unfortunate loop and eventual crash
To remedy this I had to move the uid stripping down into KMFolderMaildir
where it clearly does not belong, because that is where the take() happens
which needs to know the uid. The real problem here is that the take should
happen on a much higher level, probably in the KMMoveCommand completion
handler and a copy should be added, not the message itself, followed by
deletion of the original.
svn path=/trunk/kdepim/; revision=368633
when simply opening mail folders) : don't look for the serial numbers
of messages that haven't been inserted into a folder yet, it can't find one,
and it's slow every time. Note that assign() is only called on construction
(or soon after), never on totally-unrelated instances.
svn path=/trunk/kdepim/; revision=361937
* When the user requests compaction of a folder from the RMB, always compact
(even if !needsCompaction), and ensure the final statusbar message shows up
(due to kmheaders polluting it, I had to save/restore it in 2 places).
* When compacting outbox after sending mails, don't tell the user.
This made me stumble upon strange code in kmsender.cpp: if count<0, expunge.
Ingo and I agree that this was meant to be if count==0, expunge.
svn path=/trunk/kdepim/; revision=319419