dialog.
Use action scheduler for manual filtering and for online IMAP
filtering when an online IMAP folder is specified as the
target of any filter action.
Set the action scheduler account in KMAcctImap,
so that per account filtering works
with the action scheduler (oops).
In the old filter system, KMFilterMgr explicityly
ignore online IMAP targets.
GUI: Online IMAP folders are now shown in the filter dialog.
GUI: An information dialog is shown when an online IMAP
GUI: folder is specified as the target of a filter action
GUI: in the filter dialog.
svn path=/branches/KDE/3.5/kdepim/; revision=451939
incoming messages from IMAP accounts, that is messages that are delivered
into an IMAP inbox folder.
Sundry details:
I've modified these files:
kmfilterdlg.h kmfilterdlg.cpp
To add the advanced tab that allows per account filters
kmfilter.h kmfilter.cpp
I've added some new functions to KMFilter
setApplicability( AccountType )
AccountType applicability()
setApplyOnAccount( uint id, bool aApply )
bool applyOnAccount( uint id )
and an enum
enum AccountType { All, ButImap, Checked }
kmfiltermgr.h kmfiltermgr.cpp
I modified KMFilterMgr::process
to take two optional parameters
bool account = false
uint accountId = 0
and changed the implementation so that when these
params are set per account filtering is applied.
kmaccount.cpp
Trivially to use the new per account filtering.
kmacctimap.h kmacctimap.cpp
For 3 main reasons
1) In the case (it checks) that a filter applies to this
imap account, then incoming mails headers are
downloaded when mail checking occurs. Rather than waiting
until the folder is selected in the GUI.
Because it's really silly to have to select the inbox
folder to manually force filtering to kick in.
2) To load/save a list of unfiltered messages in the
constructor/destructor respectively.
3) To filter messages (I've sort of duplicated a little code
from kmheaders.cpp for this, my apologies).
kmfolderimap.cpp
1) To tell mAccount to filter new mail as the headers arrive.
This is basically the patch I've sent to bug:50997 several times and
has been available for testing for some time.
I'll now focus on allowing IMAP folders to be the target of the
Move Into Folder filter action, and less blocking filtering
(useful for piping into a spam tool).
CCMAIL:73758-done@bugs.kde.org
svn path=/trunk/kdepim/; revision=408531
create an empty filter when there's none, to avoid a completely
disabled dialog (usability tests indicated that the new-filter
button is too hard to find that way.
svn path=/trunk/kdepim/; revision=341538
disabled dialog (usability tests indicated that the new-filter
button is too hard to find that way.
svn path=/branches/KDE_3_3_BRANCH/kdepim/; revision=341536
- s/TRUE/true/ and s/FALSE/false/ in kmfilter.cpp
- replace deprecated KLineEditDlg by KInputDialog in kmfilterdlg.cpp
- fix a few What This texts in kmfilterdlg.cpp
svn path=/trunk/kdepim/; revision=262244
#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
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
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
+ this, SLOT(slotFinished()) );
(and call delayedDestruct() from there) - slotDelayedDestruct is an alias
for "delete this" - you don't want that from slots connected to signals
svn path=/trunk/kdenetwork/kmail/; revision=179810