You don't need getMsg anymore for the UID and LOD can check the size without loading the header.
I updated the online imap folder but dimap should also use the new code.
svn path=/trunk/kdepim/; revision=288206
This is done by using a stricter message seperator regular expression.
Additionally to this bug, "From " escaping was defunct which is a pretty grave bug because it can easily lead to corrupt mboxes if the index of an mbox has to be regenerated.
Both patches by Andreas Pfaller.
svn path=/trunk/kdepim/; revision=283979
/usr/local/kde/include/knotifyclient.h:138: error: conflicting types for `None'
kmglobal.h:27: error: previous declaration as `LockType None'
Both enums were in the global namespace (huh).
Fixed by renaming None to lock_none (to look like the others there)
svn path=/trunk/kdepim/; revision=276446
compaction of notoriously non-compactible mboxes.
Don't reset the needCompacting flag until the compaction has actually
suceeded.
CCMAIL: 39290-done@bugs.kde.org
CCMAIL: 43773-done@bugs.kde.org
One cookie my way, please.
svn path=/trunk/kdepim/; revision=275119
active readerwindow to ask that for the attachmentstrategy but pass it
along with the folder job, so it is available when the mime structure
comes in with load on demand. Remove unused KMKernel::activeReaderWindow
which doesn't work in kontact anyhow.
CCMAIL: 67644-done@bugs.kde.org
svn path=/trunk/kdepim/; revision=268877
CCMAIL: 66373-done@bugs.kde.org, kmail@kde.org
The old code did s/\n>From/\nFrom/g (and vice versa). Correct would be
s/(\n|^)(>*)>From /\1\2From /g.
This is what this change implements, excpet that it ignores From or >From
that start the string (just as the old code did). That's probably necessary
for now, since messages from mbox folders still contain the From spearator
line in msg->asString()...
Problem now is old mbox'es: KMail buggyly left ^>From_ alone in escaping
(leading to #66373) and ignored ^>>From_ in unescaping. The latter isn't
much of a problem, but the fact that ^FromFrom was also escaped, is. We
won't unescape that one anymore. But that's life, I guess.
svn path=/trunk/kdepim/; revision=263297
signals from being emitted.
This should fix the sent folder count updating bug. If it does not for
you, please reopen.
Patch Ok'ed by Till (Don also agreed that quiet() can be removed).
CCMAIL: 63670-done@bugs.kde.org
svn path=/trunk/kdepim/; revision=260199
-> Porting all of KMMsgList to uint, plus a few callers.
Also remove the FooInherited #defines and all KMMsgList virtuals (why virtual methods in a QMemArray<>-derived and never futher derived class?
svn path=/trunk/kdepim/; revision=258280
- Use KMFolderMbox::unescapeFrom and KMFolder::crlf2lf after reading a message from an mbox file.
- Simplify readMsg by making use of getDwString. This also reduces some madness in readMsg where we first put the message into a QCString and then (deep)copied it to a DwString.
svn path=/trunk/kdepim/; revision=256250
command up to the target folder's msgAdded signals and ticking off each
serial number as it comes in. To make that possible, use the metaDataMap
for imap folders to restore serial numbers after the move (along with
status). Also connect to the folderCompleted(bool) signal of imap folders
to make sure we notice if not all messages make it to the other side.
Connect kmheaders to the abortRequested signal and make sure cancelling
moves behaves somewhat more gracefully and restores the state of messages
remaining in the folder, making them selectable and setting their transfer
status to false so they can be downloaded or moved again.
svn path=/trunk/kdepim/; revision=252676
#define kernel KMKernel::self()
to
#define kmkernel KMKernel::self()
because 'kernel' was a much to general term. We really shouldn't repeat the mistakes of the X developers.
I noticed this problem when I played around with KImageEffects. kimageeffects.h contains 'kernel' as parameter of some methods and so the compilation had to fail. We won't need KImageEffects in the near future, but at least we are now prepared and a clash with another 'kernel' can't happen anymore.
svn path=/trunk/kdepim/; revision=252621
- create new imap account
- kernel does cleanupImapFolders
- which creates the account folder and sets it to noContent
- it then closes the folder
- close in kmfoldermbox calls unlock
- that does assert(stream), there is no stream, because there is no content
- BOOM
svn path=/trunk/kdepim/; revision=240056
comment on kde-cvs to this commit a while back. Filenames should always use
this method rather than local8bit(), but atm it doesn't really matter (hint:
look at the static method's implementation ;)
svn path=/trunk/kdepim/; revision=239207
Especially protocol() == "imap". Note that using ssl completely breaks those
checks then as the protocol is then "imaps". Also the string compares
are suboptimal there - use folderType() == KMFolderTypeSomeType.
svn path=/trunk/kdepim/; revision=238868
don't overwrite the symlink, but overwrite the target it points to
(the real mbox) with the compacted file.
CCMAIL: 60834-done@bugs.kde.org
svn path=/trunk/kdepim/; revision=238668
1) Remove the limitation that a message can have only one status at a time.
2) Implement watch/ignore thread via message status flags.
ad 1:
- Message status is now kept as a bitfield, which means a message can now be
for example replied and forwarded as well as important at the same time.
- To keep the index format backward compatible and make the transition
painless, I've added a new index entry and added code to transfer the old
into the new format. That means that upgrading users should not notice
anything.
- I've tried to keep as much behavior as possible unchanged with regard to
what flag disables what other flag etc. There are two groups of flags:
read/unread/new/old influence each other, which means a message cannot be
new and read at the same time, for example, while the second group, namely
important, sent, queued, replied, and forwarded are toggled individually.
- Toggling a thread sets the messages status to the inverse of that of the
parent, which means that if you have a thread with some mails marked as
important and some not, the status is set according to that of the parent.
- Status is now kept when moving mails between folders in the same imap
account as well as between imap accounts.
ad 2:
- Watch and ignore are mutually exclusive, which means ignoring a thread
unsets its watched flag and the other way around.
- When sorting by status watched threads are at the top, ignored at the
bottom.
- Watch and ignore propagate via threading, which means that if a message
is threaded below a watched one, it becomes watched. Same for ignore.
- Moving a single mail out of a watched thread results in a new watched
thread of size 1 :)
- Similarly watch and ignore are possible on individual mail (threads
to be).
- Watching a thread does not currently mark new mails as important, nor
does ignoring delete new mails in the thread. These are possible
extensions, though, if we think them sensible.
svn path=/trunk/kdepim/; revision=235595
The problem was that the index generation code assumed that the colon after the header field name is followed by a space. Although this is usually the case the space is not required by RFC 2822 (it's not even mentioned by RFC 2822). So I removed the code that checks for the space and made KMail interpret everything after the colon as part of the header field body. Of course this leads to a superfluous leading space. I remove this with QCString::stripWhiteSpace() which of course removes all leading and trailing whitespace. I don't think that this is a problem.
Furthermore I moved the code which looks at the Message-Id, In-Reply-To and References headers to make sure that this code works on the complete header field body and not only at the first line. Especially the References header is very often folded.
svn path=/trunk/kdepim/; revision=227878
Ouch. fcntl interprets the third parameter as struct flock * if it's called with the F_SETLK command. So much for 'function overloading' with plain C.
svn path=/trunk/kdepim/; revision=223508
has it's own cursor stack.
I added kcursorsaver, that makes sure that the cursor is restored when the object
gets out of scope (just as KConfigGroupSaver)
Now kmkernel doesn't has to cope with cursors anymore
svn path=/trunk/kdepim/; revision=221747
This is a set of changes that is well test by myself and others.
The following bug fixes amongst others are included:
Compilation fix: the certificate dialog now compiles
Mjr bugfix: Prevent mail loss when kmail crashes while editing a
drafts message
Mjr bugfix: Fix erratic folder changing when clicking on the folder
tree
Mjr bugfix: Prevent mail loss when applying filters
The follow features have been implemented:
* KMail is now a KPart and can be embedded in the Kontact/Kaplan
container applications along with other KDE PIM applications.
* Remove duplicates function for removing duplicate messages in
a folder.
* Messages can be dragged and dropped on a composer window to
add those messages as attachments.
* Deletion in threaded mode is improved, child messages will no
longer be scattered when a parent is deleted.
* Multiple messages can now be selected in the search dialog.
* New context menu in the search dialog with Move, Copy, Reply
etc. actions for operating on selected messages.
* Search criteria in the search dialog now supports more types
of rules and a variable number of rules.
* Faster searching of large messsages.
* 'Search Folders' which are a KMail folder that stores a search
expression and is dynamically updated (also known as virtual
folders).
* The separate window for reading mail has a context menu with
Reply, Copy etc. actions for operating on the message
displayed.
* The separate window for reading mail has a tool bar.
* Startup of KMail is faster.
* Switching between folders is faster.
* The contents of all composer windows are saved to disk on
composer window creation and then periodically saved to
prevent mail loss in the result of a system crash.
* The state of KMail folders is saved to disk periodically to
prevent status information loss in the result of a system
crash.
Note after start KMail switching to folders for the first time will
slow as the format of the .sorted file has changed.
Enjoy!
svn path=/trunk/kdenetwork/kmail/; revision=195825