kprefsdialog.h
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
This file is part of the documentation for libkdepim Library Version 3.3.2.