on, by setting the involved folderstorage's search pointers to 0 and
checking them. Can't use a QGuardedPtr, since the searchpatterns aren't
QObjects. Const-ify patterns and some detabification.
svn path=/trunk/KDE/kdepim/; revision=432984
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
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
We do not need any other msgHeaderChanged calls as I see it.
The searchcommand was actually a bit buggy: the local search part of combined imap-local
searches was simply ignored when a message was updated. This is fixed now. Happy searching.
svn path=/trunk/KDE/kdepim/; revision=425074
- maintain a UID-serial number map during runtime to find messages fast
- use this map in the searchjob to speedup imap searches by a magnitude. You only get the speedup when the map is already build of course.
- use a progress item when messages need to be downloaded. The progress is currently not canceled when the search is stopped, I still have to implement that.
General search changes:
- include a matches bool in the searchDone signal and use that to check changed messages. This fixes the problem that status changes did not update the search.
BUGS:76181
svn path=/trunk/kdepim/; revision=409056
- the search folder should of course also check added messages correctly
- finish the progressitem when the move to an imap folder fails
svn path=/trunk/kdepim/; revision=358300
- config.h must be first
- rename IDS_HEADER, IDS_VERSION to IDS_SEARCH_* to avoid confusion with IDS_* from kmmsgdict.cpp
svn path=/trunk/kdepim/; revision=354172
- rename IDS_HEADER, IDS_VERSION to IDS_SEARCH_* to avoid confusion with IDS_* from kmmsgdict.cpp
svn path=/branches/KDE_3_3_BRANCH/kdepim/; revision=354171
The count of a searchfolder is the count of the sernums, not more not less.
As I had to touch the file anyway I corrected most of the indentation. I left the
4 char tabstop as it was before.
svn path=/trunk/kdepim/; revision=326765
* 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
Thanks to Till for the advice on how to do that (storing folder id and using a KMMoveCommand)
Added kmkernel::findFolderById() to avoid copy/pasting yet another time
the code that looks in the 3 foldermgrs; ported the existing code to that.
CCMAIL: 43218-done@bugs.kde.org
svn path=/trunk/kdepim/; revision=311024
instead of "on exit" (which made it non-working in kontact, with session management etc.)
GUI: removed the "Warn before expiring messages" and "On Exit: Expire old messages" options.
Tasks are filed with the jobscheduler, and the job for that task is started
only if the folder isn't opened - so this needed some special handling of search
folder (asking them to try releasing a given folder) and some fixes relative to
open() and close() calls, in kmfoldercachedimap and kmfoldersearch in particular.
Don: please check the kmfoldersearch.cpp changes, in particular the added close()
CCMAIL: sanders@kde.org
svn path=/trunk/kdepim/; revision=310272
- add storage property "noChildren" (guess what it does)
- allow the creation of subfolders of system folders (except the outbox)
- the content of the belongs-to combox in the folderdialog looks like the foldertree
- get rid of old stuff in kmfoldertree
- kmfoldertree is the parent of kmfolderdialog
...and fix the mailinglist handling
CCMAIL: 11903-done@bugs.kde.org
CCMAIL: 37139-done@bugs.kde.org
svn path=/trunk/kdepim/; revision=295688
Seems logical as folder may be null in the case of a deleted folder.
Maybe fix bug 71117, please reopen if the problem reoccurs and the
backtrace shows a problem in KMSearch::slotProcessNextBatch() again.
CCMAIL:71117-done@bugs.kde.org
Thanks Mathieu Jobin for the backtrace with full debug symbols.
svn path=/trunk/kdepim/; revision=274636
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
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
#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
Implement KMSearchPattern::requiresBody for more efficient filtering.
Fix a crash when double searching, had a small conflict there.
svn path=/trunk/kdepim/; revision=251452
classes namely KMSearchRuleString, for searches on headers and message
body strings and such, KMSearchRuleNumerical, for searches against age
and such and KMSearchRuleStatus for searching for status. Instances of
these classes are created via a set of static factory methods called
createInstance(), createInstanceFromConfig() etc which parse the pseudo
header specified by the user and instantiate the proper class
o port all users of KMSearchRule to using the createInstance() scheme
o add a <status> pseudo header to the search dialog, so searching for
status is now possible. The status has to be entered into the entry
widget, just like for all other search types, which is suboptimal, as
the set of possible status the user can select is fixed. A drop down
would be much better, but that needs more work. For now the user has
to spell the status correctly. :)
svn path=/trunk/kdepim/; revision=244340
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
valgrind. I wonder if he tells his dog: "Waffles, I suspect you might be
leaking, I shall run you under valgrind when we get home."
svn path=/trunk/kdepim/; revision=235383