00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef KNCONFIGWIDGETS_H
00016 #define KNCONFIGWIDGETS_H
00017
00018 #include "knode_export.h"
00019 #include <kpagedialog.h>
00020 #include <kcmodule.h>
00021
00022 #include "ui_nntpaccountdialog_base.h"
00023 #include "ui_nntpaccountlistwidget_base.h"
00024 #include "ui_postnewstechnicalwidget_base.h"
00025 #include "ui_readnewsgeneralwidget_base.h"
00026
00027 #include <QList>
00028 #include <QPixmap>
00029 #include <QLabel>
00030 #include <QListWidgetItem>
00031
00032 class QButtonGroup;
00033 class QCheckBox;
00034 class QGroupBox;
00035 class QRadioButton;
00036 class QTextEdit;
00037 class QListWidget;
00038
00039 class KLineEdit;
00040 class KComboBox;
00041 class KIntSpinBox;
00042 class KUrlCompletion;
00043
00044 namespace Sonnet{
00045 class ConfigWidget;
00046 }
00047
00048 namespace KPIM {
00049 class KScoringEditorWidget;
00050 }
00051
00052 namespace Kpgp {
00053 class Config;
00054 class SecretKeyRequester;
00055 }
00056
00057 class KNArticleFilter;
00058 class KNDisplayedHeader;
00059 class KNFilterManager;
00060 class KNNntpAccount;
00061
00062 namespace KNode {
00063 class Appearance;
00064 class Cleanup;
00065 class Identity;
00066 class DisplayedHeaders;
00067 class GroupCleanupWidget;
00068 class PostNewsTechnical;
00069 class Scoring;
00070 }
00071
00072 namespace KNode {
00073
00076 class KNODE_EXPORT IdentityWidget : public KCModule {
00077
00078 Q_OBJECT
00079
00080 public:
00081 IdentityWidget( Identity *d, const KComponentData &inst, QWidget *parent = 0 );
00082 ~IdentityWidget();
00083
00084 void load();
00085 void save();
00086
00087 protected:
00088 QLabel *f_ileName;
00089 KLineEdit *n_ame,
00090 *o_rga,
00091 *e_mail,
00092 *r_eplyTo,
00093 *m_ailCopiesTo,
00094 *s_ig;
00095 QRadioButton *s_igFile,
00096 *s_igEdit;
00097 QCheckBox *s_igGenerator;
00098 QPushButton *c_hooseBtn,
00099 *e_ditBtn;
00100 QTextEdit *s_igEditor;
00101 QButtonGroup *b_uttonGroup;
00102 Kpgp::SecretKeyRequester
00103 *s_igningKey;
00104 KUrlCompletion *c_ompletion;
00105
00106 Identity *d_ata;
00107
00108 protected slots:
00109 void slotSignatureType(int type);
00110 void slotSignatureChoose();
00111 void slotSignatureEdit();
00112 void textFileNameChanged(const QString &);
00113
00114 };
00115
00116
00118 class KNODE_EXPORT NntpAccountListWidget : public KCModule, private Ui::NntpAccountListWidgetBase
00119 {
00120 Q_OBJECT
00121
00122 public:
00124 NntpAccountListWidget( const KComponentData &inst, QWidget *parent = 0 );
00125
00127 virtual void load();
00128
00129 protected:
00131 class AccountListItem : public QListWidgetItem {
00132 public:
00136 AccountListItem( KNNntpAccount *a ) : mAccount( a ) {}
00138 KNNntpAccount *account() const { return mAccount; }
00139 private:
00140 KNNntpAccount *mAccount;
00141 };
00142
00143 public slots:
00147 void slotAddItem( KNNntpAccount *a );
00151 void slotRemoveItem( KNNntpAccount *a );
00155 void slotUpdateItem(KNNntpAccount *a);
00156
00157 protected slots:
00159 void slotSelectionChanged();
00161 void slotAddBtnClicked();
00163 void slotDelBtnClicked();
00165 void slotEditBtnClicked();
00167 void slotSubBtnClicked();
00168
00169 };
00170
00171
00173 class KNODE_EXPORT NntpAccountConfDialog : public KPageDialog, private Ui::NntpAccountDialogBase
00174 {
00175 Q_OBJECT
00176
00177 public:
00178 NntpAccountConfDialog( KNNntpAccount *a, QWidget *parent = 0 );
00179 ~NntpAccountConfDialog();
00180
00181 protected slots:
00182 void slotServerTextEdited();
00183 void slotEditingFinished();
00184 virtual void slotButtonClicked( int button );
00185
00186 private slots:
00187 void slotPasswordChanged();
00188
00189 private:
00190 KNNntpAccount *mAccount;
00191 IdentityWidget* mIdentityWidget;
00192 GroupCleanupWidget *mCleanupWidget;
00193 bool mUseServerForName;
00194 };
00195
00196
00198 class KNODE_EXPORT AppearanceWidget : public KCModule
00199 {
00200 Q_OBJECT
00201
00202 public:
00207 AppearanceWidget( const KComponentData &inst, QWidget *parent = 0 );
00208
00210 virtual void load();
00212 virtual void save();
00214 virtual void defaults();
00215
00216
00217
00219 class KNODE_EXPORT ColorListItem : public QListWidgetItem {
00220
00221 public:
00227 ColorListItem( const QString &text, const QColor &color = Qt::black, QListWidget *parent = 0 );
00229 const QColor& color() { return mColor; }
00231 void setColor( const QColor &color );
00232
00233 private:
00235 QColor mColor;
00236 };
00237
00238
00239
00241 class KNODE_EXPORT FontListItem : public QListWidgetItem {
00242
00243 public:
00249 FontListItem( const QString &text, const QFont &font, QListWidget *parent = 0 );
00251 const QFont& font() { return mFont; }
00255 void setFont( const QFont &font );
00256
00257 private:
00259 QFont mFont;
00261 QString mText;
00262 };
00263
00264
00265
00266 protected:
00268 QListWidget *mColorList;
00270 QListWidget *mFontList;
00271 QCheckBox *c_olorCB,
00272 *f_ontCB;
00273 QPushButton *c_olChngBtn,
00274 *f_ntChngBtn;
00275
00276 protected slots:
00277
00278 void slotColCheckBoxToggled(bool b);
00282 void slotColItemActivated( QListWidgetItem *item );
00283 void slotColChangeBtnClicked();
00284 void slotColSelectionChanged();
00285
00286
00287 void slotFontCheckBoxToggled(bool b);
00291 void slotFontItemActivated( QListWidgetItem *item );
00292 void slotFontChangeBtnClicked();
00293 void slotFontSelectionChanged();
00294
00295 };
00296
00297
00301 class KNODE_EXPORT ReadNewsGeneralWidget : public KCModule, KNode::Ui::ReadNewsGeneralWidgetBase
00302 {
00303 public:
00307 ReadNewsGeneralWidget( const KComponentData &inst, QWidget *parent = 0 );
00308
00310 virtual void load();
00312 virtual void save();
00313 };
00314
00315
00317 class KNODE_EXPORT ReadNewsNavigationWidget : public KCModule
00318 {
00319 public:
00323 ReadNewsNavigationWidget( const KComponentData &inst, QWidget *parent = 0 );
00324 };
00325
00326
00328 class KNODE_EXPORT ReadNewsViewerWidget : public KCModule
00329 {
00330 public:
00334 ReadNewsViewerWidget( const KComponentData &inst, QWidget *parent = 0 );
00335 };
00336
00337
00339 class KNODE_EXPORT DisplayedHeadersWidget : public KCModule {
00340
00341 Q_OBJECT
00342
00343 public:
00344 DisplayedHeadersWidget( DisplayedHeaders *d, const KComponentData &inst, QWidget *parent = 0 );
00345
00347 virtual void load();
00349 virtual void save();
00350
00351 protected:
00352
00354 class HdrItem : public QListWidgetItem {
00355
00356 public:
00361 HdrItem( const QString &text, KNDisplayedHeader *header ) : QListWidgetItem( text ), mHdr( header ) {}
00363 KNDisplayedHeader *header() const { return mHdr; }
00364 private:
00365 KNDisplayedHeader *mHdr;
00366 };
00367
00368 HdrItem* generateItem(KNDisplayedHeader *);
00369
00370 QListWidget *mHeaderList;
00371 QPushButton *a_ddBtn,
00372 *d_elBtn,
00373 *e_ditBtn,
00374 *u_pBtn,
00375 *d_ownBtn;
00376 bool s_ave;
00377
00378 DisplayedHeaders *d_ata;
00379
00380 protected slots:
00381 void slotSelectionChanged();
00382 void slotAddBtnClicked();
00383 void slotDelBtnClicked();
00384 void slotEditBtnClicked();
00385 void slotUpBtnClicked();
00386 void slotDownBtnClicked();
00387
00388 };
00389
00390
00392 class KNODE_EXPORT DisplayedHeaderConfDialog : public KDialog {
00393
00394 Q_OBJECT
00395
00396 public:
00397 DisplayedHeaderConfDialog( KNDisplayedHeader *h, QWidget *parent = 0 );
00398 ~DisplayedHeaderConfDialog();
00399
00400
00401 protected:
00402 KNDisplayedHeader *h_dr;
00403 KComboBox *h_drC;
00404 KLineEdit *n_ameE;
00405 QCheckBox *n_ameCB[4],
00406 *v_alueCB[4];
00407
00408
00409 protected slots:
00410 void slotOk();
00411 void slotActivated(int);
00412 void slotNameChanged(const QString&);
00413 };
00414
00415
00417 class KNODE_EXPORT ScoringWidget : public KCModule
00418 {
00419 public:
00423 ScoringWidget( const KComponentData &inst, QWidget *parent = 0 );
00424
00425 private:
00426 KPIM::KScoringEditorWidget *mKsc;
00427 KIntSpinBox *mIgnored, *mWatched;
00428 };
00429
00430
00432 class KNODE_EXPORT FilterListWidget : public KCModule {
00433
00434 Q_OBJECT
00435
00436 public:
00437 FilterListWidget( const KComponentData &inst, QWidget *parent = 0 );
00438 ~FilterListWidget();
00439
00440 void load();
00441 void save();
00442
00443 void addItem(KNArticleFilter *f);
00444 void removeItem(KNArticleFilter *f);
00445 void updateItem(KNArticleFilter *f);
00446 void addMenuItem(KNArticleFilter *f);
00447 void removeMenuItem(KNArticleFilter *f);
00448 QList<int> menuOrder();
00449
00450
00451 protected:
00453 class FilterListItem : public QListWidgetItem {
00454 public:
00459 FilterListItem( KNArticleFilter *filter, const QString &text ) : QListWidgetItem( text ), mFilter( filter ) {}
00461 KNArticleFilter* filter() const { return mFilter; }
00462 private:
00463 KNArticleFilter *mFilter;
00464 };
00465
00470 int findItem( QListWidget *l, KNArticleFilter *f );
00471
00472 QListWidget *mFilterList;
00473 QListWidget *mMenuList;
00474
00475 QPushButton *a_ddBtn,
00476 *d_elBtn,
00477 *e_ditBtn,
00478 *c_opyBtn,
00479 *u_pBtn,
00480 *d_ownBtn,
00481 *s_epAddBtn,
00482 *s_epRemBtn;
00483
00484 QPixmap a_ctive,
00485 d_isabled;
00486
00487 KNFilterManager *f_ilManager;
00488
00489
00490 protected slots:
00491 void slotAddBtnClicked();
00492 void slotDelBtnClicked();
00493 void slotEditBtnClicked();
00494 void slotCopyBtnClicked();
00495 void slotUpBtnClicked();
00496 void slotDownBtnClicked();
00497 void slotSepAddBtnClicked();
00498 void slotSepRemBtnClicked();
00499 void slotSelectionChangedFilter();
00500 void slotSelectionChangedMenu();
00501
00502 };
00503
00504
00506 class KNODE_EXPORT PostNewsTechnicalWidget : public KCModule, KNode::Ui::PostNewsTechnicalWidgetBase
00507 {
00508 Q_OBJECT
00509 public:
00511 PostNewsTechnicalWidget( const KComponentData &inst, QWidget *parent = 0 );
00512
00514 virtual void load();
00516 virtual void save();
00517
00518 private slots:
00519 void slotSelectionChanged();
00520 void slotAddBtnClicked();
00521 void slotDelBtnClicked();
00522 void slotEditBtnClicked();
00523
00524 };
00525
00526
00528 class KNODE_EXPORT XHeaderConfDialog : public KDialog
00529 {
00530 public:
00535 XHeaderConfDialog( const QString &h = QString(), QWidget *parent = 0 );
00537 ~XHeaderConfDialog();
00538
00540 QString result() const;
00541
00542 private:
00543 KLineEdit *mNameEdit, *mValueEdit;
00544 };
00545
00546
00548 class KNODE_EXPORT PostNewsComposerWidget : public KCModule
00549 {
00550 public:
00554 PostNewsComposerWidget( const KComponentData &inst, QWidget *parent = 0 );
00555 };
00556
00557
00559 class KNODE_EXPORT PostNewsSpellingWidget : public KCModule {
00560
00561 public:
00562 PostNewsSpellingWidget( const KComponentData &inst, QWidget *parent = 0 );
00563 ~PostNewsSpellingWidget();
00564
00565 void save();
00566
00567 protected:
00568 Sonnet::ConfigWidget *c_conf;
00569
00570 };
00571
00572
00574 class KNODE_EXPORT PrivacyWidget : public KCModule {
00575
00576 Q_OBJECT
00577
00578 public:
00579 PrivacyWidget( const KComponentData &inst, QWidget *parent = 0 );
00580 ~PrivacyWidget();
00581
00582 void save();
00583
00584 protected:
00585 Kpgp::Config *c_onf;
00586 };
00587
00588
00589
00590
00591
00593 class KNODE_EXPORT GroupCleanupWidget : public QWidget {
00594
00595 Q_OBJECT
00596
00597 public:
00598 GroupCleanupWidget( Cleanup *data, QWidget *parent = 0 );
00599
00600 void load();
00601 void save();
00602
00603 signals:
00604 void changed();
00605
00606 private:
00607 QCheckBox *mDefault, *mExpEnabled, *mExpUnavailable, *mPreserveThreads;
00608 KIntSpinBox *mExpDays, *mExpReadDays, *mExpUnreadDays;
00609 QGroupBox *mExpGroup;
00610 Cleanup *mData;
00611
00612 private slots:
00613 void slotDefaultToggled( bool state );
00614 void expDaysChanged( int value );
00615 void expReadDaysChanged( int value );
00616 void expUnreadDaysChanged( int value );
00617 };
00618
00619
00621 class KNODE_EXPORT CleanupWidget : public KCModule {
00622
00623 Q_OBJECT
00624
00625 public:
00626 CleanupWidget( const KComponentData &inst, QWidget *parent = 0 );
00627 ~CleanupWidget();
00628
00629 void load();
00630 void save();
00631
00632 protected:
00633 QCheckBox *f_olderCB;
00634 KIntSpinBox *f_olderDays;
00635 QLabel *f_olderDaysL;
00636
00637 Cleanup *d_ata;
00638
00639
00640 protected slots:
00641 void slotFolderCBtoggled(bool b);
00642 void slotFolderDaysChanged(int value);
00643
00644 private:
00645 GroupCleanupWidget *mGroupCleanup;
00646
00647 };
00648
00649
00650
00651 }
00652
00653 #endif //KNCONFIGWIDGETS_H