kmail

KMFilterDlg Class Reference

The filter dialog. More...

#include <kmfilterdlg.h>

Inheritance diagram for KMFilterDlg:

List of all members.


Public Slots

void slotActionChanged (const KMPopFilterAction aAction)
void slotFilterSelected (KMFilter *aFilter)

Public Member Functions

void createFilter (const QCString &field, const QString &value)
 KMFilterDlg (QWidget *parent=0, const char *name=0, bool popFilter=false, bool createDummyFilter=true)

Protected Slots

void slotApplicabilityChanged ()
void slotApplicableAccountsChanged ()
void slotCapturedShortcutChanged (const KShortcut &)
void slotConfigureShortcutButtonToggled (bool aChecked)
void slotConfigureToolbarButtonToggled (bool aChecked)
void slotExportFilters ()
void slotFilterActionIconChanged (QString icon)
void slotFinished ()
void slotImportFilters ()
void slotReset ()
void slotSaveSize ()
void slotStopProcessingButtonToggled (bool aChecked)
void slotUpdateAccountList ()
void slotUpdateFilter ()

Protected Attributes

bool bPopFilter
KListViewmAccountList
KMPopFilterActionWidgetmActionGroup
KMFilterActionWidgetListermActionLister
QGroupBoxmAdvOptsGroup
QCheckBoxmApplyOnCtrlJ
QRadioButtonmApplyOnForAll
QRadioButtonmApplyOnForChecked
QRadioButtonmApplyOnForTraditional
QCheckBoxmApplyOnIn
QCheckBoxmApplyOnOut
QCheckBoxmConfigureShortcut
QCheckBoxmConfigureToolbar
KMFiltermFilter
KIconButton * mFilterActionIconButton
QLabelmFilterActionLabel
KMFilterListBoxmFilterList
QVGroupBoxmGlobalsBox
KKeyButton * mKeyButton
KMSearchPatternEditmPatternEdit
QCheckBoxmShowLaterBtn
QCheckBoxmStopProcessingHere

Detailed Description

The filter dialog.

This is a non-modal dialog used to manage KMail's filters. It should only be called through KMFilterMgr::openDialog. The dialog consists of three main parts:

  • The KMFilterListBox in the left half allows the user to select a filter to be displayed using the widgets on the right half. It also has buttons to delete filters, add new ones, to rename them and to change their order (maybe you will be able to move the filters around by dragging later, and to optimise the filters by trying to apply them to all locally available KMMessage in turn and thus profiling which filters (and which rules of the search patterns) matches most often and sorting the filter/rules list according to the results, but I first want the basic functionality in place).
  • The KMSearchPatternEdit in the upper-right quarter allows the user to modify the filter criteria.
  • The KMFilterActionEdit in the lower-right quarter allows the user to select the actions that will be executed for any message that matches the search pattern.
  • (tbi) There will be another widget that will allow the user to select to which folders the filter may be applied and whether it should be applied on outbound or inbound message transfers or both or none (meaning the filter is only applied when the user explicitly hits CTRL-J). I'm not sure whether there should be a per-folder filter list or a single list where you can select the names of folders this rule will be applied to.
Upon creating the dialog, a (deep) copy of the current filter list is made by KMFilterListBox. The changed filters are local to KMFilterListBox until the user clicks the 'Apply' button.

NOTE: Though this dialog is non-modal, it completely ignores all the stuff that goes on behind the scenes with folders esp. folder creation, move and create. The widgets that depend on the filter list and the filters that use folders as parameters are not updated as you expect. I hope this will change sometime soon.

KMFilterDlg supports the creation of new filters through context menues, dubbed "rapid filters". Call KMFilterMgr::createFilter to use this. That call will be delivered to this dialog, which in turn delivers it to the KMFilterListBox.

If you change the (DocBook) anchor for the filter dialog help, make sure to change const QString KMFilterDlgHelpAnchor in kmfilterdlg.cpp accordingly.

The filter dialog.

Author:
Marc Mutz <Marc@Mutz.com>, based upon work by Stefan Taferner <taferner@kde.org>.
See also:
KMFilter KMFilterActionEdit KMSearchPatternEdit KMFilterListBox

Definition at line 333 of file kmfilterdlg.h.


Constructor & Destructor Documentation

KMFilterDlg::KMFilterDlg ( QWidget parent = 0,
const char *  name = 0,
bool  popFilter = false,
bool  createDummyFilter = true 
)

Create the filter dialog.

The only class which should be able to do this is KMFilterMgr. This ensures that there is only a single filter dialog

Definition at line 127 of file kmfilterdlg.cpp.


Member Function Documentation

void KMFilterDlg::createFilter ( const QCString field,
const QString value 
) [inline]

Called from KMFilterMgr.

Creates a new filter and presets the first rule with "field equals value". Internally forwarded to KMFilterListBox::createFilter. You should instead call KMFilterMgr::createFilter.

