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
command needed to know about the headers to figure out what message to
select once the move is done, but that can and should imho be done in the
headers themselves. There was a ToDo to that effect in there, so I guess
the original author agrees. :)
svn path=/trunk/kdepim/; revision=249824
(I still have to do this for the direct click on the attachment)
- fix saving of one attachment (filename was not displayed because the mimeheader was missing)
save all attachments works as expected but doesn't update the parts in the readerwin, I still need to fix this
svn path=/trunk/kdepim/; revision=249206
o make imapjobs refcount the folders they operate on via open/close instead
of relying on the account to keep track of open folders and close them
in displayProgress()
o keep not only the destination but also the source folder in each imapjob
so they can be closed if need be
o remove tempOpenFolder() itself and all its uses
svn path=/trunk/kdepim/; revision=244918
- Delete messages during transfer
- Minor cleanups
- Do not display headers when you skip over messages
CCMAIL: 62943-done@bugs.kde.org
svn path=/trunk/kdepim/; revision=243659
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
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
of an imap folder while move/delete operations out of it are going on, as
far as I can see. This means a bunch of open()/close() calls I added while
hunting trying to fix them are probably unnessecary. Have to look at the
CopyCommand as well in that regard.
svn path=/trunk/kdepim/; revision=229100
o Add bool deletesItself to KMCommand to remove the need to keep job data
globally in kmkernel.
o Don't suck all messages into memory and then dump into KIO, but handle
them individually, downloading each if necessary first and then appending
it. Improves memory usage brutally. ;)
o Make it work safely in the background so changing the current message or
folder doesn't crash while a save is going, on by using sernums instead of
KMMsgBase pointers.
This relies on changes to kio in head committed today, which make async
putting of data and reporting of sent data in the progress dialog possible.
svn path=/trunk/kdepim/; revision=227839
folder A and 300 messages to folder B instead of clicking undo 500 times you
click undo twice. Basically it's action instead of message based now.
Also, David could you also move kmundostack.{h,cpp} to undostack.{h,cpp} ? :)
CCMAIL: David Faure <faure@kde.org>
svn path=/trunk/kdepim/; revision=227137
- Extract bPopFilter clause into internal processPop() method.
- Extract ad-hoc filter application from ::process(). This was really silly. Instead
of writing a short overloaded ::process( KMMessage*, KMFilter* ) method,
it was crammed into the normal ::process() that iterates over the whole
list of filters. This led to two bugs:
1. The filter was only executed if it was in the filter manager's list.
This makes it impossible to write code like
KMFilter * filter = new FooFilter();
// ...
kernel->filterMgr()->process( msg, filter );
delete filter;
2. The filter was only executed if it was marked as
"execute on manual filtering" by the user. But if the user checks the
box that adds the filter to the Message->Apply Filter submenu, she
probably wants to _not_ have the filter executed on manual filtering.
(Example: report as spam action (<exec command> "spamassassin -r"))
svn path=/trunk/kdepim/; revision=223784
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
For some reason fwdMsg->mMsg->Headers().ContentType().Boundary().c_str() returns a null string after the first call. Another non-obvious mimelib peculiarity. Furthermore the closing mime boundary was missing.
svn path=/trunk/kdepim/; revision=219404
missing hunk from last commit (mm)
Fix bug #51396: can not show formatted html in email displayed in a separate window
The trick was to move handling of this from the kmmainwin (resp. kmcommands) to kmreaderwin
svn path=/trunk/kdenetwork/kmail/; revision=198532
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
for me the "crash on reply" and "forward message crash" bugs and people
on IRC have been insisting on committing it. So yeah, asynchronous message
handling in KMail is in!!! May the God of Coding have mercy on us...
svn path=/trunk/kdenetwork/kmail/; revision=193386
merged the Makefile.am and add all files that were added in make_it_cool
to get smaller diffs [most of them not yet compiled :]
svn path=/trunk/kdenetwork/kmail/; revision=191335