From 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kmail/configuredialog_p.h | 1064 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1064 insertions(+) create mode 100644 kmail/configuredialog_p.h (limited to 'kmail/configuredialog_p.h') diff --git a/kmail/configuredialog_p.h b/kmail/configuredialog_p.h new file mode 100644 index 00000000..79c2a885 --- /dev/null +++ b/kmail/configuredialog_p.h @@ -0,0 +1,1064 @@ +// -*- c++ -*- +// configuredialog_p.h: classes internal to ConfigureDialog +// see configuredialog.h for details. + +#ifndef _CONFIGURE_DIALOG_PRIVATE_H_ +#define _CONFIGURE_DIALOG_PRIVATE_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +class QPushButton; +class QLabel; +class QCheckBox; +class KURLRequester; +class KFontChooser; +class QRadioButton; +class ColorListBox; +class QFont; +class QListViewItem; +class QTabWidget; +class QListBox; +class QButtonGroup; +class QRegExpValidator; +class QVBox; +class KMAccount; +class KMTransportInfo; +class ListView; +class ConfigureDialog; +class KIntSpinBox; +class SimpleStringListEditor; +class KConfig; +class QPoint; +class ComposerCryptoConfiguration; +class WarningConfiguration; +class SMimeConfiguration; +class TemplatesConfiguration; +class CustomTemplates; +class QGroupBox; +class QVGroupBox; +#include +class QLineEdit; +class KMMsgTagDesc; +class KListBox; +class KColorCombo; +class KFontRequester; +class KIconButton; +class KKeyButton; +class QSpinBox; + +namespace Kpgp { + class Config; +} +namespace KMail { + class IdentityDialog; + class IdentityListView; + class AccountComboBox; + class FolderRequester; +} +namespace Kleo { + class BackendConfigWidget; + class CryptoConfig; + class CryptoConfigEntry; +} + +class NewIdentityDialog : public KDialogBase +{ + Q_OBJECT + +public: + enum DuplicateMode { Empty, ControlCenter, ExistingEntry }; + + NewIdentityDialog( const QStringList & identities, + QWidget *parent=0, const char *name=0, bool modal=true ); + + QString identityName() const { return mLineEdit->text(); } + QString duplicateIdentity() const { return mComboBox->currentText(); } + DuplicateMode duplicateMode() const; + +protected slots: + virtual void slotEnableOK( const QString & ); + +private: + QLineEdit *mLineEdit; + QComboBox *mComboBox; + QButtonGroup *mButtonGroup; +}; + + +// +// +// Language item handling +// +// + +struct LanguageItem +{ + LanguageItem() {} + LanguageItem( const QString & language, const QString & reply=QString::null, + const QString & replyAll=QString::null, + const QString & forward=QString::null, + const QString & indentPrefix=QString::null ) : + mLanguage( language ), mReply( reply ), mReplyAll( replyAll ), + mForward( forward ), mIndentPrefix( indentPrefix ) {} + + QString mLanguage, mReply, mReplyAll, mForward, mIndentPrefix; +}; + +typedef QValueList LanguageItemList; + +class NewLanguageDialog : public KDialogBase +{ + Q_OBJECT + + public: + NewLanguageDialog( LanguageItemList & suppressedLangs, QWidget *parent=0, + const char *name=0, bool modal=true ); + QString language() const; + + private: + QComboBox *mComboBox; +}; + + +class LanguageComboBox : public QComboBox +{ + Q_OBJECT + + public: + LanguageComboBox( bool rw, QWidget *parent=0, const char *name=0 ); + int insertLanguage( const QString & language ); + QString language() const; + void setLanguage( const QString & language ); +}; + +// +// +// Profile dialog +// +// + +class ProfileDialog : public KDialogBase { + Q_OBJECT +public: + ProfileDialog( QWidget * parent=0, const char * name=0, bool modal=false ); + +signals: + void profileSelected( KConfig * profile ); + +private slots: + void slotSelectionChanged(); + void slotOk(); + +private: + void setup(); + +private: + KListView *mListView; + QStringList mProfileList; +}; + +#include +class ConfigModule : public KCModule { + Q_OBJECT +public: + ConfigModule( QWidget * parent=0, const char * name=0 ) + : KCModule ( parent, name ) + {} + ~ConfigModule() {} + + virtual void load() = 0; + virtual void save() = 0; + virtual void defaults() {} + + /** Should return the help anchor for this page or tab */ + virtual QString helpAnchor() const = 0; + +signals: + /** Emitted when the installation of a profile is + requested. All connected kcms should load the values + from the profile only for those entries that + really have keys defined in the profile. + */ + void installProfile( KConfig * profile ); + +}; + + +// Individual tab of a ConfigModuleWithTabs +class ConfigModuleTab : public QWidget { + Q_OBJECT +public: + ConfigModuleTab( QWidget *parent=0, const char* name=0 ) + :QWidget( parent, name ) + {} + ~ConfigModuleTab() {} + void load(); + virtual void save() = 0; + void defaults(); + // the below are optional + virtual void installProfile(){} +signals: + // forwarded to the ConfigModule + void changed(bool); +public slots: + void slotEmitChanged(); +private: + // reimplement this for loading values of settings which are available + // via GlobalSettings + virtual void doLoadFromGlobalSettings() {} + // reimplement this for loading values of settings which are not available + // via GlobalSettings + virtual void doLoadOther() {} + // reimplement this for loading default values of settings which are + // not available via GlobalSettings (KConfigXT). + virtual void doResetToDefaultsOther() {} +}; + + +/* + * ConfigModuleWithTabs represents a kcm with several tabs. + * It simply forwards load and save operations to all tabs. + */ +class ConfigModuleWithTabs : public ConfigModule { + Q_OBJECT +public: + ConfigModuleWithTabs( QWidget * parent=0, const char * name=0 ); + ~ConfigModuleWithTabs() {} + + // don't reimplement any of those methods + virtual void load(); + virtual void save(); + virtual void defaults(); + virtual void installProfile( KConfig * profile ); + +protected: + void addTab( ConfigModuleTab* tab, const QString & title ); + +private: + QTabWidget *mTabWidget; + +}; + + +// +// +// IdentityPage +// +// + +class KDE_EXPORT IdentityPage : public ConfigModule { + Q_OBJECT +public: + IdentityPage( QWidget * parent=0, const char * name=0 ); + ~IdentityPage() {} + + QString helpAnchor() const; + + void load(); + void save(); + +public slots: + void slotUpdateTransportCombo( const QStringList & ); + +private slots: + void slotNewIdentity(); + void slotModifyIdentity(); + void slotRemoveIdentity(); + /** Connected to @p mRenameButton's clicked() signal. Just does a + KListView::rename on the selected item */ + void slotRenameIdentity(); + /** connected to @p mIdentityList's renamed() signal. Validates the + new name and sets it in the KPIM::IdentityManager */ + void slotRenameIdentity( QListViewItem *, const QString &, int ); + void slotContextMenu( KListView*, QListViewItem *, const QPoint & ); + void slotSetAsDefault(); + void slotIdentitySelectionChanged(); + +private: // methods + void refreshList(); + +private: // data members + KMail::IdentityDialog * mIdentityDialog; + int mOldNumberOfIdentities; + + KMail::IdentityListView * mIdentityList; + QPushButton * mModifyButton; + QPushButton * mRenameButton; + QPushButton * mRemoveButton; + QPushButton * mSetAsDefaultButton; +}; + + +// +// +// AccountsPage +// +// + +// subclasses: one class per tab: +class AccountsPageSendingTab : public ConfigModuleTab { + Q_OBJECT +public: + AccountsPageSendingTab( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + void save(); + +signals: + void transportListChanged( const QStringList & ); + +private slots: + void slotTransportSelected(); + void slotAddTransport(); + void slotModifySelectedTransport(); + void slotRemoveSelectedTransport(); + void slotSetDefaultTransport(); + +private: + virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + +private: + ListView *mTransportList; + QPushButton *mModifyTransportButton; + QPushButton *mRemoveTransportButton; + QPushButton *mSetDefaultTransportButton; + QCheckBox *mConfirmSendCheck; + QComboBox *mSendOnCheckCombo; + QComboBox *mSendMethodCombo; + QComboBox *mMessagePropertyCombo; + QLineEdit *mDefaultDomainEdit; + + QPtrList< KMTransportInfo > mTransportInfoList; +}; + + +class AccountsPageReceivingTab : public ConfigModuleTab { + Q_OBJECT +public: + AccountsPageReceivingTab( QWidget * parent=0, const char * name=0 ); + ~AccountsPageReceivingTab(); + QString helpAnchor() const; + void save(); + +signals: + void accountListChanged( const QStringList & ); + +private slots: + void slotAccountSelected(); + void slotAddAccount(); + void slotModifySelectedAccount(); + void slotRemoveSelectedAccount(); + void slotEditNotifications(); + void slotTweakAccountList(); + +private: + virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + QStringList occupiedNames(); + +private: + ListView *mAccountList; + QPushButton *mModifyAccountButton; + QPushButton *mRemoveAccountButton; + QCheckBox *mBeepNewMailCheck; + QCheckBox *mVerboseNotificationCheck; + QCheckBox *mCheckmailStartupCheck; + QPushButton *mOtherNewMailActionsButton; + + QValueList< QGuardedPtr > mAccountsToDelete; + QValueList< QGuardedPtr > mNewAccounts; + struct ModifiedAccountsType { + QGuardedPtr< KMAccount > oldAccount; + QGuardedPtr< KMAccount > newAccount; + }; + // ### make this value-based: + QValueList< ModifiedAccountsType* > mModifiedAccounts; +}; + +class KDE_EXPORT AccountsPage : public ConfigModuleWithTabs { + Q_OBJECT +public: + AccountsPage( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + + + // hrmpf. moc doesn't like nested classes with slots/signals...: + typedef AccountsPageSendingTab SendingTab; + typedef AccountsPageReceivingTab ReceivingTab; + +signals: + void transportListChanged( const QStringList & ); + void accountListChanged( const QStringList & ); + +private: + SendingTab *mSendingTab; + ReceivingTab *mReceivingTab; +}; + + +// +// +// AppearancePage +// +// + +class AppearancePageFontsTab : public ConfigModuleTab { + Q_OBJECT +public: + AppearancePageFontsTab( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + void save(); + + void installProfile( KConfig * profile ); + +private slots: + void slotFontSelectorChanged( int ); + +private: + //virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + void updateFontSelector(); + +private: + QCheckBox *mCustomFontCheck; + QComboBox *mFontLocationCombo; + KFontChooser *mFontChooser; + + int mActiveFontIndex; + QFont mFont[14]; +}; + +class AppearancePageColorsTab : public ConfigModuleTab { + Q_OBJECT +public: + AppearancePageColorsTab( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + void save(); + + void installProfile( KConfig * profile ); + +private: + //virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + +private: + QCheckBox *mCustomColorCheck; + ColorListBox *mColorList; + QCheckBox *mRecycleColorCheck; + QSpinBox *mCloseToQuotaThreshold; +}; + +class AppearancePageLayoutTab : public ConfigModuleTab { + Q_OBJECT +public: + AppearancePageLayoutTab( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + + void save(); + void installProfile( KConfig * profile ); + +private: + //virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + +private: // data + QButtonGroup *mFolderListGroup; + QButtonGroup *mMIMETreeLocationGroup; + QButtonGroup *mMIMETreeModeGroup; + QButtonGroup *mReaderWindowModeGroup; + QCheckBox *mFavoriteFolderViewCB; + QCheckBox *mFolderQuickSearchCB; +}; + +class AppearancePageHeadersTab : public ConfigModuleTab { + Q_OBJECT +public: + AppearancePageHeadersTab( QWidget * parent=0, const char * name=0 ); + + QString helpAnchor() const; + + void save(); + void installProfile( KConfig * profile ); + +private: // methods + //virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + void setDateDisplay( int id, const QString & format ); + +private: // data + QCheckBox *mShowQuickSearch; + QCheckBox *mMessageSizeCheck; + QCheckBox *mAttachmentCheck; + QCheckBox *mNestedMessagesCheck; + QCheckBox *mCryptoIconsCheck; + QButtonGroup *mNestingPolicy; + QButtonGroup *mDateDisplay; + QLineEdit *mCustomDateFormatEdit; +}; + +class AppearancePageReaderTab : public ConfigModuleTab { + Q_OBJECT +public: + AppearancePageReaderTab( QWidget * parent=0, const char * name=0 ); + + QString helpAnchor() const; + + void save(); + void installProfile( KConfig * profile ); + +private: + virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + void readCurrentFallbackCodec(); + void readCurrentOverrideCodec(); + +private: // data + QCheckBox *mShowColorbarCheck; + QCheckBox *mShowSpamStatusCheck; + QCheckBox *mShowEmoticonsCheck; + QCheckBox *mShowExpandQuotesMark; + KIntSpinBox *mCollapseQuoteLevelSpin; + QCheckBox *mShrinkQuotesCheck; + QComboBox *mCharsetCombo; + QComboBox *mOverrideCharsetCombo; +}; + + +class AppearancePageSystemTrayTab : public ConfigModuleTab { + Q_OBJECT +public: + AppearancePageSystemTrayTab( QWidget * parent=0, const char * name=0 ); + + QString helpAnchor() const; + + void save(); + void installProfile( KConfig * profile ); + +private: + virtual void doLoadFromGlobalSettings(); + +private: // data + QCheckBox *mSystemTrayCheck; + QButtonGroup *mSystemTrayGroup; +}; + +class KDE_EXPORT AppearancePage : public ConfigModuleWithTabs { + Q_OBJECT +public: + AppearancePage( QWidget * parent=0, const char * name=0 ); + + QString helpAnchor() const; + + // hrmpf. moc doesn't like nested classes with slots/signals...: + typedef AppearancePageFontsTab FontsTab; + typedef AppearancePageColorsTab ColorsTab; + typedef AppearancePageLayoutTab LayoutTab; + typedef AppearancePageHeadersTab HeadersTab; + typedef AppearancePageReaderTab ReaderTab; + typedef AppearancePageSystemTrayTab SystemTrayTab; + +private: + FontsTab *mFontsTab; + ColorsTab *mColorsTab; + LayoutTab *mLayoutTab; + HeadersTab *mHeadersTab; + ReaderTab *mReaderTab; + SystemTrayTab *mSystemTrayTab; +}; + +// +// +// Composer Page +// +// + +class ComposerPageGeneralTab : public ConfigModuleTab { + Q_OBJECT +public: + ComposerPageGeneralTab( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + + void save(); + void installProfile( KConfig * profile ); +protected slots: + void slotConfigureRecentAddresses(); + void slotConfigureCompletionOrder(); + +private: + virtual void doLoadFromGlobalSettings(); + +private: + QCheckBox *mAutoAppSignFileCheck; + QCheckBox *mTopQuoteCheck; + QCheckBox *mSmartQuoteCheck; + QCheckBox *mAutoRequestMDNCheck; + QCheckBox *mShowRecentAddressesInComposer; + QCheckBox *mWordWrapCheck; + KIntSpinBox *mWrapColumnSpin; + KIntSpinBox *mAutoSave; + QCheckBox *mExternalEditorCheck; + KURLRequester *mEditorRequester; +}; + +class ComposerPagePhrasesTab : public ConfigModuleTab { + Q_OBJECT +public: + ComposerPagePhrasesTab( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + + void save(); + +private slots: + void slotNewLanguage(); + void slotRemoveLanguage(); + void slotLanguageChanged( const QString& ); + void slotAddNewLanguage( const QString& ); + +private: + virtual void doLoadFromGlobalSettings(); + void setLanguageItemInformation( int index ); + void saveActiveLanguageItem(); + +private: + LanguageComboBox *mPhraseLanguageCombo; + QPushButton *mRemoveButton; + QLineEdit *mPhraseReplyEdit; + QLineEdit *mPhraseReplyAllEdit; + QLineEdit *mPhraseForwardEdit; + QLineEdit *mPhraseIndentPrefixEdit; + + int mActiveLanguageItem; + LanguageItemList mLanguageList; +}; + +class ComposerPageTemplatesTab : public ConfigModuleTab { + Q_OBJECT +public: + ComposerPageTemplatesTab( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + + void save(); + +private slots: + +private: + virtual void doLoadFromGlobalSettings(); + +private: + TemplatesConfiguration* mWidget; +}; + +class ComposerPageCustomTemplatesTab : public ConfigModuleTab { + Q_OBJECT +public: + ComposerPageCustomTemplatesTab( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + + void save(); + +private slots: + +private: + virtual void doLoadFromGlobalSettings(); + +private: + CustomTemplates* mWidget; +}; + +class ComposerPageSubjectTab : public ConfigModuleTab { + Q_OBJECT +public: + ComposerPageSubjectTab( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + + void save(); + +private: + virtual void doLoadFromGlobalSettings(); + +private: + SimpleStringListEditor *mReplyListEditor; + QCheckBox *mReplaceReplyPrefixCheck; + SimpleStringListEditor *mForwardListEditor; + QCheckBox *mReplaceForwardPrefixCheck; +}; + +class ComposerPageCharsetTab : public ConfigModuleTab { + Q_OBJECT +public: + ComposerPageCharsetTab( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + + void save(); + +private slots: + void slotVerifyCharset(QString&); + +private: + //virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + +private: + SimpleStringListEditor *mCharsetListEditor; + QCheckBox *mKeepReplyCharsetCheck; +}; + +class ComposerPageHeadersTab : public ConfigModuleTab { + Q_OBJECT +public: + ComposerPageHeadersTab( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + + void save(); + +private slots: + void slotMimeHeaderSelectionChanged(); + void slotMimeHeaderNameChanged( const QString & ); + void slotMimeHeaderValueChanged( const QString & ); + void slotNewMimeHeader(); + void slotRemoveMimeHeader(); + +private: + //virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + +private: + QCheckBox *mCreateOwnMessageIdCheck; + QLineEdit *mMessageIdSuffixEdit; + QRegExpValidator *mMessageIdSuffixValidator; + QListView *mTagList; + QPushButton *mRemoveHeaderButton; + QLineEdit *mTagNameEdit; + QLineEdit *mTagValueEdit; + QLabel *mTagNameLabel; + QLabel *mTagValueLabel; +}; + +class ComposerPageAttachmentsTab : public ConfigModuleTab { + Q_OBJECT +public: + ComposerPageAttachmentsTab( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + + void save(); + +private slots: + void slotOutlookCompatibleClicked(); + +private: + virtual void doLoadFromGlobalSettings(); + //FIXME virtual void doResetToDefaultsOther(); + +private: + QCheckBox *mOutlookCompatibleCheck; + QCheckBox *mMissingAttachmentDetectionCheck; + SimpleStringListEditor *mAttachWordsListEditor; +}; + +class KDE_EXPORT ComposerPage : public ConfigModuleWithTabs { + Q_OBJECT +public: + ComposerPage( QWidget * parent=0, const char * name=0 ); + + QString helpAnchor() const; + + // hrmpf. moc doesn't like nested classes with slots/signals...: + typedef ComposerPageGeneralTab GeneralTab; + typedef ComposerPagePhrasesTab PhrasesTab; + typedef ComposerPageTemplatesTab TemplatesTab; + typedef ComposerPageCustomTemplatesTab CustomTemplatesTab; + typedef ComposerPageSubjectTab SubjectTab; + typedef ComposerPageCharsetTab CharsetTab; + typedef ComposerPageHeadersTab HeadersTab; + typedef ComposerPageAttachmentsTab AttachmentsTab; + +private: + GeneralTab *mGeneralTab; + PhrasesTab *mPhrasesTab; + TemplatesTab *mTemplatesTab; + CustomTemplatesTab *mCustomTemplatesTab; + SubjectTab *mSubjectTab; + CharsetTab *mCharsetTab; + HeadersTab *mHeadersTab; + AttachmentsTab *mAttachmentsTab; +}; + +// +// +// SecurityPage +// +// + +class SecurityPageGeneralTab : public ConfigModuleTab { + Q_OBJECT +public: + SecurityPageGeneralTab( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + + void save(); + void installProfile( KConfig * profile ); + +private: + //virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + +private: + QCheckBox *mExternalReferences; + QCheckBox *mHtmlMailCheck; + QCheckBox *mNoMDNsWhenEncryptedCheck; + QButtonGroup *mMDNGroup; + QButtonGroup *mOrigQuoteGroup; + QCheckBox *mAutomaticallyImportAttachedKeysCheck; + QCheckBox *mAlwaysDecrypt; +}; + + +class SecurityPageComposerCryptoTab : public ConfigModuleTab { + Q_OBJECT +public: + SecurityPageComposerCryptoTab( QWidget * parent=0, const char * name=0 ); + + QString helpAnchor() const; + + void save(); + void installProfile( KConfig * profile ); + +private: + //virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + +private: + ComposerCryptoConfiguration* mWidget; +}; + +class SecurityPageWarningTab : public ConfigModuleTab { + Q_OBJECT +public: + SecurityPageWarningTab( QWidget * parent=0, const char * name=0 ); + + QString helpAnchor() const; + + void save(); + void installProfile( KConfig * profile ); + +private slots: + void slotReenableAllWarningsClicked(); + +private: + //virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + +private: + WarningConfiguration* mWidget; +}; + +class SecurityPageSMimeTab : public ConfigModuleTab, public DCOPObject { + Q_OBJECT + K_DCOP +public: + SecurityPageSMimeTab( QWidget * parent=0, const char * name=0 ); + ~SecurityPageSMimeTab(); + + QString helpAnchor() const; + + // Can't use k_dcop here. dcopidl can't parse this file, dcopidlng has a namespace bug. + void save(); + void installProfile( KConfig * profile ); + +private slots: + void slotUpdateHTTPActions(); + +private: + //virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + +private: + SMimeConfiguration* mWidget; + Kleo::CryptoConfig* mConfig; +}; + +class SecurityPageCryptPlugTab : public ConfigModuleTab +{ + Q_OBJECT +public: + SecurityPageCryptPlugTab( QWidget * parent = 0, const char* name = 0 ); + ~SecurityPageCryptPlugTab(); + + QString helpAnchor() const; + + void save(); + +private: + virtual void doLoadOther(); + //virtual void doResetToDefaultsOther(); + +private: + Kleo::BackendConfigWidget * mBackendConfig; +}; + +class KDE_EXPORT SecurityPage : public ConfigModuleWithTabs { + Q_OBJECT +public: + SecurityPage( QWidget * parent=0, const char * name=0 ); + + QString helpAnchor() const; + + // OpenPGP tab is special: + void installProfile( KConfig * profile ); + + typedef SecurityPageGeneralTab GeneralTab; + typedef SecurityPageComposerCryptoTab ComposerCryptoTab; + typedef SecurityPageWarningTab WarningTab; + typedef SecurityPageSMimeTab SMimeTab; + typedef SecurityPageCryptPlugTab CryptPlugTab; + +private: + GeneralTab *mGeneralTab; + ComposerCryptoTab *mComposerCryptoTab; + WarningTab *mWarningTab; + SMimeTab *mSMimeTab; + CryptPlugTab *mCryptPlugTab; +}; + + +// +// +// MiscPage +// +// + +class MiscPageFolderTab : public ConfigModuleTab { + Q_OBJECT +public: + MiscPageFolderTab( QWidget * parent=0, const char * name=0 ); + + void save(); + QString helpAnchor() const; + +private: + virtual void doLoadFromGlobalSettings(); + virtual void doLoadOther(); + //FIXME virtual void doResetToDefaultsOther(); + +private: + QCheckBox *mEmptyFolderConfirmCheck; + QCheckBox *mExcludeImportantFromExpiry; + QComboBox *mLoopOnGotoUnread; + QComboBox *mMailboxPrefCombo; + QComboBox *mActionEnterFolder; + QCheckBox *mEmptyTrashCheck; +#ifdef HAVE_INDEXLIB + QCheckBox *mIndexingEnabled; +#endif + QCheckBox *mDelayedMarkAsRead; + KIntSpinBox *mDelayedMarkTime; + QCheckBox *mShowPopupAfterDnD; + KMail::FolderRequester *mOnStartupOpenFolder; + QComboBox *mQuotaCmbBox; +}; + +class MiscPageGroupwareTab : public ConfigModuleTab { + Q_OBJECT +public: + MiscPageGroupwareTab( QWidget * parent=0, const char * name=0 ); + void save(); + QString helpAnchor() const; + +private slots: + void slotStorageFormatChanged( int ); + void slotLegacyBodyInvitesToggled( bool on ); + +private: + virtual void doLoadFromGlobalSettings(); + +private: + QCheckBox* mEnableGwCB; + QCheckBox* mEnableImapResCB; + + QWidget* mBox; + QVBox* gBox; + + QComboBox* mStorageFormatCombo; + QComboBox* mLanguageCombo; + + QLabel* mFolderComboLabel; + QWidgetStack* mFolderComboStack; + KMail::FolderRequester* mFolderCombo; // in the widgetstack + KMail::AccountComboBox* mAccountCombo; // in the widgetstack + + QCheckBox* mHideGroupwareFolders; + QCheckBox* mOnlyShowGroupwareFolders; + QCheckBox* mSyncImmediately; + QCheckBox* mDeleteInvitations; + + QCheckBox* mLegacyMangleFromTo; + QCheckBox* mLegacyBodyInvites; + QCheckBox* mExchangeCompatibleInvitations; + QCheckBox* mAutomaticSending; +}; + +class KDE_EXPORT MiscPage : public ConfigModuleWithTabs { + Q_OBJECT +public: + MiscPage( QWidget * parent=0, const char * name=0 ); + QString helpAnchor() const; + + typedef MiscPageFolderTab FolderTab; + typedef MiscPageGroupwareTab GroupwareTab; + +private: + FolderTab * mFolderTab; + GroupwareTab * mGroupwareTab; +}; + +// +// +// further helper classes: +// +// + +class ListView : public KListView { + Q_OBJECT +public: + ListView( QWidget *parent=0, const char *name=0, int visibleItem=10 ); + void resizeColums(); + + void setVisibleItem( int visibleItem, bool updateSize=true ); + virtual QSize sizeHint() const; + +protected: + virtual void resizeEvent( QResizeEvent *e ); + virtual void showEvent( QShowEvent *e ); + +private: + int mVisibleItem; +}; + + +#endif // _CONFIGURE_DIALOG_PRIVATE_H_ -- cgit v1.2.3