very technical at the moment, and the possible user interactions are
still very limited. I'm going to improve this soon.
svn path=/trunk/kdepim/; revision=288302
behave identically for status searches. This is logically wrong but more
consistent with user expectations. If the user does:
<status> equals "read"
she will now get all read mails, which is probably the desired behavior.
svn path=/trunk/kdepim/; revision=278412
searching/filtering for status. This is not as clean as I would like it to
be as I've simply special cased it in using a qwidgetstack, but it's not
_that_ bad and does the job for 3.2 considering that the filter stuff is
scheduled to be redesigned soon after anyhow.
Marc, can you live with this?
svn path=/trunk/kdepim/; revision=255940
#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
o Remove unneeded #include from header file.
o Give KMSearchRule copy- and (field,func,contents)-ctor and operator=.
o Protect operator= against self-assignment.
o Remove all publix KMSearchRule::init()'s; port callers to use ctors.
o Make KMSearchRuleWidget::ruleFieldToEnglish() static and return a
QCString instead of QString.
o Plug a few mem leaks resulting from not delete'ing the
mBmHeaderField on init().
o Fix KMSearchRule::setField() not updating mBmHeaderField.
o Fix KMSearchRule::init() constructing a DwBoyerMoore object even for
pseudo headers (<size>, <recipients>, <message>, etc).
o Fix KMSearchPattern::operator=() not clearing it's rule list before
append()ing from the other patterns'.
After DwBoyerMoore::FindIn() has been made const-correct...
o ...replace the mBmEndHeader* KMSearchRule members with static const
versions in ::matches().
o ...make all other DwBoyerMoore objects const or static const.
If BoyerMoore gives any speed increase over QCString::find() for
"\nTo:" and "\nCc:" (which I doubt if I listen to my HD while
searching), it was probably eaten away by the permanent re-creation of
both objects for _every_ matches() call.
svn path=/trunk/kdepim/; revision=224610
o lots of Q(C)String -> Q(C)String & in args.
o #define -> const int.
o KConfig * -> const KConfig * where possible.
o #ifndef NDEBUG around asString() methods (which prompts the changes
to KMFilter*)
o remove virtualism of methods (none of them is ever reimplemented).
o return _const_ reference from operator='s.
o remove unneeded #include from header file.
o replace generic findInStrList() function by specific
configValueToFunc() private member method, as that's the only use.
o Add a _lot_ of const's to local variables, esp. in ::matches( const
DWString&,...).
o Move variable declarations to where they are init'ed (includes
proper use of scoping).
o DwBoyerMoore::FindIn() doesn't return int, but size_t, so use that.
o DwBoyerMoore::FindIn() returns DwString::npos on error, so check for
that instead of -1.
o Use KMMessage::asString() for "<message>" instead of
headerAsString()+bodyDecoded() as the former is already const for
some time now.
o s/TRUE/true/g; s/FALSE/false/g
It's amazing what a piece of crap I've written two years ago ;-)
svn path=/trunk/kdepim/; revision=224299
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
Add List-Id to the preset list of headers.
Remove includes that were already commented out.
strcasecmp -> qstricmp in kmsearchpattern.cpp:finsInStrList()
svn path=/trunk/kdenetwork/kmail/; revision=99002