00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef SCOREEDITWIDGET_H
00018
#define SCOREEDITWIDGET_H
00019
00020
#include <qmap.h>
00021
#include <kdialogbase.h>
00022
#include <qtable.h>
00023
#include <qframe.h>
00024
00025
#include "kwidgetlister.h"
00026
00027
class KComboBox;
00028
class KLineEdit;
00029
class KIntSpinBox;
00030
class KListBox;
00031
class QFrame;
00032
class QLabel;
00033
class QListBoxItem;
00034
class QPushButton;
00035
class QCheckBox;
00036
class QRadioButton;
00037
00038
class KScoringRule;
00039
class KScoringExpression;
00040
class KScoringManager;
00041
class ActionBase;
00042
class KScoringEditor;
00043
class ScoreEditWidget;
00044
class KColorCombo;
00045
00049 class SingleConditionWidget :
public QFrame
00050 {
00051 Q_OBJECT
00052
friend class ConditionEditWidget;
00053
public:
00054
SingleConditionWidget(KScoringManager *,
QWidget *p =0,
const char *n =0);
00055 ~
SingleConditionWidget();
00056
void setCondition(KScoringExpression*);
00057 KScoringExpression *createCondition()
const;
00058
void clear();
00059
private:
00061
QCheckBox *neg;
00063 KComboBox *headers;
00065 KComboBox *matches;
00067 KLineEdit *expr;
00068
00069 KScoringManager *manager;
00070 };
00071
00074 class ConditionEditWidget:
public KWidgetLister
00075 {
00076 Q_OBJECT
00077
public:
00078
ConditionEditWidget(KScoringManager *,
QWidget *p =0,
const char *n =0);
00079 ~
ConditionEditWidget();
00080
QWidget*
createWidget(
QWidget*);
00081
void updateRule(KScoringRule*);
00082
void clearWidget(
QWidget*);
00083
public slots:
00084
void slotEditRule(KScoringRule*);
00085
private:
00086 KScoringManager *manager;
00087 };
00088
00092 class SingleActionWidget :
public QWidget
00093 {
00094 Q_OBJECT
00095
friend class ActionEditWidget;
00096
public:
00097
SingleActionWidget(KScoringManager *m,
QWidget *p =0,
const char *n =0);
00098 ~
SingleActionWidget();
00099
void setAction(
ActionBase*);
00100
ActionBase *createAction()
const;
00101
void clear();
00102
private:
00104 KComboBox *types;
00106
QWidgetStack *stack;
00108 KLineEdit *notifyEditor;
00110 KIntSpinBox *scoreEditor;
00112 KColorCombo *colorEditor;
00114
QLabel *dummyLabel;
00115
00116 KScoringManager *manager;
00117 };
00118
00121 class ActionEditWidget :
public KWidgetLister
00122 {
00123 Q_OBJECT
00124
public:
00125
ActionEditWidget(KScoringManager *m,
QWidget *p =0,
const char *n =0);
00126 ~
ActionEditWidget();
00127
QWidget*
createWidget(
QWidget *parent);
00128
void updateRule(KScoringRule*);
00129
void clearWidget(
QWidget *);
00130
public slots:
00131
void slotEditRule(KScoringRule *);
00132
private:
00133 KScoringManager *manager;
00134 };
00135
00138 class RuleEditWidget :
public QWidget
00139 {
00140 Q_OBJECT
00141
public:
00142
RuleEditWidget(KScoringManager *m,
QWidget *p =0,
const char *n =0);
00143 ~
RuleEditWidget();
00144
public slots:
00145
void setDirty();
00146
void slotEditRule(
const QString&);
00147
void updateRule(KScoringRule*);
00148
void updateRule();
00149 signals:
00150
void shrink();
00151
protected slots:
00152
void slotAddGroup();
00153
void slotShrink();
00154
private:
00155
void clearContents();
00156
00157
bool dirty;
00159 KLineEdit *ruleNameEdit;
00161 KLineEdit *groupsEdit;
00163 KComboBox *groupsBox;
00165
QCheckBox *expireCheck;
00167
QLabel *expireLabel;
00169 KIntSpinBox *expireEdit;
00171
QRadioButton *linkModeOr, *linkModeAnd;
00173
ActionEditWidget *actionEditor;
00175
ConditionEditWidget *condEditor;
00176
00177 KScoringManager *manager;
00178
00179
00180
QString oldRuleName;
00181 };
00182
00186 class RuleListWidget :
public QWidget
00187 {
00188 Q_OBJECT
00189
public:
00190
RuleListWidget(KScoringManager *m,
bool =
false,
QWidget *p =0,
const char *n =0);
00191 ~
RuleListWidget();
00192
QString currentRule()
const {
return ruleList->currentText(); }
00193
protected:
00194
void updateButton();
00195
00196 signals:
00197
void ruleSelected(
const QString&);
00198
void ruleEdited(
const QString&);
00199
void leavingRule();
00200
public slots:
00201
void slotRuleSelected(
const QString&);
00202
void slotRuleSelected(
QListBoxItem *);
00203
void slotRuleSelected(
int);
00204
void updateRuleList();
00205
void updateRuleList(
const KScoringRule*);
00206
void slotRuleNameChanged(
const QString&,
const QString&);
00207
protected slots:
00208
void slotGroupFilter(
const QString&);
00209
void slotEditRule(
QListBoxItem*);
00210
void slotEditRule(
const QString&);
00211
void slotEditRule();
00212
void slotDelRule();
00213
void slotNewRule();
00214
void slotCopyRule();
00215
private:
00217 KListBox *ruleList;
00219
QString group;
00221
bool alone;
00222
00223 KScoringManager *manager;
00224
00225
QPushButton *editRule;
00226
QPushButton *newRule;
00227
QPushButton *delRule;
00228
QPushButton *copyRule;
00229 };
00230
00231
class KScoringEditor :
public KDialogBase
00232 {
00233 Q_OBJECT
00234
public:
00235 ~KScoringEditor();
00236
void setRule(KScoringRule*);
00237
static KScoringEditor *createEditor(KScoringManager* m,
QWidget *parent=0,
const char *name=0);
00238
static KScoringEditor *editor() {
return scoreEditor; }
00239
void setDirty();
00240
protected:
00241 KScoringEditor(KScoringManager* m,
QWidget *parent=0,
const char *name=0);
00242
private:
00244
RuleEditWidget* ruleEditor;
00246
RuleListWidget *ruleLister;
00247
protected slots:
00248
void slotShrink();
00249
void slotDoShrink();
00250
void slotApply();
00251
void slotOk();
00252
void slotCancel();
00253
void slotFinished();
00254
private:
00255 KScoringManager *manager;
00256 ScoreEditWidget *edit;
00258
static KScoringEditor *scoreEditor;
00259 };
00260
00261
class KScoringEditorWidgetDialog :
public KDialogBase
00262 {
00263 Q_OBJECT
00264
public:
00265 KScoringEditorWidgetDialog(KScoringManager *m,
const QString& rName,
QWidget *parent=0,
const char *name=0);
00266
protected slots:
00267
void slotApply();
00268
void slotOk();
00269
void slotShrink();
00270
void slotDoShrink();
00271
private:
00272
RuleEditWidget *ruleEditor;
00273 KScoringManager *manager;
00274
QString ruleName;
00275 };
00276
00277
class KScoringEditorWidget :
public QWidget
00278 {
00279 Q_OBJECT
00280
public:
00281 KScoringEditorWidget(KScoringManager *m,
QWidget *p =0,
const char *n =0);
00282 ~KScoringEditorWidget();
00283
protected slots:
00284
void slotRuleEdited(
const QString&);
00285
private:
00286
RuleListWidget *ruleLister;
00287 KScoringManager *manager;
00288 };
00289
00290
00291
#endif // SCOREEDITWIDGET_H