compilation flags :)
(I knew --diable-debug makes a difference, but I wasn't really aware it flies
for users ;)
svn path=/trunk/kdepim/; revision=270960
This should fix a bug with ad hoc filters crashing when they move a message
to a different folder.
And also fix the bug/limitation that the move to folder action has to
come last in the list of filter actions for a filter.
This commit doesn't really use the action scheduler, code to use the
action scheduler in kmheaders and kmcommands is commented out.
I've been testing this code for a few weeks now. The changes to the
assignment operators in the kmmessage and kmmsgbase classes are the
changes I'm most concerned about here.
svn path=/trunk/kdepim/; revision=264912
account when sorting by status (doh) and making the sort key generation
a bit more intuitive. That is of course entirely subjective, so if someone
has better ideas how to order them, please speak up.
svn path=/trunk/kdepim/; revision=257730
#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
understand it.
However, comparing an unsigned value to see if it is negative makes no sense.
CCMAIL: kmail@kde.org
svn path=/trunk/kdepim/; revision=241901
- they operate on the string stipped of whitespace at start and end
- base64EncodedMD5("") returns ""
The latter change is necessary, because otherwise the empty string hashes
to something not empty and a message without a In-Reply-To header suddenly
has msg->replyToIdMD5().isEmpty() == false. That means that it thinks that
it needs to be threaded under a message without a Message-ID header
(happens, trust me) because the md5 hash of that is the same (that of the
empty string) and all manner of mischief ensues. People file bug reports
that threading sucks, I develop an ulcer and Lance Armstrong wins the
Tour de France for the fifth time in a row. We do not want that.
svn path=/trunk/kdepim/; revision=240984
- proper scoping
- guard clauses (fixes possible crash when aStr.isNull() = true)
- replace if (valid) {...} if (valid) {...} if (valid) {...} with
goto's where formerly the bool valid was set to false
- constness fixes
svn path=/trunk/kdepim/; revision=237614
- When reading the legacy status field, set all messages that are not new
or unread as read, so they don't end up having unknown status if the user
unsets the only flag they have, for example important.
svn path=/trunk/kdepim/; revision=236048
mail notification for mail in ignored threads as a side effect. I strongly
suspect this is the desired behavior.
svn path=/trunk/kdepim/; revision=236026
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
If you want to reproduce the hang then try to rewrite the header of a message with the following subject header: Subject: =?gb2312?q?=CA=E9=B6=E0=B2=BB=BF=C9=C5=C2?=
svn path=/trunk/kdepim/; revision=215510
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