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 <tqmap.h>
00022 #include <kdialogbase.h>
00023 #include <tqtable.h>
00024 #include <tqframe.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 TQFrame;
00035 class TQLabel;
00036 class TQListBoxItem;
00037 class TQPushButton;
00038 class TQCheckBox;
00039 class TQRadioButton;
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 TQFrame
00053 {
00054 Q_OBJECT
00055 TQ_OBJECT
00056 friend class ConditionEditWidget;
00057 public:
00058 SingleConditionWidget(KScoringManager *,TQWidget *p =0, const char *n =0);
00059 ~SingleConditionWidget();
00060 void setCondition(KScoringExpression*);
00061 KScoringExpression *createCondition() const;
00062 void clear();
00063
00064 protected slots:
00065 void toggleRegExpButton( int );
00066 void showRegExpDialog();
00067
00068 private:
00070 TQCheckBox *neg;
00072 KComboBox *headers;
00074 KComboBox *matches;
00076 KLineEdit *expr;
00078 TQPushButton *regExpButton;
00079
00080 KScoringManager *manager;
00081 };
00082
00085 class ConditionEditWidget: public KWidgetLister
00086 {
00087 Q_OBJECT
00088 TQ_OBJECT
00089 public:
00090 ConditionEditWidget(KScoringManager *,TQWidget *p =0, const char *n =0);
00091 ~ConditionEditWidget();
00092 TQWidget* createWidget(TQWidget*);
00093 void updateRule(KScoringRule*);
00094 void clearWidget(TQWidget*);
00095 public slots:
00096 void slotEditRule(KScoringRule*);
00097 private:
00098 KScoringManager *manager;
00099 };
00100
00104 class SingleActionWidget : public TQWidget
00105 {
00106 Q_OBJECT
00107 TQ_OBJECT
00108 friend class ActionEditWidget;
00109 public:
00110 SingleActionWidget(KScoringManager *m,TQWidget *p =0, const char *n =0);
00111 ~SingleActionWidget();
00112 void setAction(ActionBase*);
00113 ActionBase *createAction() const;
00114 void clear();
00115 private:
00117 KComboBox *types;
00119 TQWidgetStack *stack;
00121 KLineEdit *notifyEditor;
00123 KIntSpinBox *scoreEditor;
00125 KColorCombo *colorEditor;
00127 TQLabel *dummyLabel;
00128
00129 KScoringManager *manager;
00130 };
00131
00134 class KDE_EXPORT ActionEditWidget : public KWidgetLister
00135 {
00136 Q_OBJECT
00137 TQ_OBJECT
00138 public:
00139 ActionEditWidget(KScoringManager *m,TQWidget *p =0, const char *n =0);
00140 ~ActionEditWidget();
00141 TQWidget* createWidget(TQWidget *parent);
00142 void updateRule(KScoringRule*);
00143 void clearWidget(TQWidget *);
00144 public slots:
00145 void slotEditRule(KScoringRule *);
00146 private:
00147 KScoringManager *manager;
00148 };
00149
00152 class RuleEditWidget : public TQWidget
00153 {
00154 Q_OBJECT
00155 TQ_OBJECT
00156 public:
00157 RuleEditWidget(KScoringManager *m,TQWidget *p =0, const char *n =0);
00158 ~RuleEditWidget();
00159 public slots:
00160 void setDirty();
00161 void slotEditRule(const TQString&);
00162 void updateRule(KScoringRule*);
00163 void updateRule();
00164 signals:
00165 void shrink();
00166 protected slots:
00167 void slotAddGroup();
00168 void slotShrink();
00169 private slots:
00170 void slotExpireEditChanged(int value);
00171 private:
00172 void clearContents();
00173
00174 bool dirty;
00176 KLineEdit *ruleNameEdit;
00178 KLineEdit *groupsEdit;
00180 KComboBox *groupsBox;
00182 TQCheckBox *expireCheck;
00184 TQLabel *expireLabel;
00186 KIntSpinBox *expireEdit;
00188 TQRadioButton *linkModeOr, *linkModeAnd;
00190 ActionEditWidget *actionEditor;
00192 ConditionEditWidget *condEditor;
00193
00194 KScoringManager *manager;
00195
00196
00197 TQString oldRuleName;
00198 };
00199
00203 class KDE_EXPORT RuleListWidget : public TQWidget
00204 {
00205 Q_OBJECT
00206 TQ_OBJECT
00207 public:
00208 RuleListWidget(KScoringManager *m, bool =false, TQWidget *p =0, const char *n =0);
00209 ~RuleListWidget();
00210 TQString currentRule() const { return ruleList->currentText(); }
00211 protected:
00212 void updateButton();
00213
00214 signals:
00215 void ruleSelected(const TQString&);
00216 void ruleEdited(const TQString&);
00217 void leavingRule();
00218 public slots:
00219 void slotRuleSelected(const TQString&);
00220 void slotRuleSelected(TQListBoxItem *);
00221 void slotRuleSelected(int);
00222 void updateRuleList();
00223 void updateRuleList(const KScoringRule*);
00224 void slotRuleNameChanged(const TQString&,const TQString&);
00225 protected slots:
00226 void slotGroupFilter(const TQString&);
00227 void slotEditRule(TQListBoxItem*);
00228 void slotEditRule(const TQString&);
00229 void slotEditRule();
00230 void slotDelRule();
00231 void slotNewRule();
00232 void slotCopyRule();
00233 void slotRuleUp();
00234 void slotRuleDown();
00235
00236 private:
00238 KListBox *ruleList;
00240 TQString group;
00242 bool alone;
00243
00244 KScoringManager *manager;
00245
00246 TQPushButton *editRule;
00247 TQPushButton *newRule;
00248 TQPushButton *delRule;
00249 TQPushButton *copyRule;
00250 TQPushButton *mRuleUp;
00251 TQPushButton *mRuleDown;
00252 };
00253
00254 class KDE_EXPORT KScoringEditor : public KDialogBase
00255 {
00256 Q_OBJECT
00257 TQ_OBJECT
00258 public:
00259 ~KScoringEditor();
00260 void setRule(KScoringRule*);
00261 static KScoringEditor *createEditor(KScoringManager* m, TQWidget *parent=0, const char *name=0);
00262 static KScoringEditor *editor() { return scoreEditor; }
00263 void setDirty();
00264 protected:
00265 KScoringEditor(KScoringManager* m, TQWidget *parent=0, const char *name=0);
00266 private:
00268 RuleEditWidget* ruleEditor;
00270 RuleListWidget *ruleLister;
00271 protected slots:
00272 void slotShrink();
00273 void slotDoShrink();
00274 void slotApply();
00275 void slotOk();
00276 void slotCancel();
00277 void slotFinished();
00278 private:
00279 KScoringManager *manager;
00280 ScoreEditWidget *edit;
00282 static KScoringEditor *scoreEditor;
00283 };
00284
00285 class KScoringEditorWidgetDialog : public KDialogBase
00286 {
00287 Q_OBJECT
00288 TQ_OBJECT
00289 public:
00290 KScoringEditorWidgetDialog(KScoringManager *m, const TQString& rName, TQWidget *parent=0, const char *name=0);
00291 protected slots:
00292 void slotApply();
00293 void slotOk();
00294 void slotShrink();
00295 void slotDoShrink();
00296 private:
00297 RuleEditWidget *ruleEditor;
00298 KScoringManager *manager;
00299 TQString ruleName;
00300 };
00301
00302 class KDE_EXPORT KScoringEditorWidget : public TQWidget
00303 {
00304 Q_OBJECT
00305 TQ_OBJECT
00306 public:
00307 KScoringEditorWidget(KScoringManager *m,TQWidget *p =0, const char *n =0);
00308 ~KScoringEditorWidget();
00309 protected slots:
00310 void slotRuleEdited(const TQString&);
00311 private:
00312 RuleListWidget *ruleLister;
00313 KScoringManager *manager;
00314 };
00315
00316
00317 #endif // SCOREEDITWIDGET_H
|