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