You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kshowmail/kshowmail/kcmconfigs/filtersetupdialog.h

192 lines
4.5 KiB

//
// C++ Interface: filtersetupdialog
//
// Description:
//
//
// Author: Ulrich Weigelt <ulrich.weigelt@gmx.de>, (C) 2007
//
// Copyright: See COPYING file that comes with this distribution
//
//
#ifndef FILTERSETUPDIALOG_H
#define FILTERSETUPDIALOG_H
//button IDs
#define ID_BUTTON_LINKAGE_MATCH_ALL 1
#define ID_BUTTON_LINKAGE_MATCH_ANY 2
//TQt headers
#include <tqlayout.h>
#include <tqgroupbox.h>
#include <tqbuttongroup.h>
#include <tqradiobutton.h>
#include <tqvbox.h>
#include <tqobjectlist.h>
#include <tqtooltip.h>
#include <tqlabel.h>
//KDE headers
#include <kdialogbase.h>
#include <tdelocale.h>
#include <kpushbutton.h>
#include <kcombobox.h>
#include <klineedit.h>
//KShowmail headers
#include "filtersetupitem.h"
#include "filtercriteriawidget.h"
#include "../constants.h"
#include "mailboxwizard.h"
//IDs of the action combo box
#define ID_COMBO_FILTER_ACTION_PASS 0
#define ID_COMBO_FILTER_ACTION_DELETE 1
#define ID_COMBO_FILTER_ACTION_MARK 2
#define ID_COMBO_FILTER_ACTION_MOVE 3
#define ID_COMBO_FILTER_ACTION_SPAMCHECK 4
#define ID_COMBO_FILTER_ACTION_IGNORE 5
/**
* @brief Dialog to setup a filter.
* @author Ulrich Weigelt <ulrich.weigelt@gmx.de>
*/
class FilterSetupDialog : public KDialogBase
{
Q_OBJECT
public:
/**
* General constructor
* @param parent parent of the dialog
* @param item filter to setup;
*/
FilterSetupDialog( TQWidget* parent, FilterSetupItem* item = NULL );
/**
* Destructor
*/
~FilterSetupDialog();
private:
/**
* filter to setup
*/
FilterSetupItem* filter;
/**
* View which shows the filter items.
*/
TDEListView* ListView;
/**
* Contains the filter name.
*/
KLineEdit* txtName;
/**
* Combines the radio buttons to select the kind of linkage between the criterias.
*/
TQButtonGroup* grpLinkage;
/**
* This widget holds one ore more filter criteria dialogs (class FilterCriteriaWidget).
*/
TQWidget* wdgCriteriasHolding;
/**
* Layout for wdgCriterias.
*/
TQVBoxLayout* layCriteriasHolding;
/**
* Button to add a criteria dialog.
*/
KPushButton* btnAddCriteria;
/**
* Button to remove the last criteria.
*/
KPushButton* btnRemoveCriteria;
/**
* Combobox to select the action.
*/
KComboBox* cmbAction;
/**
* If selected, the mails will be moved to the mailbox which is written in this edit line.
*/
KLineEdit* txtMailbox;
/**
* This button opens a wizard which will help to get the right mailbox
*/
KPushButton* btnMailboxWizard;
protected:
/**
* Writes the values of the given filter into the dialog items.
*/
void fillDialog();
/**
* Adds a criteria widget dialog with values for numeric comparison.
* @param source Object of Comparison. It accepts only numeric objects (e.g. Size) (see constants.h for valid values)
* @param condition Condition of the comparison (see constants.h for valid values)
* @param value comparison value
*/
void addCriteriaWidget( int source, int condition, uint value );
/**
* Adds a criteria widget dialog with values for text comparison.
* @param source Object of Comparison. It accepts only text objects (e.g. Subject) (see constants.h for valid values)
* @param condition Condition of the comparison (see constants.h for valid values)
* @param value comparison string
* @param cs TRUE - comparison is case sensitive; FALSE - comparison is not case sensitive
*/
void addCriteriaWidget( int source, int condition, TQString value, bool cs );
protected slots:
/**
* Overwritten method of KDialogBase.
* Called if OK was clicked.
* Stores the entered values into the given account item.
* If no item was given it creates a new one.
* After then it invokes slotOk() of KDialogBase.
*/
void slotOk();
/**
* Connected with combobox cmbAction.
* Enables or disables additional widgets for action configuration.
* @param index position (index) of the selected action
*/
void slotActionChanged( int index );
/**
* Adds a empty critera dialog widget.
* @return Pointer to the new widget
*/
FilterCriteriaWidget* slotAddCriteriaWidget();
/**
* Removes the last criteria dialog widget.
*/
void slotRemoveCriteriaWidget();
/**
* Connected with button btnMailboxWizard.
* Opens a wizard to configure the mailbox
*/
void slotOpenMailBoxWizard();
};
#endif