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/filtersetupitem.h

241 lines
5.6 KiB

//
// C++ Interface: filtersetupitem
//
// Description:
//
//
// Author: Ulrich Weigelt <ulrich.weigelt@gmx.de>, (C) 2007
//
// Copyright: See COPYING file that comes with this distribution
//
//
#ifndef FILTERSETUPITEM_H
#define FILTERSETUPITEM_H
//KDE headers
#include <tdelistview.h>
#include <tdeapplication.h>
#include <tdeconfig.h>
#include <kdebug.h>
#include <tdelocale.h>
//KShowmail headers
#include "../constants.h"
#include "../types.h"
using namespace Types;
/**
* @brief This class is used in ConfigFilter to show the available filters in the list view and to store a filter setup.
* @author Ulrich Weigelt <ulrich.weigelt@gmx.de>
*/
class FilterSetupItem : public TDEListViewItem
{
public:
/**
* Column Numbers.
*/
enum Column{ ColNumber = 0, ColName = 1, ColAction = 2 };
/**
* General Constructor
* @param parent the list view
*/
FilterSetupItem( TDEListView* parent );
/**
* Constructor
* @param parent the list view
* @param num filter number
*/
FilterSetupItem( TDEListView* parent, uint num );
/**
* Destructor
*/
~FilterSetupItem();
/**
* Sets the filter name.
* @param name filter name
* @see name
* @see getName
*/
void setName( TQString name );
/**
* Returns the name of this filter.
* @return filter name
* @see name
* @see setName
*/
TQString getName() const;
/**
* Sets the filter number.
* @param number filter number.
* @see number
* @see getNumber
*/
void setNumber( uint number );
/**
* Returns the filter number.
* @return filter number
* @see number
* @see setNumber
*/
uint getNumber() const;
/**
* Sets the action. See constants.h for valid values (CONFIG_VALUE_FILTER_ACTION...).
* @param action
* @see getAction
* @see action
*/
void setAction( int action );
/**
* Returns the action of this filter.
* See constants.h for possible values (CONFIG_VALUE_FILTER_ACTION...).
* @return action code
* @see setAction
* @see action
*/
int getAction() const;
/**
* Sets the mailbox of a move action.
* @param mailbox name of the mailbox
* @see setMailBox
* @see mailbox
*/
void setMailBox( TQString mailbox );
/**
* Returns the mailbox name of a move action if this action is selected. Otherwise it returns an empty string.
* @return mailbox name
* @see setMailBox
* @see mailbox
*/
TQString getMailBox() const;
/**
* Sets the criteria linkage.
* Valid values are CONFIG_VALUE_FILTER_CRITERIA_LINKAGE_MATCH_ALL (all criterias have to satisy) or CONFIG_VALUE_FILTER_CRITERIA_LINKAGE_MATCH_ANY (at least one criteria has to satisy ).
* @param linkage criteria linkage
* @see linkage
*/
void setCriteriaLinkage( int linkage );
/**
* Returns the criteria linkage.
* Possible values are CONFIG_VALUE_FILTER_CRITERIA_LINKAGE_MATCH_ALL (all criterias have to satisy) or CONFIG_VALUE_FILTER_CRITERIA_LINKAGE_MATCH_ANY (at least one criteria has to satisy ).
* @return criteria linkage
* @see setCriteriaLinkage
* @see linkage
*/
int getCriteriaLinkage() const;
/**
* Sets the criteria list.
* @param list criteria list
* @see criteriaList
* @see getCriteriaList
* @see Types::FilterCriteriaList_Type
*/
void setCriteriaList( FilterCriteriaList_Type list );
/**
* Returns the criteria list.
* @return criteria list
* @see criteriaList
* @see setCriteriaList
* @see Types::FilterCriteriaList_Type
*/
FilterCriteriaList_Type getCriteriaList() const;
/**
* Saves the settings to the configuration file.
* The group is named CONFIG_GROUP_FILTER + filter number, e.g. Filter12.
*/
void save();
/**
* Reimplemantation of TQListViewItem::compare.
* Compares this list view item to i using the column col in ascending order. Reutrns <0 if this item is less than i,
* 0 if they are equal and >0 if this item is greater than i. The parameter ascneding will be ignored.
* @param i pointer to the second view item
* @param col number of the sorted column
* @param ascending ignored
*/
virtual int compare( TQListViewItem* i, int col, bool ascending ) const;
/**
* Reads the settings from the config file.
* The group is named CONFIG_GROUP_FILTER + filter number, e.g. Filter12.
*/
void load();
private:
/**
* filter name
*/
TQString name;
/**
* Connector to the configuration file
*/
TDEConfig* config;
/**
* List of filter criterias.
*/
FilterCriteriaList_Type criteriaList;
/**
* Filter Action
* See constants.h for valid values (CONFIG_VALUE_FILTER_ACTION...).
*/
int action;
/**
* Contains the mailbox name if the move action is selected.
*/
TQString mailbox;
/**
* Filter Number.
* The filters will be showed and run through in ascending order. The first number is "0".
*/
uint number;
/**
* Criteria Linkage.
* Valid values are CONFIG_VALUE_FILTER_CRITERIA_LINKAGE_MATCH_ALL (all criterias have to satisy) or CONFIG_VALUE_FILTER_CRITERIA_LINKAGE_MATCH_ANY (at least one criteria has to satisy ).
*/
int linkage;
protected:
/**
* Initializes the object.
*/
void init();
/**
* Updates the text of the rule column.
*/
void updateActionColumn();
};
#endif