libkdepim
kscoringeditor.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef SCOREEDITWIDGET_H
00019 #define SCOREEDITWIDGET_H
00020
00021 #include <qmap.h>
00022 #include <kdialogbase.h>
00023 #include <qtable.h>
00024 #include <qframe.h>
00025
00026 #include "kwidgetlister.h"
00027
00028 #include <kdepimmacros.h>
00029
00030 class KComboBox;
00031 class KLineEdit;
00032 class KIntSpinBox;
00033 class KListBox;
00034 class QFrame;
00035 class QLabel;
00036 class QListBoxItem;
00037 class QPushButton;
00038 class QCheckBox;
00039 class QRadioButton;
00040
00041 class KScoringRule;
00042 class KScoringExpression;
00043 class KScoringManager;
00044 class ActionBase;
00045 class KScoringEditor;
00046 class ScoreEditWidget;
00047 class KColorCombo;
00048
00052 class KDE_EXPORT SingleConditionWidget : public QFrame
00053 {
00054 Q_OBJECT
00055 friend class ConditionEditWidget;
00056 public:
00057 SingleConditionWidget(KScoringManager *,QWidget *p =0, const char *n =0);
00058 ~SingleConditionWidget();
00059 void setCondition(KScoringExpression*);
00060 KScoringExpression *createCondition() const;
00061 void clear();
00062
00063 protected slots:
00064 void toggleRegExpButton( int );
00065 void showRegExpDialog();
00066
00067 private:
00069 QCheckBox *neg;
00071 KComboBox *headers;
00073 KComboBox *matches;
00075 KLineEdit *expr;
00077 QPushButton *regExpButton;
00078
00079 KScoringManager *manager;
00080 };
00081
00084 class ConditionEditWidget: public KWidgetLister
00085 {
00086 Q_OBJECT
00087 public:
00088 ConditionEditWidget(KScoringManager *,QWidget *p =0, const char *n =0);
00089 ~ConditionEditWidget();
00090 QWidget* createWidget(QWidget*);
00091 void updateRule(KScoringRule*);
00092 void clearWidget(QWidget*);
00093 public slots:
00094 void slotEditRule(KScoringRule*);
00095 private:
00096 KScoringManager *manager;
00097 };
00098
00102 class SingleActionWidget : public QWidget
00103 {
00104 Q_OBJECT
00105 friend class ActionEditWidget;
00106 public:
00107 SingleActionWidget(KScoringManager *m,QWidget *p =0, const char *n =0);
00108 ~SingleActionWidget();
00109 void setAction(ActionBase*);
00110 ActionBase *createAction() const;
00111 void clear();
00112 private:
00114 KComboBox *types;
00116 QWidgetStack *stack;
00118 KLineEdit *notifyEditor;
00120 KIntSpinBox *scoreEditor;
00122 KColorCombo *colorEditor;
00124 QLabel *dummyLabel;
00125
00126 KScoringManager *manager;
00127 };
00128
00131 class KDE_EXPORT ActionEditWidget : public KWidgetLister
00132 {
00133 Q_OBJECT
00134 public:
00135 ActionEditWidget(KScoringManager *m,QWidget *p =0, const char *n =0);
00136 ~ActionEditWidget();
00137 QWidget* createWidget(QWidget *parent);
00138 void updateRule(KScoringRule*);
00139 void clearWidget(QWidget *);
00140 public slots:
00141 void slotEditRule(KScoringRule *);
00142 private:
00143 KScoringManager *manager;
00144 };
00145
00148 class RuleEditWidget : public QWidget
00149 {
00150 Q_OBJECT
00151 public:
00152 RuleEditWidget(KScoringManager *m,QWidget *p =0, const char *n =0);
00153 ~RuleEditWidget();
00154 public slots:
00155 void setDirty();
00156 void slotEditRule(const QString&);
00157 void updateRule(KScoringRule*);
00158 void updateRule();
00159 signals:
00160 void shrink();
00161 protected slots:
00162 void slotAddGroup();
00163 void slotShrink();
00164 private:
00165 void clearContents();
00166
00167 bool dirty;
00169 KLineEdit *ruleNameEdit;
00171 KLineEdit *groupsEdit;
00173 KComboBox *groupsBox;
00175 QCheckBox *expireCheck;
00177 QLabel *expireLabel;
00179 KIntSpinBox *expireEdit;
00181 QRadioButton *linkModeOr, *linkModeAnd;
00183 ActionEditWidget *actionEditor;
00185 ConditionEditWidget *condEditor;
00186
00187 KScoringManager *manager;
00188
00189
00190 QString oldRuleName;
00191 };
00192
00196 class KDE_EXPORT RuleListWidget : public QWidget
00197 {
00198 Q_OBJECT
00199 public:
00200 RuleListWidget(KScoringManager *m, bool =false, QWidget *p =0, const char *n =0);
00201 ~RuleListWidget();
00202 QString currentRule() const { return ruleList->currentText(); }
00203 protected:
00204 void updateButton();
00205
00206 signals:
00207 void ruleSelected(const QString&);
00208 void ruleEdited(const QString&);
00209 void leavingRule();
00210 public slots:
00211 void slotRuleSelected(const QString&);
00212 void slotRuleSelected(QListBoxItem *);
00213 void slotRuleSelected(int);
00214 void updateRuleList();
00215 void updateRuleList(const KScoringRule*);
00216 void slotRuleNameChanged(const QString&,const QString&);
00217 protected slots:
00218 void slotGroupFilter(const QString&);
00219 void slotEditRule(QListBoxItem*);
00220 void slotEditRule(const QString&);
00221 void slotEditRule();
00222 void slotDelRule();
00223 void slotNewRule();
00224 void slotCopyRule();
00225 void slotRuleUp();
00226 void slotRuleDown();
00227
00228 private:
00230 KListBox *ruleList;
00232 QString group;
00234 bool alone;
00235
00236 KScoringManager *manager;
00237
00238 QPushButton *editRule;
00239 QPushButton *newRule;
00240 QPushButton *delRule;
00241 QPushButton *copyRule;
00242 QPushButton *mRuleUp;
00243 QPushButton *mRuleDown;
00244 };
00245
00246 class KDE_EXPORT KScoringEditor : public KDialogBase
00247 {
00248 Q_OBJECT
00249 public:
00250 ~KScoringEditor();
00251 void setRule(KScoringRule*);
00252 static KScoringEditor *createEditor(KScoringManager* m, QWidget *parent=0, const char *name=0);
00253 static KScoringEditor *editor() { return scoreEditor; }
00254 void setDirty();
00255 protected:
00256 KScoringEditor(KScoringManager* m, QWidget *parent=0, const char *name=0);
00257 private:
00259 RuleEditWidget* ruleEditor;
00261 RuleListWidget *ruleLister;
00262 protected slots:
00263 void slotShrink();
00264 void slotDoShrink();
00265 void slotApply();
00266 void slotOk();
00267 void slotCancel();
00268 void slotFinished();
00269 private:
00270 KScoringManager *manager;
00271 ScoreEditWidget *edit;
00273 static KScoringEditor *scoreEditor;
00274 };
00275
00276 class KScoringEditorWidgetDialog : public KDialogBase
00277 {
00278 Q_OBJECT
00279 public:
00280 KScoringEditorWidgetDialog(KScoringManager *m, const QString& rName, QWidget *parent=0, const char *name=0);
00281 protected slots:
00282 void slotApply();
00283 void slotOk();
00284 void slotShrink();
00285 void slotDoShrink();
00286 private:
00287 RuleEditWidget *ruleEditor;
00288 KScoringManager *manager;
00289 QString ruleName;
00290 };
00291
00292 class KDE_EXPORT KScoringEditorWidget : public QWidget
00293 {
00294 Q_OBJECT
00295 public:
00296 KScoringEditorWidget(KScoringManager *m,QWidget *p =0, const char *n =0);
00297 ~KScoringEditorWidget();
00298 protected slots:
00299 void slotRuleEdited(const QString&);
00300 private:
00301 RuleListWidget *ruleLister;
00302 KScoringManager *manager;
00303 };
00304
00305
00306 #endif // SCOREEDITWIDGET_H
|