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