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 slots:
00165 void slotExpireEditChanged(int value);
00166 private:
00167 void clearContents();
00168
00169 bool dirty;
00171 KLineEdit *ruleNameEdit;
00173 KLineEdit *groupsEdit;
00175 KComboBox *groupsBox;
00177 QCheckBox *expireCheck;
00179 QLabel *expireLabel;
00181 KIntSpinBox *expireEdit;
00183 QRadioButton *linkModeOr, *linkModeAnd;
00185 ActionEditWidget *actionEditor;
00187 ConditionEditWidget *condEditor;
00188
00189 KScoringManager *manager;
00190
00191
00192 QString oldRuleName;
00193 };
00194
00198 class KDE_EXPORT RuleListWidget : public QWidget
00199 {
00200 Q_OBJECT
00201 public:
00202 RuleListWidget(KScoringManager *m, bool =false, QWidget *p =0, const char *n =0);
00203 ~RuleListWidget();
00204 QString currentRule() const { return ruleList->currentText(); }
00205 protected:
00206 void updateButton();
00207
00208 signals:
00209 void ruleSelected(const QString&);
00210 void ruleEdited(const QString&);
00211 void leavingRule();
00212 public slots:
00213 void slotRuleSelected(const QString&);
00214 void slotRuleSelected(QListBoxItem *);
00215 void slotRuleSelected(int);
00216 void updateRuleList();
00217 void updateRuleList(const KScoringRule*);
00218 void slotRuleNameChanged(const QString&,const QString&);
00219 protected slots:
00220 void slotGroupFilter(const QString&);
00221 void slotEditRule(QListBoxItem*);
00222 void slotEditRule(const QString&);
00223 void slotEditRule();
00224 void slotDelRule();
00225 void slotNewRule();
00226 void slotCopyRule();
00227 void slotRuleUp();
00228 void slotRuleDown();
00229
00230 private:
00232 KListBox *ruleList;
00234 QString group;
00236 bool alone;
00237
00238 KScoringManager *manager;
00239
00240 QPushButton *editRule;
00241 QPushButton *newRule;
00242 QPushButton *delRule;
00243 QPushButton *copyRule;
00244 QPushButton *mRuleUp;
00245 QPushButton *mRuleDown;
00246 };
00247
00248 class KDE_EXPORT KScoringEditor : public KDialogBase
00249 {
00250 Q_OBJECT
00251 public:
00252 ~KScoringEditor();
00253 void setRule(KScoringRule*);
00254 static KScoringEditor *createEditor(KScoringManager* m, QWidget *parent=0, const char *name=0);
00255 static KScoringEditor *editor() { return scoreEditor; }
00256 void setDirty();
00257 protected:
00258 KScoringEditor(KScoringManager* m, QWidget *parent=0, const char *name=0);
00259 private:
00261 RuleEditWidget* ruleEditor;
00263 RuleListWidget *ruleLister;
00264 protected slots:
00265 void slotShrink();
00266 void slotDoShrink();
00267 void slotApply();
00268 void slotOk();
00269 void slotCancel();
00270 void slotFinished();
00271 private:
00272 KScoringManager *manager;
00273 ScoreEditWidget *edit;
00275 static KScoringEditor *scoreEditor;
00276 };
00277
00278 class KScoringEditorWidgetDialog : public KDialogBase
00279 {
00280 Q_OBJECT
00281 public:
00282 KScoringEditorWidgetDialog(KScoringManager *m, const QString& rName, QWidget *parent=0, const char *name=0);
00283 protected slots:
00284 void slotApply();
00285 void slotOk();
00286 void slotShrink();
00287 void slotDoShrink();
00288 private:
00289 RuleEditWidget *ruleEditor;
00290 KScoringManager *manager;
00291 QString ruleName;
00292 };
00293
00294 class KDE_EXPORT KScoringEditorWidget : public QWidget
00295 {
00296 Q_OBJECT
00297 public:
00298 KScoringEditorWidget(KScoringManager *m,QWidget *p =0, const char *n =0);
00299 ~KScoringEditorWidget();
00300 protected slots:
00301 void slotRuleEdited(const QString&);
00302 private:
00303 RuleListWidget *ruleLister;
00304 KScoringManager *manager;
00305 };
00306
00307
00308 #endif // SCOREEDITWIDGET_H
|