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.
96 lines
2.7 KiB
96 lines
2.7 KiB
#ifndef __KMAIL__MANAGESIEVESCRIPTSDIALOG_H__ |
|
#define __KMAIL__MANAGESIEVESCRIPTSDIALOG_H__ |
|
|
|
#include <kdialog.h> |
|
#include <kurl.h> |
|
|
|
#include <QMap> |
|
|
|
class QButtonGroup; |
|
class QTreeWidgetItem; |
|
|
|
namespace KMail { |
|
|
|
class SieveJob; |
|
class SieveEditor; |
|
class TreeWidgetWithContextMenu; |
|
|
|
class ManageSieveScriptsDialog : public KDialog { |
|
Q_OBJECT |
|
public: |
|
explicit ManageSieveScriptsDialog( QWidget * parent=0, const char * name=0 ); |
|
~ManageSieveScriptsDialog(); |
|
|
|
private slots: |
|
void slotRefresh(); |
|
void slotItem( KMail::SieveJob *, const QString &, bool ); |
|
void slotResult( KMail::SieveJob *, bool, const QString &, bool ); |
|
void slotContextMenuRequested( QTreeWidgetItem*, QPoint position ); |
|
void slotDoubleClicked( QTreeWidgetItem* ); |
|
void slotSelectionChanged(); |
|
void slotNewScript(); |
|
void slotEditScript(); |
|
void slotDeleteScript(); |
|
void slotDeactivateScript(); |
|
void slotGetResult( KMail::SieveJob *, bool, const QString &, bool ); |
|
void slotPutResult( KMail::SieveJob *, bool ); |
|
void slotSieveEditorOkClicked(); |
|
void slotSieveEditorCancelClicked(); |
|
private: |
|
void killAllJobs(); |
|
void changeActiveScript( QTreeWidgetItem*, bool activate = true ); |
|
|
|
/** |
|
* Adds a radio button to the specified item. |
|
*/ |
|
void addRadioButton( QTreeWidgetItem *item, const QString &text ); |
|
|
|
/** |
|
* Turns the radio button for the specified item on or off. |
|
*/ |
|
void setRadioButtonState( QTreeWidgetItem *item, bool checked ); |
|
|
|
/** |
|
* @return whether the specified item's radio button is checked or not |
|
*/ |
|
bool isRadioButtonChecked( QTreeWidgetItem *item ) const; |
|
|
|
/** |
|
* @return the text of the item. This is needed because the text is stored in the |
|
* radio button, and not in the tree widget item. |
|
*/ |
|
QString itemText( QTreeWidgetItem *item ) const; |
|
|
|
/** |
|
* @return true if this tree widget item represents a sieve script, i.e. this item |
|
* is not an account and not an error message. |
|
*/ |
|
bool isFileNameItem( QTreeWidgetItem *item ) const; |
|
|
|
/** |
|
* Remove everything from the tree widget and clear all caches. |
|
*/ |
|
void clear(); |
|
|
|
private: |
|
TreeWidgetWithContextMenu* mListView; |
|
QTreeWidgetItem *mContextMenuItem; |
|
SieveEditor * mSieveEditor; |
|
QMap<KMail::SieveJob*,QTreeWidgetItem*> mJobs; |
|
QMap<QTreeWidgetItem*,KUrl> mUrls; |
|
|
|
// Maps top-level items to their child which has the radio button selection |
|
QMap<QTreeWidgetItem*,QTreeWidgetItem*> mSelectedItems; |
|
|
|
// Maps the top-level tree widget items (the accounts) to a button group. |
|
// The button group is used for the radio buttons of the child items. |
|
QMap<QTreeWidgetItem*,QButtonGroup*> mButtonGroups; |
|
|
|
KUrl mCurrentURL; |
|
bool mWasActive : 1; |
|
}; |
|
|
|
} |
|
|
|
#endif /* __KMAIL__MANAGESIEVESCRIPTSDIALOG_H__ */ |
|
|
|
|