00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef KPREFSDIALOG_H
00022
#define KPREFSDIALOG_H
00023
00024
#include <qptrlist.h>
00025
#include <qlineedit.h>
00026
#include <qvaluelist.h>
00027
00028
#include <kdialogbase.h>
00029
#include <kcmodule.h>
00030
#include <kconfigskeleton.h>
00031
00032
00033
class KColorButton;
00034
class QCheckBox;
00035
class QLabel;
00036
class QSpinBox;
00037
class QButtonGroup;
00038
class KTimeEdit;
00039
00049 class KPrefsWid :
public QObject
00050 {
00051 Q_OBJECT
00052
public:
00057
virtual void readConfig() = 0;
00062
virtual void writeConfig() = 0;
00063
00067
virtual QValueList<QWidget *> widgets()
const;
00068
00069 signals:
00073
void changed();
00074 };
00075
00082 class KPrefsWidBool :
public KPrefsWid
00083 {
00084
public:
00091
KPrefsWidBool( KConfigSkeleton::ItemBool *item,
QWidget *parent );
00092
00096
QCheckBox *
checkBox();
00097
00098
void readConfig();
00099
void writeConfig();
00100
00101
QValueList<QWidget *> widgets()
const;
00102
00103
private:
00104 KConfigSkeleton::ItemBool *mItem;
00105
00106
QCheckBox *mCheck;
00107 };
00108
00116 class KPrefsWidInt :
public KPrefsWid
00117 {
00118
public:
00126
KPrefsWidInt( KConfigSkeleton::ItemInt *item,
QWidget *parent );
00127
00131
QLabel *
label();
00132
00136
QSpinBox *
spinBox();
00137
00138
void readConfig();
00139
void writeConfig();
00140
00141
QValueList<QWidget *> widgets()
const;
00142
00143
private:
00144 KConfigSkeleton::ItemInt *mItem;
00145
00146
QLabel *mLabel;
00147
QSpinBox *mSpin;
00148 };
00149
00157 class KPrefsWidTime :
public KPrefsWid
00158 {
00159
public:
00166
KPrefsWidTime( KConfigSkeleton::ItemDateTime *item,
QWidget *parent );
00167
00171
QLabel *
label();
00175
KTimeEdit *
timeEdit();
00176
00177
void readConfig();
00178
void writeConfig();
00179
00180
private:
00181 KConfigSkeleton::ItemDateTime *mItem;
00182
00183
QLabel *mLabel;
00184
KTimeEdit *mTimeEdit;
00185 };
00186
00194 class KPrefsWidColor :
public KPrefsWid
00195 {
00196 Q_OBJECT
00197
public:
00205
KPrefsWidColor( KConfigSkeleton::ItemColor *item,
QWidget *parent );
00209
~KPrefsWidColor();
00210
00214
QLabel *
label();
00218 KColorButton *
button();
00219
00220
void readConfig();
00221
void writeConfig();
00222
00223
private:
00224 KConfigSkeleton::ItemColor *mItem;
00225
00226
QLabel *mLabel;
00227 KColorButton *mButton;
00228 };
00229
00236 class KPrefsWidFont :
public KPrefsWid
00237 {
00238 Q_OBJECT
00239
public:
00247
KPrefsWidFont( KConfigSkeleton::ItemFont *item,
00248
QWidget *parent,
const QString &sampleText );
00252
~KPrefsWidFont();
00253
00257
QLabel *
label();
00261
QFrame *
preview();
00265
QPushButton *
button();
00266
00267
void readConfig();
00268
void writeConfig();
00269
00270
protected slots:
00271
void selectFont();
00272
00273
private:
00274 KConfigSkeleton::ItemFont *mItem;
00275
00276
QLabel *mLabel;
00277
QLabel *mPreview;
00278
QPushButton *mButton;
00279 };
00280
00292 class KPrefsWidRadios :
public KPrefsWid
00293 {
00294
public:
00302
KPrefsWidRadios( KConfigSkeleton::ItemEnum *item,
QWidget *parent );
00303
virtual ~
KPrefsWidRadios();
00304
00311
void addRadio(
const QString &text,
00312
const QString &whatsThis = QString::null );
00313
00317
QButtonGroup *
groupBox();
00318
00319
void readConfig();
00320
void writeConfig();
00321
00322
QValueList<QWidget *> widgets()
const;
00323
00324
private:
00325 KConfigSkeleton::ItemEnum *mItem;
00326
00327
QButtonGroup *mBox;
00328 };
00329
00330
00338 class KPrefsWidString :
public KPrefsWid
00339 {
00340
public:
00348
KPrefsWidString( KConfigSkeleton::ItemString *item,
QWidget *parent,
00349 QLineEdit::EchoMode echomode=QLineEdit::Normal );
00353
virtual ~KPrefsWidString();
00354
00358
QLabel *
label();
00362
QLineEdit *
lineEdit();
00363
00364
void readConfig();
00365
void writeConfig();
00366
00367
QValueList<QWidget *> widgets()
const;
00368
00369
private:
00370 KConfigSkeleton::ItemString *mItem;
00371
00372
QLabel *mLabel;
00373
QLineEdit *mEdit;
00374 };
00375
00376
00385 class KPrefsWidManager
00386 {
00387
public:
00393
KPrefsWidManager( KConfigSkeleton *prefs );
00397
virtual ~KPrefsWidManager();
00398
00399 KConfigSkeleton *prefs()
const {
return mPrefs; }
00400
00404
virtual void addWid(
KPrefsWid * );
00405
00412
KPrefsWidBool *
addWidBool( KConfigSkeleton::ItemBool *item,
00413
QWidget *parent );
00414
00421
KPrefsWidInt *
addWidInt( KConfigSkeleton::ItemInt *item,
00422
QWidget *parent );
00423
00430
KPrefsWidTime *
addWidTime( KConfigSkeleton::ItemDateTime *item,
00431
QWidget *parent );
00432
00439
KPrefsWidColor *
addWidColor( KConfigSkeleton::ItemColor *item,
00440
QWidget *parent );
00441
00449
KPrefsWidRadios *
addWidRadios( KConfigSkeleton::ItemEnum *item,
00450
QWidget *parent );
00451
00458
KPrefsWidString *
addWidString( KConfigSkeleton::ItemString *item,
00459
QWidget *parent );
00460
00467
KPrefsWidString *
addWidPassword ( KConfigSkeleton::ItemString *item,
00468
QWidget *parent );
00469
00478
KPrefsWidFont *
addWidFont( KConfigSkeleton::ItemFont *item,
00479
QWidget *parent,
const QString &sampleText );
00480
00482
void setWidDefaults();
00483
00485
void readWidConfig();
00486
00488
void writeWidConfig();
00489
00490
private:
00491 KConfigSkeleton *mPrefs;
00492
00493
QPtrList<KPrefsWid> mPrefsWids;
00494 };
00495
00496
00509 class KPrefsDialog :
public KDialogBase,
public KPrefsWidManager
00510 {
00511 Q_OBJECT
00512
public:
00521
KPrefsDialog( KConfigSkeleton *prefs,
QWidget *parent = 0,
char *name = 0,
00522
bool modal =
false );
00526
virtual ~KPrefsDialog();
00527
00528
void autoCreate();
00529
00530
public slots:
00532
void setDefaults();
00533
00535
void readConfig();
00536
00538
void writeConfig();
00539
00540 signals:
00542
void configChanged();
00543
00544
protected slots:
00546
void slotApply();
00547
00549
void slotOk();
00550
00552
void slotDefault();
00553
00554
protected:
00556 virtual void usrReadConfig() {}
00558 virtual void usrWriteConfig() {}
00559 };
00560
00561
00562
class KPrefsModule :
public KCModule,
public KPrefsWidManager
00563 {
00564 Q_OBJECT
00565
public:
00566 KPrefsModule( KConfigSkeleton *,
QWidget *parent = 0,
const char *name = 0 );
00567
00568
virtual void addWid(
KPrefsWid * );
00569
00570
void load();
00571
void save();
00572
void defaults();
00573
00574
protected slots:
00575
void slotWidChanged();
00576
00577
protected:
00579
virtual void usrReadConfig() {}
00581
virtual void usrWriteConfig() {}
00582 };
00583
00584
#endif