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