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 slotLegacyBodyInvitesToggled( 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.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 22:43:41 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003