Definition at line 347 of file kmfilterdlg.h.

void KMFilterDlg::slotActionChanged ( const KMPopFilterAction  aAction  )  [slot]

Action for popFilter.

Set action of popFilter.

Definition at line 360 of file kmfilterdlg.cpp.

void KMFilterDlg::slotApplicabilityChanged (  )  [protected, slot]

Definition at line 446 of file kmfilterdlg.cpp.

void KMFilterDlg::slotApplicableAccountsChanged (  )  [protected, slot]

Definition at line 483 of file kmfilterdlg.cpp.

void KMFilterDlg::slotCapturedShortcutChanged ( const KShortcut &  sc  )  [protected, slot]

Definition at line 516 of file kmfilterdlg.cpp.

void KMFilterDlg::slotConfigureShortcutButtonToggled ( bool  aChecked  )  [protected, slot]

Definition at line 505 of file kmfilterdlg.cpp.

void KMFilterDlg::slotConfigureToolbarButtonToggled ( bool  aChecked  )  [protected, slot]

Definition at line 536 of file kmfilterdlg.cpp.

void KMFilterDlg::slotExportFilters (  )  [protected, slot]

Called when a user clicks the export filters button.

Pops up a dialog asking the user which filters to export and which file to export to.

Definition at line 1344 of file kmfilterdlg.cpp.

void KMFilterDlg::slotFilterActionIconChanged ( QString  icon  )  [protected, slot]

Definition at line 542 of file kmfilterdlg.cpp.

void KMFilterDlg::slotFilterSelected ( KMFilter aFilter  )  [slot]

Internally connected to KMFilterListBox::filterSelected.

Just does a simple check and then calls KMSearchPatternEdit::setSearchPattern and KMFilterActionEdit::setActionList.

Definition at line 365 of file kmfilterdlg.cpp.

void KMFilterDlg::slotFinished (  )  [protected, slot]

Definition at line 350 of file kmfilterdlg.cpp.

void KMFilterDlg::slotImportFilters (  )  [protected, slot]

Called when a user clicks the import filters button.

Pops up a dialog asking the user which file to import from and which of the filters in that file to import.

Definition at line 1330 of file kmfilterdlg.cpp.

void KMFilterDlg::slotReset (  )  [protected, slot]

Definition at line 423 of file kmfilterdlg.cpp.

void KMFilterDlg::slotSaveSize (  )  [protected, slot]

Definition at line 354 of file kmfilterdlg.cpp.

void KMFilterDlg::slotStopProcessingButtonToggled ( bool  aChecked  )  [protected, slot]

Definition at line 499 of file kmfilterdlg.cpp.

void KMFilterDlg::slotUpdateAccountList (  )  [protected, slot]

Definition at line 548 of file kmfilterdlg.cpp.

void KMFilterDlg::slotUpdateFilter (  )  [protected, slot]

Definition at line 438 of file kmfilterdlg.cpp.


Member Data Documentation

bool KMFilterDlg::bPopFilter [protected]

Definition at line 417 of file kmfilterdlg.h.

ListView that shows the accounts in the advanced tab.

Definition at line 404 of file kmfilterdlg.h.

The widget that allows editing the popFilter actions.

Definition at line 396 of file kmfilterdlg.h.

The widget that allows editing of the filter actions.

Definition at line 394 of file kmfilterdlg.h.

Definition at line 412 of file kmfilterdlg.h.

Definition at line 399 of file kmfilterdlg.h.

For a filter applied to inbound messages selects whether to apply this filter to all accounts or to selected accounts only.

Definition at line 402 of file kmfilterdlg.h.

Definition at line 402 of file kmfilterdlg.h.

Definition at line 402 of file kmfilterdlg.h.

Lets the user select whether to apply this filter on inbound/outbound messages, both, or only on explicit CTRL-J.

Definition at line 399 of file kmfilterdlg.h.

Definition at line 399 of file kmfilterdlg.h.

Definition at line 407 of file kmfilterdlg.h.

Definition at line 408 of file kmfilterdlg.h.

Definition at line 416 of file kmfilterdlg.h.

KIconButton* KMFilterDlg::mFilterActionIconButton [protected]

Definition at line 410 of file kmfilterdlg.h.

Definition at line 409 of file kmfilterdlg.h.

The widget that contains the ListBox showing the filters, and the controls to remove filters, add new ones and to change their order.

Definition at line 390 of file kmfilterdlg.h.

Definition at line 413 of file kmfilterdlg.h.

KKeyButton* KMFilterDlg::mKeyButton [protected]

Definition at line 411 of file kmfilterdlg.h.

The widget that allows editing of the filter pattern.

Definition at line 392 of file kmfilterdlg.h.

Definition at line 414 of file kmfilterdlg.h.

Definition at line 406 of file kmfilterdlg.h.


The documentation for this class was generated from the following files: