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

289 lines
6.7 KiB

//
// C++ Interface: configfilter
//
// Description:
//
//
// Author: Ulrich Weigelt <ulrich.weigelt@gmx.de>, (C) 2007
//
// Copyright: See COPYING file that comes with this distribution
//
//
#ifndef CONFIGFILTER_H
#define CONFIGFILTER_H
//QT headers
#include <tqlayout.h>
#include <tqgroupbox.h>
#include <tqtooltip.h>
#include <tqcheckbox.h>
//KDE headers
#include <tdecmodule.h>
#include <tdeconfig.h>
#include <kgenericfactory.h>
#include <tdeapplication.h>
#include <tdelistview.h>
#include <kpushbutton.h>
#include <kcombobox.h>
#include <klineedit.h>
//Kshowmail headers
#include "../constants.h"
#include "senderlistdialog.h"
#include "filtersetupdialog.h"
#include "mailboxwizard.h"
//radio button IDs
#define ID_COMBO_FILTER_OTHERS_ACTION_PASS 0
#define ID_COMBO_FILTER_OTHERS_ACTION_DELETE 1
#define ID_COMBO_FILTER_OTHERS_ACTION_MARK 2
#define ID_COMBO_FILTER_OTHERS_ACTION_MOVE 3
#define ID_COMBO_FILTER_OTHERS_ACTION_SPAMCHECK 4
#define ID_COMBO_FILTER_OTHERS_ACTION_IGNORE 5
/**
* @brief Part of the setup dialog (KShowMailApp::SetupDialog) to configure the filter.
* @author Ulrich Weigelt <ulrich.weigelt@gmx.de>
*/
class ConfigFilter : public TDECModule
{
Q_OBJECT
public:
/**
* Generic constructor
*/
ConfigFilter( TQWidget* parent = 0, const char* name = 0, const TQStringList &args = TQStringList() );
/**
* Destructor
*/
~ConfigFilter();
/**
* Overloaded method of TDECModule.
* Sets the user interface elements to reflect the current settings stored in the
* config file.
*/
virtual void load();
/**
* Overloaded method of TDECModule.
* Sets the user interface elements to default values.
* This method is called when the user clicks the "Default" button.
*/
virtual void defaults();
/**
* Overloaded method of TDECModule.
* Stores the config information as shown in the user interface in the
* config file.
* Is called when the user clicks "Apply" or "Ok".
*/
virtual void save();
private:
/**
* Connector to the configuration file
*/
TDEConfig* config;
/**
* Check box to activate the filter
*/
TQCheckBox* chkActivateFilter;
/**
* Group box for sender lists.
*/
TQGroupBox* gboxSenderLists;
/**
* Group box for filter items.
*/
TQGroupBox* gboxFilters;
/**
* Group box for other action.
*/
TQGroupBox* gboxOthers;
/**
* Button to open the Blacklist.
*/
KPushButton* btnOpenBlacklist;
/**
* Button to open the Whitelist.
*/
KPushButton* btnOpenWhitelist;
/**
* List of filters
*/
TDEListView* listFilters;
/**
* Button to move a filter at top.
*/
KPushButton* btnMoveTop;
/**
* Button to move a filter at bottom.
*/
KPushButton* btnMoveBottom;
/**
* Button to move a filter up.
*/
KPushButton* btnMoveUp;
/**
* Button to move a filter down.
*/
KPushButton* btnMoveDown;
/**
* Button to add a new filter.
*/
KPushButton* btnAdd;
/**
* Button to edit a filter.
*/
KPushButton* btnEdit;
/**
* Button to remove a filter.
*/
KPushButton* btnRemove;
/**
* Combobox to select the action for the rest of mails.
*/
KComboBox* cmbActionOthers;
/**
* If selected, the other 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;
/**
* The last assigned number of a filter setup item.
* It is set to zero by the constructor. Therefore the first filter number is 1.
*/
uint lastFilterNumber;
private slots:
/**
* Connected with the configuration items.
* Calls the slot changed() of TDECModule to notify the dialog about the change.
*/
void slotChanged();
/**
* Connected with the button btnOpenWhitelist.
* Creates and opens a dialog to edit the whitelist.
*/
void slotOpenWhitelist();
/**
* Connected with the button btnOpenBlacklist.
* Creates and opens a dialog to edit the blacklist.
*/
void slotOpenBlacklist();
/**
* Connected with button btnAdd.
* Opens the account setup dialog with an account item pointer of NULL.
* If the user has clicked OK, the dialog will create a new account item with
* the entered values and adds it to the list view.
*/
void slotAdd();
/**
* Connected with button btnEdit.
* Opens the account setup with the selected account item.
*/
void slotEdit();
/**
* Connected with button btnRemove.
* Removes the selected item.
*/
void slotRemove();
/**
* Connected with combobox cmbActionOthers.
* Enables or disables additional widgets for action configuration.
* @param index position (index) of the selected action
*/
void slotOtherActionChanged( int index );
/**
* Connected with button btnMoveTop.
* Moves the selected filter item at the top of the list, i.e. the number of this item will be the least one.
*/
void slotMoveTop();
/**
* Connected with button btnMoveBottom.
* Moves the selected filter item at the bottom of the list, i.e. the number of this item will be the greatest one.
*/
void slotMoveBottom();
/**
* Connected with button btnMoveUp.
* Moves the selected filter item up, i.e. the number of this item will be decreased.
*/
void slotMoveUp();
/**
* Connected with button btnMoveDown.
* Moves the selected filter item down, i.e. the number of this item will be increased.
*/
void slotMoveDown();
/**
* Connected with chkActivateFilter, signal toggled().
* Enabled or disabled the other widget of this GUI.
* @param filterOn TRUE - filter is active; FALSE - filter is not active
*/
void slotFilterActiveToggled( bool filterOn );
/**
* Connected with button btnMailboxWizard.
* Opens a wizard to configure the mailbox
*/
void slotOpenMailBoxWizard();
protected:
/**
* Decrease the numbers of these filter setup items whose number is greater than or equals num.
* @param number start number of renumbering
*/
void decreaseNumbers( uint number );
/**
* Returns the pointer to the filter setup item with number num. Returns 0 if no item found.
* @param num number of the searched filter item
* @return pointer to the found item
*/
FilterSetupItem* getFilterItem( uint num );
};
#endif