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 Wed Jul 28 23:57:58 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003