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
class KColorButton;
00033
class QCheckBox;
00034
class QLabel;
00035
class QSpinBox;
00036
class QButtonGroup;
00037
00047 class KPrefsWid :
public QObject
00048 {
00049 Q_OBJECT
00050
public:
00055
virtual void readConfig() = 0;
00060
virtual void writeConfig() = 0;
00061
00065
virtual QValueList<QWidget *>
widgets()
const;
00066
00067 signals:
00071
void changed();
00072 };
00073
00080 class KPrefsWidBool :
public KPrefsWid
00081 {
00082
public:
00089
KPrefsWidBool( KConfigSkeleton::ItemBool *item, QWidget *parent );
00090
00094 QCheckBox *
checkBox();
00095
00096
void readConfig();
00097
void writeConfig();
00098
00099 QValueList<QWidget *>
widgets()
const;
00100
00101
private:
00102 KConfigSkeleton::ItemBool *mItem;
00103
00104 QCheckBox *mCheck;
00105 };
00106
00114 class KPrefsWidInt :
public KPrefsWid
00115 {
00116
public:
00124
KPrefsWidInt( KConfigSkeleton::ItemInt *item, QWidget *parent );
00125
00129 QLabel *
label();
00130
00134 QSpinBox *
spinBox();
00135
00136
void readConfig();
00137
void writeConfig();
00138
00139 QValueList<QWidget *>
widgets()
const;
00140
00141
private:
00142 KConfigSkeleton::ItemInt *mItem;
00143
00144 QLabel *mLabel;
00145 QSpinBox *mSpin;
00146 };
00147
00155 class KPrefsWidTime :
public KPrefsWid
00156 {
00157
public:
00164
KPrefsWidTime( KConfigSkeleton::ItemInt *item, QWidget *parent );
00165
00169 QLabel *
label();
00173 QSpinBox *
spinBox();
00174
00175
void readConfig();
00176
void writeConfig();
00177
00178
private:
00179 KConfigSkeleton::ItemInt *mItem;
00180
00181 QLabel *mLabel;
00182 QSpinBox *mSpin;
00183 };
00184
00192 class KPrefsWidColor :
public KPrefsWid
00193 {
00194 Q_OBJECT
00195
public:
00203
KPrefsWidColor( KConfigSkeleton::ItemColor *item, QWidget *parent );
00207
~KPrefsWidColor();
00208
00212 QLabel *
label();
00216 KColorButton *
button();
00217
00218
void readConfig();
00219
void writeConfig();
00220
00221
private:
00222 KConfigSkeleton::ItemColor *mItem;
00223
00224 QLabel *mLabel;
00225 KColorButton *mButton;
00226 };
00227
00234 class KPrefsWidFont :
public KPrefsWid
00235 {
00236 Q_OBJECT
00237
public:
00245
KPrefsWidFont( KConfigSkeleton::ItemFont *item,
00246 QWidget *parent,
const QString &sampleText );
00250
~KPrefsWidFont();
00251
00255 QLabel *
label();
00259 QFrame *
preview();
00263 QPushButton *
button();
00264
00265
void readConfig();
00266
void writeConfig();
00267
00268
protected slots:
00269
void selectFont();
00270
00271
private:
00272 KConfigSkeleton::ItemFont *mItem;
00273
00274 QLabel *mLabel;
00275 QLabel *mPreview;
00276 QPushButton *mButton;
00277 };
00278
00290 class KPrefsWidRadios :
public KPrefsWid
00291 {
00292
public:
00300
KPrefsWidRadios( KConfigSkeleton::ItemEnum *item, QWidget *parent );
00301
virtual ~
KPrefsWidRadios();
00302
00309
void addRadio(
const QString &text,
00310
const QString &whatsThis = QString::null );
00311
00315 QButtonGroup *
groupBox();
00316
00317
void readConfig();
00318
void writeConfig();
00319
00320 QValueList<QWidget *>
widgets()
const;
00321
00322
private:
00323 KConfigSkeleton::ItemEnum *mItem;
00324
00325 QButtonGroup *mBox;
00326 };
00327
00328
00336 class KPrefsWidString :
public KPrefsWid
00337 {
00338
public:
00346
KPrefsWidString( KConfigSkeleton::ItemString *item, QWidget *parent,
00347 QLineEdit::EchoMode echomode=QLineEdit::Normal );
00351
virtual ~KPrefsWidString();
00352
00356 QLabel *
label();
00360 QLineEdit *
lineEdit();
00361
00362
void readConfig();
00363
void writeConfig();
00364
00365 QValueList<QWidget *>
widgets()
const;
00366
00367
private:
00368 KConfigSkeleton::ItemString *mItem;
00369
00370 QLabel *mLabel;
00371 QLineEdit *mEdit;
00372 };
00373
00374
00383 class KPrefsWidManager
00384 {
00385
public:
00391
KPrefsWidManager( KConfigSkeleton *prefs );
00395
virtual ~KPrefsWidManager();
00396
00397 KConfigSkeleton *prefs()
const {
return mPrefs; }
00398
00402
virtual void addWid(
KPrefsWid * );
00403
00410
KPrefsWidBool *
addWidBool( KConfigSkeleton::ItemBool *item,
00411 QWidget *parent );
00412
00419
KPrefsWidTime *
addWidTime( KConfigSkeleton::ItemInt *item,
00420 QWidget *parent );
00421
00428
KPrefsWidColor *
addWidColor( KConfigSkeleton::ItemColor *item,
00429 QWidget *parent );
00430
00438
KPrefsWidRadios *
addWidRadios( KConfigSkeleton::ItemEnum *item,
00439 QWidget *parent );
00440
00447
KPrefsWidString *
addWidString( KConfigSkeleton::ItemString *item,
00448 QWidget *parent );
00449
00456
KPrefsWidString *
addWidPassword ( KConfigSkeleton::ItemString *item,
00457 QWidget *parent );
00458
00467
KPrefsWidFont *
addWidFont( KConfigSkeleton::ItemFont *item,
00468 QWidget *parent,
const QString &sampleText );
00469
00471
void setWidDefaults();
00472
00474
void readWidConfig();
00475
00477
void writeWidConfig();
00478
00479
private:
00480 KConfigSkeleton *mPrefs;
00481
00482 QPtrList<KPrefsWid> mPrefsWids;
00483 };
00484
00485
00498 class KPrefsDialog :
public KDialogBase,
public KPrefsWidManager
00499 {
00500 Q_OBJECT
00501
public:
00510
KPrefsDialog( KConfigSkeleton *prefs, QWidget *parent = 0,
char *name = 0,
00511
bool modal =
false );
00515
virtual ~KPrefsDialog();
00516
00517
void autoCreate();
00518
00519
public slots:
00521
void setDefaults();
00522
00524
void readConfig();
00525
00527
void writeConfig();
00528
00529 signals:
00531
void configChanged();
00532
00533
protected slots:
00535
void slotApply();
00536
00538
void slotOk();
00539
00541
void slotDefault();
00542
00543
protected:
00545 virtual void usrReadConfig() {}
00547 virtual void usrWriteConfig() {}
00548 };
00549
00550
00551
class KPrefsModule :
public KCModule,
public KPrefsWidManager
00552 {
00553 Q_OBJECT
00554
public:
00555 KPrefsModule( KConfigSkeleton *, QWidget *parent = 0,
const char *name = 0 );
00556
00557
virtual void addWid(
KPrefsWid * );
00558
00559
void load();
00560
void save();
00561
void defaults();
00562
00563
protected slots:
00564
void slotWidChanged();
00565
00566
protected:
00568
virtual void usrReadConfig() {}
00570
virtual void usrWriteConfig() {}
00571 };
00572
00573
#endif