from
/branches/work/kmail-nommap (r799390..804487)
/branches/work/kdepim-nommap/kmail (r804484..804960)
The SQLite mode is currently enabled only on Windows (by KMAIL_SQLITE_INDEX define),
so on !Windows, the code for standard 'mmap' mode is compiled.
CCMAIL:kde-pim@kde.org
svn path=/trunk/KDE/kdepim/; revision=805075
but since the difficult part is over, I hope I will improve it over time.
Currently it has the following features:
- Ability to tag emails (with possibly more than one tag)
- Changing the appearance of message headers (font and text color) according to the message's tags.
- Configuration of tags through a new tab called "Message Tags" on the "Configure KMail->Appearance" configuration page.
- You can add toolbar buttons for easy tagging.
- You can assign shortcuts to tags.
- Tagging through the right-click menu.
- Quick filtering using the combobox for "status" filtering. See the screenshot.
Some short-term todos:
- Incorporate Nepomuk
- A column for tags in the header view
- Incorporate Ellen's usability comments
Some long-term todos:
- Filter action for automatic tagging
- Searching based on tags ( which enables having 'tag folders' through use of search folders )
I'm sorry that I didn't have enough time to test my current commit completely. In the last two days, I have been constantly compiling
kdelibs, kdepimlibs, kdebase to keep up with very frequent changes. I finally was able to compile all at once:)
BUGS: 50409
CCBUG: 15391, 122977
svn path=/trunk/KDE/kdepim/; revision=692089
forward port SVN commit 614058 by kainhofe
Make RFC 2231-encoded attachment names work. Patch approved by Ingo (the issues he had were corrected).
RFC 2231 defines an enhanced encoding for attachment filenames, and thunderbird
apparently implemented this encoding. RFC 2231 allows one field to be split
across multiple numbered entries of the form fieldname*0=....;
fieldname*1=...; fieldname*2=...; or fieldname*0=....; fieldname*1=...; fieldname*2=...;
All these entries first need to be concatenated to form the full value of the field.
Here's a real-life example:
--------------060807060608070200030605
Content-Type: application/vnd.ms-excel;
name*0*=ISO-8859-15''%41%46%42%D6%20%42%65%73%65%74%7A%75%6E%67%73%6C%69;
name*1*=%73%74%65%20%53%74%61%6E%64%20%32%30%30%36%2D%31%32%2D%31%39%2E;
name*2*=%78%6C%73
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename*0*=ISO-8859-15''%41%46%42%D6%20%42%65%73%65%74%7A%75%6E%67%73%6C;
filename*1*=%69%73%74%65%20%53%74%61%6E%64%20%32%30%30%36%2D%31%32%2D%31;
filename*2*=%39%2E%78%6C%73
As a result, KMail shows %39%2E%78%6C%73 as the file name in both the message
preview panel as well as in the mime tree.
With this patch, KMail correctly shows the proper filename.
The patch adds one static method to collect all parts of rfc 2231-encoded
params into one single string. That method is then used in two different
places for the name and the filename props.
One minor problem remains, though: As the mime library does not have support
for rfc2231 encoded attachments, the message is not shown with the attachment
icon in the message list.
svn path=/trunk/KDE/kdepim/; revision=641088
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
during IMAP sync, every message would be marked as 'dirty' due to setStatus() calls,
even when the status didn't change, and at the end of the folder this resulted in
the index entry for every message being rewritten.
+ improved a kdWarning in acljobs.
svn path=/branches/kdepim/proko2/kdepim/; revision=487869
- extend the interface of the class to simplify it's handling
- partial port of existing kmail code to use the new class
svn path=/trunk/KDE/kdepim/; revision=474940
The simple status variable has been replaced by a class
which encapsulates the internal representation of the status
flags as well as the logic to keep the integrity.
svn path=/trunk/KDE/kdepim/; revision=474533
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
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
- Fix the order in which we apply stripEmailAddr and decodeRFC2047.
- Remove some duplicated usages of stripEmailAddr by using fromStrip(), toStrip() and ccStrip().
svn path=/trunk/kdepim/; revision=246092
computed of the subject stripped of whitespace, since subjects are written
to the index stripped of whitespace and therefor hash to different values,
when taken from there, if that is not taken into account.
svn path=/trunk/kdepim/; revision=240609
- 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
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
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
Please note that this port includes a bug fix which should be ported back to make_it_cool. I've sent the bug fix to the mailing list.
svn path=/trunk/kdenetwork/kmail/; revision=184866
I wrote the code but I could never figure out what was going on.
Basically, every now and then, the "From" field would go blank
(Unknown) and would stay blank until I clicked on the message.
The problem was here:
kmmsginfo.cpp
- XMARK_SET=0x100, FROM_SET=0x200, FILE_SET=0x300,
+ XMARK_SET=0x100, FROM_SET=0x200, FILE_SET=0x400,
I must have been mostly asleep with I set FILE_SET to 0x300.
Obviously, 0x300 can't work since 0x300 & 0x200 is not 0!
So I'm embarrassed but at least it's fixed :-/
Now only one remaining *known* maildir bug
svn path=/trunk/kdenetwork/kmail/; revision=117633