kmail Library API Documentation

configuredialog_p.h

00001 // -*- c++ -*- 00002 // configuredialog_p.h: classes internal to ConfigureDialog 00003 // see configuredialog.h for details. 00004 00005 #ifndef _CONFIGURE_DIALOG_PRIVATE_H_ 00006 #define _CONFIGURE_DIALOG_PRIVATE_H_ 00007 00008 #include <klineedit.h> 00009 #include <qcombobox.h> 00010 #include <qguardedptr.h> 00011 #include <qptrlist.h> 00012 #include <qstring.h> 00013 #include <qvaluelist.h> 00014 #include <qstringlist.h> 00015 00016 #include <kdialogbase.h> 00017 #include <klistview.h> 00018 #include <kcmodule.h> 00019 #include <klocale.h> 00020 00021 class QPushButton; 00022 class QLabel; 00023 class QCheckBox; 00024 class KURLRequester; 00025 class KFontChooser; 00026 class QRadioButton; 00027 class ColorListBox; 00028 class QFont; 00029 class QListViewItem; 00030 class QTabWidget; 00031 class QListBox; 00032 class QButtonGroup; 00033 class QRegExpValidator; 00034 class QVBox; 00035 class KMFolderComboBox; 00036 class KMAccount; 00037 class KMTransportInfo; 00038 class ListView; 00039 class ConfigureDialog; 00040 class KIntSpinBox; 00041 class SimpleStringListEditor; 00042 class KConfig; 00043 class QPoint; 00044 class ComposerCryptoConfiguration; 00045 class WarningConfiguration; 00046 class SMimeConfiguration; 00047 00048 namespace Kpgp { 00049 class Config; 00050 } 00051 namespace KMail { 00052 class IdentityDialog; 00053 class IdentityListView; 00054 } 00055 namespace Kleo { 00056 class BackendConfigWidget; 00057 class CryptoConfig; 00058 class CryptoConfigEntry; 00059 } 00060 00061 class NewIdentityDialog : public KDialogBase 00062 { 00063 Q_OBJECT 00064 00065 public: 00066 enum DuplicateMode { Empty, ControlCenter, ExistingEntry }; 00067 00068 NewIdentityDialog( const QStringList & identities, 00069 QWidget *parent=0, const char *name=0, bool modal=true ); 00070 00071 QString identityName() const { return mLineEdit->text(); } 00072 QString duplicateIdentity() const { return mComboBox->currentText(); } 00073 DuplicateMode duplicateMode() const; 00074 00075 protected slots: 00076 virtual void slotEnableOK( const QString & ); 00077 00078 private: 00079 QLineEdit *mLineEdit; 00080 QComboBox *mComboBox; 00081 QButtonGroup *mButtonGroup; 00082 }; 00083 00084 00085 // 00086 // 00087 // Language item handling 00088 // 00089 // 00090 00091 struct LanguageItem 00092 { 00093 LanguageItem() {} 00094 LanguageItem( const QString & language, const QString & reply=QString::null, 00095 const QString & replyAll=QString::null, 00096 const QString & forward=QString::null, 00097 const QString & indentPrefix=QString::null ) : 00098 mLanguage( language ), mReply( reply ), mReplyAll( replyAll ), 00099 mForward( forward ), mIndentPrefix( indentPrefix ) {} 00100 00101 QString mLanguage, mReply, mReplyAll, mForward, mIndentPrefix; 00102 }; 00103 00104 typedef QValueList<LanguageItem> LanguageItemList; 00105 00106 class NewLanguageDialog : public KDialogBase 00107 { 00108 Q_OBJECT 00109 00110 public: 00111 NewLanguageDialog( LanguageItemList & suppressedLangs, QWidget *parent=0, 00112 const char *name=0, bool modal=true ); 00113 QString language() const; 00114 00115 private: 00116 QComboBox *mComboBox; 00117 }; 00118 00119 00120 class LanguageComboBox : public QComboBox 00121 { 00122 Q_OBJECT 00123 00124 public: 00125 LanguageComboBox( bool rw, QWidget *parent=0, const char *name=0 ); 00126 int insertLanguage( const QString & language ); 00127 QString language() const; 00128 void setLanguage( const QString & language ); 00129 }; 00130 00131 // 00132 // 00133 // Profile dialog 00134 // 00135 // 00136 00137 class ProfileDialog : public KDialogBase { 00138 Q_OBJECT 00139 public: 00140 ProfileDialog( QWidget * parent=0, const char * name=0, bool modal=false ); 00141 00142 signals: 00143 void profileSelected( KConfig * profile ); 00144 00145 private slots: 00146 void slotSelectionChanged(); 00147 void slotOk(); 00148 00149 private: 00150 void setup(); 00151 00152 private: 00153 KListView *mListView; 00154 QStringList mProfileList; 00155 }; 00156 00157 #include <kdialog.h> 00158 class ConfigModule : public KCModule { 00159 Q_OBJECT 00160 public: 00161 ConfigModule( QWidget * parent=0, const char * name=0 ) 00162 : KCModule ( parent, name ) 00163 {} 00164 ~ConfigModule() {} 00165 00166 virtual void load() = 0; 00167 virtual void save() = 0; 00168 virtual void defaults() {} 00169 00171 virtual QString helpAnchor() const = 0; 00172 00173 signals: 00179 void installProfile( KConfig * profile ); 00180 00181 }; 00182 00183 00184 // Individual tab of a ConfigModuleWithTabs 00185 class ConfigModuleTab : public QWidget { 00186 Q_OBJECT 00187 public: 00188 ConfigModuleTab( QWidget *parent=0, const char* name=0 ) 00189 :QWidget( parent, name ) 00190 {} 00191 ~ConfigModuleTab() {} 00192 virtual void load() = 0; 00193 virtual void save() = 0; 00194 // the below are optional 00195 virtual void defaults() {} 00196 virtual void installProfile(){} 00197 signals: 00198 // forwarded to the ConfigModule 00199 void changed(bool); 00200 public slots: 00201 void slotEmitChanged(); 00202 }; 00203 00204 00205 /* 00206 * ConfigModuleWithTabs represents a kcm with several tabs. 00207 * It simply forwards load and save operations to all tabs. 00208 */ 00209 class ConfigModuleWithTabs : public ConfigModule { 00210 Q_OBJECT 00211 public: 00212 ConfigModuleWithTabs( QWidget * parent=0, const char * name=0 ); 00213 ~ConfigModuleWithTabs() {} 00214 00215 virtual void load(); 00216 virtual void save(); 00217 virtual void defaults(); 00218 virtual void installProfile( KConfig * profile ); 00219 00220 protected: 00221 void addTab( ConfigModuleTab* tab, const QString & title ); 00222 00223 private: 00224 QTabWidget *mTabWidget; 00225 00226 }; 00227 00228 00229 // 00230 // 00231 // IdentityPage 00232 // 00233 // 00234 00235 class IdentityPage : public ConfigModule { 00236 Q_OBJECT 00237 public: 00238 IdentityPage( QWidget * parent=0, const char * name=0 ); 00239 ~IdentityPage() {} 00240 00241 QString helpAnchor() const; 00242 00243 void load(); 00244 void save(); 00245 00246 public slots: 00247 void slotUpdateTransportCombo( const QStringList & ); 00248 00249 protected slots: 00250 void slotNewIdentity(); 00251 void slotModifyIdentity(); 00252 void slotRemoveIdentity(); 00255 void slotRenameIdentity(); 00258 void slotRenameIdentity( QListViewItem *, const QString &, int ); 00259 void slotContextMenu( KListView*, QListViewItem *, const QPoint & ); 00260 void slotSetAsDefault(); 00261 void slotIdentitySelectionChanged(); 00262 00263 protected: // methods 00264 void refreshList(); 00265 00266 protected: // data members 00267 KMail::IdentityDialog * mIdentityDialog; 00268 int mOldNumberOfIdentities; 00269 00270 KMail::IdentityListView * mIdentityList; 00271 QPushButton * mModifyButton; 00272 QPushButton * mRenameButton; 00273 QPushButton * mRemoveButton; 00274 QPushButton * mSetAsDefaultButton; 00275 }; 00276 00277 00278 // 00279 // 00280 // NetworkPage 00281 // 00282 // 00283 00284 // subclasses: one class per tab: 00285 class NetworkPageSendingTab : public ConfigModuleTab { 00286 Q_OBJECT 00287 public: 00288 NetworkPageSendingTab( QWidget * parent=0, const char * name=0 ); 00289 QString helpAnchor() const; 00290 void load(); 00291 void save(); 00292 void defaults() {} 00293 00294 signals: 00295 void transportListChanged( const QStringList & ); 00296 00297 protected slots: 00298 void slotTransportSelected(); 00299 void slotAddTransport(); 00300 void slotModifySelectedTransport(); 00301 void slotRemoveSelectedTransport(); 00302 void slotTransportUp(); 00303 void slotTransportDown(); 00304 00305 protected: 00306 ListView *mTransportList; 00307 QPushButton *mModifyTransportButton; 00308 QPushButton *mRemoveTransportButton; 00309 QPushButton *mTransportUpButton; 00310 QPushButton *mTransportDownButton; 00311 QCheckBox *mConfirmSendCheck; 00312 QComboBox *mSendOnCheckCombo; 00313 QComboBox *mSendMethodCombo; 00314 QComboBox *mMessagePropertyCombo; 00315 QLineEdit *mDefaultDomainEdit; 00316 00317 QPtrList< KMTransportInfo > mTransportInfoList; 00318 }; 00319 00320 00321 class NetworkPageReceivingTab : public ConfigModuleTab { 00322 Q_OBJECT 00323 public: 00324 NetworkPageReceivingTab( QWidget * parent=0, const char * name=0 ); 00325 QString helpAnchor() const; 00326 void load(); 00327 void save(); 00328 void defaults() {} 00329 00330 signals: 00331 void accountListChanged( const QStringList & ); 00332 00333 protected slots: 00334 void slotAccountSelected(); 00335 void slotAddAccount(); 00336 void slotModifySelectedAccount(); 00337 void slotRemoveSelectedAccount(); 00338 void slotEditNotifications(); 00339 00340 protected: 00341 QStringList occupiedNames(); 00342 00343 protected: 00344 ListView *mAccountList; 00345 QPushButton *mModifyAccountButton; 00346 QPushButton *mRemoveAccountButton; 00347 QCheckBox *mBeepNewMailCheck; 00348 QCheckBox *mVerboseNotificationCheck; 00349 QCheckBox *mCheckmailStartupCheck; 00350 QPushButton *mOtherNewMailActionsButton; 00351 00352 QValueList< QGuardedPtr<KMAccount> > mAccountsToDelete; 00353 QValueList< QGuardedPtr<KMAccount> > mNewAccounts; 00354 struct ModifiedAccountsType { 00355 QGuardedPtr< KMAccount > oldAccount; 00356 QGuardedPtr< KMAccount > newAccount; 00357 }; 00358 // ### make this a qptrlist: 00359 QValueList< ModifiedAccountsType* > mModifiedAccounts; 00360 }; 00361 00362 class NetworkPage : public ConfigModuleWithTabs { 00363 Q_OBJECT 00364 public: 00365 NetworkPage( QWidget * parent=0, const char * name=0 ); 00366 QString helpAnchor() const; 00367 00368 00369 // hrmpf. moc doesn't like nested classes with slots/signals...: 00370 typedef NetworkPageSendingTab SendingTab; 00371 typedef NetworkPageReceivingTab ReceivingTab; 00372 00373 signals: 00374 void transportListChanged( const QStringList & ); 00375 void accountListChanged( const QStringList & ); 00376 00377 protected: 00378 SendingTab *mSendingTab; 00379 ReceivingTab *mReceivingTab; 00380 }; 00381 00382 00383 // 00384 // 00385 // AppearancePage 00386 // 00387 // 00388 00389 class AppearancePageFontsTab : public ConfigModuleTab { 00390 Q_OBJECT 00391 public: 00392 AppearancePageFontsTab( QWidget * parent=0, const char * name=0 ); 00393 QString helpAnchor() const; 00394 void load(); 00395 void save(); 00396 void defaults() {} 00397 00398 void installProfile( KConfig * profile ); 00399 00400 protected slots: 00401 void slotFontSelectorChanged( int ); 00402 00403 protected: 00404 void updateFontSelector(); 00405 00406 protected: 00407 QCheckBox *mCustomFontCheck; 00408 QComboBox *mFontLocationCombo; 00409 KFontChooser *mFontChooser; 00410 00411 int mActiveFontIndex; 00412 QFont mFont[10]; 00413 }; 00414 00415 class AppearancePageColorsTab : public ConfigModuleTab { 00416 Q_OBJECT 00417 public: 00418 AppearancePageColorsTab( QWidget * parent=0, const char * name=0 ); 00419 QString helpAnchor() const; 00420 void load(); 00421 void save(); 00422 void defaults() {} 00423 00424 void installProfile( KConfig * profile ); 00425 00426 protected: 00427 QCheckBox *mCustomColorCheck; 00428 ColorListBox *mColorList; 00429 QCheckBox *mRecycleColorCheck; 00430 }; 00431 00432 class AppearancePageLayoutTab : public ConfigModuleTab { 00433 Q_OBJECT 00434 public: 00435 AppearancePageLayoutTab( QWidget * parent=0, const char * name=0 ); 00436 QString helpAnchor() const; 00437 00438 void load(); 00439 void save(); 00440 void defaults() {} 00441 void installProfile( KConfig * profile ); 00442 00443 protected: // data 00444 QCheckBox *mShowColorbarCheck; 00445 QButtonGroup *mFolderListGroup; 00446 QButtonGroup *mMIMETreeLocationGroup; 00447 QButtonGroup *mMIMETreeModeGroup; 00448 QButtonGroup *mReaderWindowModeGroup; 00449 }; 00450 00451 class AppearancePageHeadersTab : public ConfigModuleTab { 00452 Q_OBJECT 00453 public: 00454 AppearancePageHeadersTab( QWidget * parent=0, const char * name=0 ); 00455 00456 QString helpAnchor() const; 00457 00458 void load(); 00459 void save(); 00460 void defaults() {} 00461 void installProfile( KConfig * profile ); 00462 00463 protected: // methods 00464 void setDateDisplay( int id, const QString & format ); 00465 00466 protected: // data 00467 QCheckBox *mMessageSizeCheck; 00468 QCheckBox *mAttachmentCheck; 00469 QCheckBox *mNestedMessagesCheck; 00470 QCheckBox *mCryptoIconsCheck; 00471 QButtonGroup *mNestingPolicy; 00472 QButtonGroup *mDateDisplay; 00473 QLineEdit *mCustomDateFormatEdit; 00474 }; 00475 00476 class AppearancePageSystemTrayTab : public ConfigModuleTab { 00477 Q_OBJECT 00478 public: 00479 AppearancePageSystemTrayTab( QWidget * parent=0, const char * name=0 ); 00480 00481 QString helpAnchor() const; 00482 00483 void load(); 00484 void save(); 00485 void defaults() {} 00486 void installProfile( KConfig * profile ); 00487 00488 private: // data 00489 QCheckBox *mSystemTrayCheck; 00490 QButtonGroup *mSystemTrayGroup; 00491 }; 00492 00493 class AppearancePage : public ConfigModuleWithTabs { 00494 Q_OBJECT 00495 public: 00496 AppearancePage( QWidget * parent=0, const char * name=0 ); 00497 00498 QString helpAnchor() const; 00499 00500 // hrmpf. moc doesn't like nested classes with slots/signals...: 00501 typedef AppearancePageFontsTab FontsTab; 00502 typedef AppearancePageColorsTab ColorsTab; 00503 typedef AppearancePageLayoutTab LayoutTab; 00504 typedef AppearancePageHeadersTab HeadersTab; 00505 typedef AppearancePageSystemTrayTab SystemTrayTab; 00506 00507 protected: 00508 FontsTab *mFontsTab; 00509 ColorsTab *mColorsTab; 00510 LayoutTab *mLayoutTab; 00511 HeadersTab *mHeadersTab; 00512 SystemTrayTab *mSystemTrayTab; 00513 }; 00514 00515 // 00516 // 00517 // Composer Page 00518 // 00519 // 00520 00521 class ComposerPageGeneralTab : public ConfigModuleTab { 00522 Q_OBJECT 00523 public: 00524 ComposerPageGeneralTab( QWidget * parent=0, const char * name=0 ); 00525 QString helpAnchor() const; 00526 00527 void load(); 00528 void save(); 00529 void defaults(); 00530 void installProfile( KConfig * profile ); 00531 00532 protected: 00533 QCheckBox *mAutoAppSignFileCheck; 00534 QCheckBox *mSmartQuoteCheck; 00535 QCheckBox *mAutoRequestMDNCheck; 00536 QCheckBox *mWordWrapCheck; 00537 KIntSpinBox *mWrapColumnSpin; 00538 KIntSpinBox *mAutoSave; 00539 QCheckBox *mExternalEditorCheck; 00540 KURLRequester *mEditorRequester; 00541 }; 00542 00543 class ComposerPagePhrasesTab : public ConfigModuleTab { 00544 Q_OBJECT 00545 public: 00546 ComposerPagePhrasesTab( QWidget * parent=0, const char * name=0 ); 00547 QString helpAnchor() const; 00548 00549 void load(); 00550 void save(); 00551 void defaults() {} 00552 00553 protected slots: 00554 void slotNewLanguage(); 00555 void slotRemoveLanguage(); 00556 void slotLanguageChanged( const QString& ); 00557 void slotAddNewLanguage( const QString& ); 00558 00559 protected: 00560 void setLanguageItemInformation( int index ); 00561 void saveActiveLanguageItem(); 00562 00563 protected: 00564 LanguageComboBox *mPhraseLanguageCombo; 00565 QPushButton *mRemoveButton; 00566 QLineEdit *mPhraseReplyEdit; 00567 QLineEdit *mPhraseReplyAllEdit; 00568 QLineEdit *mPhraseForwardEdit; 00569 QLineEdit *mPhraseIndentPrefixEdit; 00570 00571 int mActiveLanguageItem; 00572 LanguageItemList mLanguageList; 00573 }; 00574 00575 class ComposerPageSubjectTab : public ConfigModuleTab { 00576 Q_OBJECT 00577 public: 00578 ComposerPageSubjectTab( QWidget * parent=0, const char * name=0 ); 00579 QString helpAnchor() const; 00580 00581 void load(); 00582 void save(); 00583 void defaults() {} 00584 00585 00586 protected: 00587 SimpleStringListEditor *mReplyListEditor; 00588 QCheckBox *mReplaceReplyPrefixCheck; 00589 SimpleStringListEditor *mForwardListEditor; 00590 QCheckBox *mReplaceForwardPrefixCheck; 00591 }; 00592 00593 class ComposerPageCharsetTab : public ConfigModuleTab { 00594 Q_OBJECT 00595 public: 00596 ComposerPageCharsetTab( QWidget * parent=0, const char * name=0 ); 00597 QString helpAnchor() const; 00598 00599 void load(); 00600 void save(); 00601 void defaults() {} 00602 00603 protected slots: 00604 void slotVerifyCharset(QString&); 00605 00606 protected: 00607 SimpleStringListEditor *mCharsetListEditor; 00608 QCheckBox *mKeepReplyCharsetCheck; 00609 }; 00610 00611 class ComposerPageHeadersTab : public ConfigModuleTab { 00612 Q_OBJECT 00613 public: 00614 ComposerPageHeadersTab( QWidget * parent=0, const char * name=0 ); 00615 QString helpAnchor() const; 00616 00617 void load(); 00618 void save(); 00619 void defaults() {} 00620 00621 protected slots: 00622 void slotMimeHeaderSelectionChanged(); 00623 void slotMimeHeaderNameChanged( const QString & ); 00624 void slotMimeHeaderValueChanged( const QString & ); 00625 void slotNewMimeHeader(); 00626 void slotRemoveMimeHeader(); 00627 00628 protected: 00629 QCheckBox *mCreateOwnMessageIdCheck; 00630 QLineEdit *mMessageIdSuffixEdit; 00631 QRegExpValidator *mMessageIdSuffixValidator; 00632 QListView *mTagList; 00633 QPushButton *mRemoveHeaderButton; 00634 QLineEdit *mTagNameEdit; 00635 QLineEdit *mTagValueEdit; 00636 QLabel *mTagNameLabel; 00637 QLabel *mTagValueLabel; 00638 }; 00639 00640 class ComposerPageAttachmentsTab : public ConfigModuleTab { 00641 Q_OBJECT 00642 public: 00643 ComposerPageAttachmentsTab( QWidget * parent=0, const char * name=0 ); 00644 QString helpAnchor() const; 00645 00646 void load(); 00647 void save(); 00648 void defaults() {} 00649 00650 protected slots: 00651 void slotOutlookCompatibleClicked(); 00652 00653 protected: 00654 QCheckBox *mOutlookCompatibleCheck; 00655 QCheckBox *mMissingAttachmentDetectionCheck; 00656 SimpleStringListEditor *mAttachWordsListEditor; 00657 }; 00658 00659 class ComposerPage : public ConfigModuleWithTabs { 00660 Q_OBJECT 00661 public: 00662 ComposerPage( QWidget * parent=0, const char * name=0 ); 00663 00664 QString helpAnchor() const; 00665 00666 // hrmpf. moc doesn't like nested classes with slots/signals...: 00667 typedef ComposerPageGeneralTab GeneralTab; 00668 typedef ComposerPagePhrasesTab PhrasesTab; 00669 typedef ComposerPageSubjectTab SubjectTab; 00670 typedef ComposerPageCharsetTab CharsetTab; 00671 typedef ComposerPageHeadersTab HeadersTab; 00672 typedef ComposerPageAttachmentsTab AttachmentsTab; 00673 00674 protected: 00675 GeneralTab *mGeneralTab; 00676 PhrasesTab *mPhrasesTab; 00677 SubjectTab *mSubjectTab; 00678 CharsetTab *mCharsetTab; 00679 HeadersTab *mHeadersTab; 00680 AttachmentsTab *mAttachmentsTab; 00681 }; 00682 00683 // 00684 // 00685 // SecurityPage 00686 // 00687 // 00688 00689 class SecurityPageGeneralTab : public ConfigModuleTab { 00690 Q_OBJECT 00691 public: 00692 SecurityPageGeneralTab( QWidget * parent=0, const char * name=0 ); 00693 QString helpAnchor() const; 00694 00695 void load(); 00696 void save(); 00697 void defaults() {} 00698 00699 void installProfile( KConfig * profile ); 00700 00701 protected: 00702 QCheckBox *mExternalReferences; 00703 QCheckBox *mHtmlMailCheck; 00704 QCheckBox *mNoMDNsWhenEncryptedCheck; 00705 QButtonGroup *mMDNGroup; 00706 QButtonGroup *mOrigQuoteGroup; 00707 QCheckBox *mAutomaticallyImportAttachedKeysCheck; 00708 }; 00709 00710 00711 class SecurityPageComposerCryptoTab : public ConfigModuleTab { 00712 Q_OBJECT 00713 public: 00714 SecurityPageComposerCryptoTab( QWidget * parent=0, const char * name=0 ); 00715 00716 QString helpAnchor() const; 00717 00718 void load(); 00719 void save(); 00720 void defaults() {} 00721 void installProfile( KConfig * profile ); 00722 00723 protected: 00724 ComposerCryptoConfiguration* mWidget; 00725 }; 00726 00727 class SecurityPageWarningTab : public ConfigModuleTab { 00728 Q_OBJECT 00729 public: 00730 SecurityPageWarningTab( QWidget * parent=0, const char * name=0 ); 00731 00732 QString helpAnchor() const; 00733 00734 void load(); 00735 void save(); 00736 void defaults() {} 00737 void installProfile( KConfig * profile ); 00738 00739 private slots: 00740 void slotReenableAllWarningsClicked(); 00741 00742 protected: 00743 WarningConfiguration* mWidget; 00744 }; 00745 00746 class SecurityPageSMimeTab : public ConfigModuleTab { 00747 Q_OBJECT 00748 public: 00749 SecurityPageSMimeTab( QWidget * parent=0, const char * name=0 ); 00750 00751 QString helpAnchor() const; 00752 00753 void load(); 00754 void save(); 00755 void defaults() {} 00756 void installProfile( KConfig * profile ); 00757 00758 protected: 00759 Kleo::CryptoConfigEntry* configEntry( const char* componentName, 00760 const char* groupName, 00761 const char* entryName, 00762 int argType, 00763 bool isList ); 00764 00765 private: 00766 SMimeConfiguration* mWidget; 00767 // Checkboxes 00768 Kleo::CryptoConfigEntry* mCheckUsingOCSPConfigEntry; 00769 Kleo::CryptoConfigEntry* mEnableOCSPsendingConfigEntry; 00770 Kleo::CryptoConfigEntry* mDoNotCheckCertPolicyConfigEntry; 00771 Kleo::CryptoConfigEntry* mNeverConsultConfigEntry; 00772 Kleo::CryptoConfigEntry* mFetchMissingConfigEntry; 00773 // Other widgets 00774 Kleo::CryptoConfigEntry* mOCSPResponderURLConfigEntry; 00775 Kleo::CryptoConfigEntry* mOCSPResponderSignature; 00776 00777 Kleo::CryptoConfig* mConfig; 00778 }; 00779 00780 class SecurityPageCryptPlugTab : public ConfigModuleTab 00781 { 00782 Q_OBJECT 00783 public: 00784 SecurityPageCryptPlugTab( QWidget * parent = 0, const char* name = 0 ); 00785 ~SecurityPageCryptPlugTab(); 00786 00787 QString helpAnchor() const; 00788 00789 void load(); 00790 void save(); 00791 void defaults() {} 00792 00793 private: 00794 Kleo::BackendConfigWidget * mBackendConfig; 00795 }; 00796 00797 class SecurityPage : public ConfigModuleWithTabs { 00798 Q_OBJECT 00799 public: 00800 SecurityPage( QWidget * parent=0, const char * name=0 ); 00801 00802 QString helpAnchor() const; 00803 00804 // OpenPGP tab is special: 00805 void installProfile( KConfig * profile ); 00806 00807 typedef SecurityPageGeneralTab GeneralTab; 00808 typedef SecurityPageComposerCryptoTab ComposerCryptoTab; 00809 typedef SecurityPageWarningTab WarningTab; 00810 typedef SecurityPageSMimeTab SMimeTab; 00811 typedef SecurityPageCryptPlugTab CryptPlugTab; 00812 00813 protected: 00814 GeneralTab *mGeneralTab; 00815 ComposerCryptoTab *mComposerCryptoTab; 00816 WarningTab *mWarningTab; 00817 SMimeTab *mSMimeTab; 00818 CryptPlugTab *mCryptPlugTab; 00819 }; 00820 00821 00822 // 00823 // 00824 // MiscPage 00825 // 00826 // 00827 00828 class MiscPageFolderTab : public ConfigModuleTab { 00829 Q_OBJECT 00830 public: 00831 MiscPageFolderTab( QWidget * parent=0, const char * name=0 ); 00832 00833 void load(); 00834 void save(); 00835 void defaults() {} 00836 QString helpAnchor() const; 00837 00838 protected: 00839 QCheckBox *mEmptyFolderConfirmCheck; 00840 QCheckBox *mExcludeImportantFromExpiry; 00841 QComboBox *mLoopOnGotoUnread; 00842 QCheckBox *mJumpToUnread; 00843 QComboBox *mMailboxPrefCombo; 00844 QCheckBox *mEmptyTrashCheck; 00845 QCheckBox *mDelayedMarkAsRead; 00846 KIntSpinBox *mDelayedMarkTime; 00847 QCheckBox *mShowPopupAfterDnD; 00848 KMFolderComboBox *mOnStartupOpenFolder; 00849 }; 00850 00851 class MiscPageGroupwareTab : public ConfigModuleTab { 00852 Q_OBJECT 00853 public: 00854 MiscPageGroupwareTab( QWidget * parent=0, const char * name=0 ); 00855 void load(); 00856 void save(); 00857 void defaults() {} 00858 QString helpAnchor() const; 00859 private slots: 00860 void slotLegaceBodyInvitesToggled( bool on ); 00861 private: 00862 QCheckBox* mEnableGwCB; 00863 QCheckBox* mEnableImapResCB; 00864 00865 QWidget* mBox; 00866 QVBox* gBox; 00867 00868 QComboBox* mLanguageCombo; 00869 KMFolderComboBox* mFolderCombo; 00870 QCheckBox* mHideGroupwareFolders; 00871 QCheckBox* mAutoResCB; 00872 QCheckBox* mAutoDeclConflCB; 00873 QCheckBox* mAutoDeclRecurCB; 00874 00875 QCheckBox* mLegacyMangleFromTo; 00876 QCheckBox* mLegacyBodyInvites; 00877 }; 00878 00879 class MiscPage : public ConfigModuleWithTabs { 00880 Q_OBJECT 00881 public: 00882 MiscPage( QWidget * parent=0, const char * name=0 ); 00883 QString helpAnchor() const; 00884 00885 typedef MiscPageFolderTab FolderTab; 00886 typedef MiscPageGroupwareTab GroupwareTab; 00887 00888 private: 00889 FolderTab * mFolderTab; 00890 GroupwareTab * mGroupwareTab; 00891 }; 00892 00893 // 00894 // 00895 // further helper classes: 00896 // 00897 // 00898 00899 class ListView : public KListView { 00900 Q_OBJECT 00901 public: 00902 ListView( QWidget *parent=0, const char *name=0, int visibleItem=10 ); 00903 void resizeColums(); 00904 00905 void setVisibleItem( int visibleItem, bool updateSize=true ); 00906 virtual QSize sizeHint() const; 00907 00908 protected: 00909 virtual void resizeEvent( QResizeEvent *e ); 00910 virtual void showEvent( QShowEvent *e ); 00911 00912 private: 00913 int mVisibleItem; 00914 }; 00915 00916 00917 #endif // _CONFIGURE_DIALOG_PRIVATE_H_
KDE Logo
This file is part of the documentation for kmail Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Aug 27 12:52:15 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003