// -*- 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 TQPushButton; class TQLabel; class TQCheckBox; class KURLRequester; class KFontChooser; class TQRadioButton; class ColorListBox; class TQFont; class TQListViewItem; class TQTabWidget; class TQListBox; class TQButtonGroup; class TQRegExpValidator; class TQVBox; class KMAccount; class KMTransportInfo; class ListView; class ConfigureDialog; class KIntSpinBox; class SimpleStringListEditor; class KConfig; class TQPoint; class ComposerCryptoConfiguration; class WarningConfiguration; class SMimeConfiguration; class TemplatesConfiguration; class CustomTemplates; class TQGroupBox; class TQVGroupBox; #include class TQLineEdit; class KMMsgTagDesc; class KListBox; class KColorCombo; class KFontRequester; class KIconButton; class KKeyButton; class TQSpinBox; class KComboBox; 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 TQ_OBJECT public: enum DuplicateMode { Empty, ControlCenter, ExistingEntry }; NewIdentityDialog( const TQStringList & identities, TQWidget *tqparent=0, const char *name=0, bool modal=true ); TQString identityName() const { return mLineEdit->text(); } TQString duplicateIdentity() const { return mComboBox->currentText(); } DuplicateMode duplicateMode() const; protected slots: virtual void slotEnableOK( const TQString & ); private: TQLineEdit *mLineEdit; TQComboBox *mComboBox; TQButtonGroup *mButtonGroup; }; // // // Language item handling // // struct LanguageItem { LanguageItem() {} LanguageItem( const TQString & language, const TQString & reply=TQString(), const TQString & replyAll=TQString(), const TQString & forward=TQString(), const TQString & indentPrefix=TQString() ) : mLanguage( language ), mReply( reply ), mReplyAll( replyAll ), mForward( forward ), mIndentPrefix( indentPrefix ) {} TQString mLanguage, mReply, mReplyAll, mForward, mIndentPrefix; }; typedef TQValueList LanguageItemList; class NewLanguageDialog : public KDialogBase { Q_OBJECT TQ_OBJECT public: NewLanguageDialog( LanguageItemList & suppressedLangs, TQWidget *tqparent=0, const char *name=0, bool modal=true ); TQString language() const; private: TQComboBox *mComboBox; }; class LanguageComboBox : public TQComboBox { Q_OBJECT TQ_OBJECT public: LanguageComboBox( bool rw, TQWidget *tqparent=0, const char *name=0 ); int insertLanguage( const TQString & language ); TQString language() const; void setLanguage( const TQString & language ); }; // // // Profile dialog // // class ProfileDialog : public KDialogBase { Q_OBJECT TQ_OBJECT public: ProfileDialog( TQWidget * tqparent=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; TQStringList mProfileList; }; #include class ConfigModule : public KCModule { Q_OBJECT TQ_OBJECT public: ConfigModule( TQWidget * tqparent=0, const char * name=0 ) : KCModule ( tqparent, name ) {} ~ConfigModule() {} virtual void load() = 0; virtual void save() = 0; virtual void defaults() {} /** Should return the help anchor for this page or tab */ virtual TQString 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 TQWidget { Q_OBJECT TQ_OBJECT public: ConfigModuleTab( TQWidget *tqparent=0, const char* name=0 ) :TQWidget( tqparent, 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 TQ_OBJECT public: ConfigModuleWithTabs( TQWidget * tqparent=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 TQString & title ); private: TQTabWidget *mTabWidget; }; // // // IdentityPage // // class KDE_EXPORT IdentityPage : public ConfigModule { Q_OBJECT TQ_OBJECT public: IdentityPage( TQWidget * tqparent=0, const char * name=0 ); ~IdentityPage() {} TQString helpAnchor() const; void load(); void save(); public slots: void slotUpdateTransportCombo( const TQStringList & ); 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( TQListViewItem *, const TQString &, int ); void slotContextMenu( KListView*, TQListViewItem *, const TQPoint & ); void slotSetAsDefault(); void slotIdentitySelectionChanged(); private: // methods void refreshList(); private: // data members KMail::IdentityDialog * mIdentityDialog; int mOldNumberOfIdentities; KMail::IdentityListView * mIdentityList; TQPushButton * mModifyButton; TQPushButton * mRenameButton; TQPushButton * mRemoveButton; TQPushButton * mSetAsDefaultButton; }; // // // AccountsPage // // // subclasses: one class per tab: class AccountsPageSendingTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: AccountsPageSendingTab( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; void save(); signals: void transportListChanged( const TQStringList & ); 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; TQPushButton *mModifyTransportButton; TQPushButton *mRemoveTransportButton; TQPushButton *mSetDefaultTransportButton; TQCheckBox *mConfirmSendCheck; TQComboBox *mSendOnCheckCombo; TQComboBox *mSendMethodCombo; TQComboBox *mMessagePropertyCombo; TQLineEdit *mDefaultDomainEdit; TQPtrList< KMTransportInfo > mTransportInfoList; }; class AccountsPageReceivingTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: AccountsPageReceivingTab( TQWidget * tqparent=0, const char * name=0 ); ~AccountsPageReceivingTab(); TQString helpAnchor() const; void save(); signals: void accountListChanged( const TQStringList & ); 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(); TQStringList occupiedNames(); private: ListView *mAccountList; TQPushButton *mModifyAccountButton; TQPushButton *mRemoveAccountButton; TQCheckBox *mBeepNewMailCheck; TQCheckBox *mVerboseNotificationCheck; TQCheckBox *mCheckmailStartupCheck; TQPushButton *mOtherNewMailActionsButton; TQValueList< TQGuardedPtr > mAccountsToDelete; TQValueList< TQGuardedPtr > mNewAccounts; struct ModifiedAccountsType { TQGuardedPtr< KMAccount > oldAccount; TQGuardedPtr< KMAccount > newAccount; }; // ### make this value-based: TQValueList< ModifiedAccountsType* > mModifiedAccounts; }; class KDE_EXPORT AccountsPage : public ConfigModuleWithTabs { Q_OBJECT TQ_OBJECT public: AccountsPage( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; // hrmpf. tqmoc doesn't like nested classes with slots/signals...: typedef AccountsPageSendingTab SendingTab; typedef AccountsPageReceivingTab ReceivingTab; signals: void transportListChanged( const TQStringList & ); void accountListChanged( const TQStringList & ); private: SendingTab *mSendingTab; ReceivingTab *mReceivingTab; }; // // // AppearancePage // // class AppearancePageFontsTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: AppearancePageFontsTab( TQWidget * tqparent=0, const char * name=0 ); TQString 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: TQCheckBox *mCustomFontCheck; TQComboBox *mFontLocationCombo; KFontChooser *mFontChooser; int mActiveFontIndex; TQFont mFont[14]; }; class AppearancePageColorsTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: AppearancePageColorsTab( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; void save(); void installProfile( KConfig * profile ); private: //virtual void doLoadFromGlobalSettings(); virtual void doLoadOther(); //FIXME virtual void doResetToDefaultsOther(); private: TQCheckBox *mCustomColorCheck; ColorListBox *mColorList; TQCheckBox *mRecycleColorCheck; TQSpinBox *mCloseToQuotaThreshold; }; class AppearancePageLayoutTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: AppearancePageLayoutTab( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; void save(); void installProfile( KConfig * profile ); private: //virtual void doLoadFromGlobalSettings(); virtual void doLoadOther(); //FIXME virtual void doResetToDefaultsOther(); private: // data TQButtonGroup *mFolderListGroup; TQButtonGroup *mMIMETreeLocationGroup; TQButtonGroup *mMIMETreeModeGroup; TQButtonGroup *mReaderWindowModeGroup; TQCheckBox *mFavoriteFolderViewCB; }; class AppearancePageHeadersTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: AppearancePageHeadersTab( TQWidget * tqparent=0, const char * name=0 ); TQString 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 TQString & format ); private: // data TQCheckBox *mMessageSizeCheck; TQCheckBox *mAttachmentCheck; TQCheckBox *mNestedMessagesCheck; TQCheckBox *mCryptoIconsCheck; TQButtonGroup *mNestingPolicy; TQButtonGroup *mDateDisplay; TQLineEdit *mCustomDateFormatEdit; }; class AppearancePageReaderTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: AppearancePageReaderTab( TQWidget * tqparent=0, const char * name=0 ); TQString 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 TQCheckBox *mCloseAfterReplyOrForwardCheck; TQCheckBox *mShowColorbarCheck; TQCheckBox *mShowSpamStatusCheck; TQCheckBox *mShowEmoticonsCheck; TQCheckBox *mShowExpandQuotesMark; KIntSpinBox *mCollapseQuoteLevelSpin; TQCheckBox *mShrinkQuotesCheck; TQComboBox *mCharsetCombo; TQComboBox *mOverrideCharsetCombo; TQCheckBox *mShowCurrentTimeCheck; }; class AppearancePageSystemTrayTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: AppearancePageSystemTrayTab( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; void save(); void installProfile( KConfig * profile ); private: virtual void doLoadFromGlobalSettings(); private: // data TQCheckBox *mSystemTrayCheck; TQButtonGroup *mSystemTrayGroup; }; class KDE_EXPORT AppearancePage : public ConfigModuleWithTabs { Q_OBJECT TQ_OBJECT public: AppearancePage( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; // hrmpf. tqmoc 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 TQ_OBJECT public: ComposerPageGeneralTab( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; void save(); void installProfile( KConfig * profile ); protected slots: void slotConfigureRecentAddresses(); void slotConfigureCompletionOrder(); private: virtual void doLoadFromGlobalSettings(); private: TQCheckBox *mAutoAppSignFileCheck; TQCheckBox *mTopQuoteCheck; TQCheckBox *mSmartQuoteCheck; TQCheckBox *mStripSignatureCheck; TQCheckBox *mQuoteSelectionOnlyCheck; TQCheckBox *mAutoRequestMDNCheck; TQCheckBox *mShowRecentAddressesInComposer; TQCheckBox *mWordWrapCheck; KIntSpinBox *mWrapColumnSpin; TQCheckBox *mRecipientCheck; KIntSpinBox *mRecipientSpin; KIntSpinBox *mAutoSave; TQCheckBox *mExternalEditorCheck; KURLRequester *mEditorRequester; KComboBox *mForwardTypeCombo; }; class ComposerPagePhrasesTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: ComposerPagePhrasesTab( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; void save(); private slots: void slotNewLanguage(); void slotRemoveLanguage(); void slotLanguageChanged( const TQString& ); void slotAddNewLanguage( const TQString& ); private: virtual void doLoadFromGlobalSettings(); void setLanguageItemInformation( int index ); void saveActiveLanguageItem(); private: LanguageComboBox *mPhraseLanguageCombo; TQPushButton *mRemoveButton; TQLineEdit *mPhraseReplyEdit; TQLineEdit *mPhraseReplyAllEdit; TQLineEdit *mPhraseForwardEdit; TQLineEdit *mPhraseIndentPrefixEdit; int mActiveLanguageItem; LanguageItemList mLanguageList; }; class ComposerPageTemplatesTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: ComposerPageTemplatesTab( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; void save(); private slots: private: virtual void doLoadFromGlobalSettings(); private: TemplatesConfiguration* mWidget; }; class ComposerPageCustomTemplatesTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: ComposerPageCustomTemplatesTab( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; void save(); private slots: private: virtual void doLoadFromGlobalSettings(); private: CustomTemplates* mWidget; }; class ComposerPageSubjectTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: ComposerPageSubjectTab( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; void save(); private: virtual void doLoadFromGlobalSettings(); private: SimpleStringListEditor *mReplyListEditor; TQCheckBox *mReplaceReplyPrefixCheck; SimpleStringListEditor *mForwardListEditor; TQCheckBox *mReplaceForwardPrefixCheck; }; class ComposerPageCharsetTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: ComposerPageCharsetTab( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; void save(); private slots: void slotVerifyCharset(TQString&); private: //virtual void doLoadFromGlobalSettings(); virtual void doLoadOther(); //FIXME virtual void doResetToDefaultsOther(); private: SimpleStringListEditor *mCharsetListEditor; TQCheckBox *mKeepReplyCharsetCheck; }; class ComposerPageHeadersTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: ComposerPageHeadersTab( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; void save(); private slots: void slotMimeHeaderSelectionChanged(); void slotMimeHeaderNameChanged( const TQString & ); void slotMimeHeaderValueChanged( const TQString & ); void slotNewMimeHeader(); void slotRemoveMimeHeader(); private: //virtual void doLoadFromGlobalSettings(); virtual void doLoadOther(); //FIXME virtual void doResetToDefaultsOther(); private: TQCheckBox *mCreateOwnMessageIdCheck; TQLineEdit *mMessageIdSuffixEdit; TQRegExpValidator *mMessageIdSuffixValidator; TQListView *mTagList; TQPushButton *mRemoveHeaderButton; TQLineEdit *mTagNameEdit; TQLineEdit *mTagValueEdit; TQLabel *mTagNameLabel; TQLabel *mTagValueLabel; }; class ComposerPageAttachmentsTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: ComposerPageAttachmentsTab( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; void save(); private slots: void slotOutlookCompatibleClicked(); private: virtual void doLoadFromGlobalSettings(); //FIXME virtual void doResetToDefaultsOther(); private: TQCheckBox *mOutlookCompatibleCheck; TQCheckBox *mMissingAttachmentDetectionCheck; SimpleStringListEditor *mAttachWordsListEditor; }; class KDE_EXPORT ComposerPage : public ConfigModuleWithTabs { Q_OBJECT TQ_OBJECT public: ComposerPage( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; // hrmpf. tqmoc 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 TQ_OBJECT public: SecurityPageGeneralTab( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; void save(); void installProfile( KConfig * profile ); private: //virtual void doLoadFromGlobalSettings(); virtual void doLoadOther(); //FIXME virtual void doResetToDefaultsOther(); private: TQCheckBox *mExternalReferences; TQCheckBox *mHtmlMailCheck; TQCheckBox *mNoMDNsWhenEncryptedCheck; TQButtonGroup *mMDNGroup; TQButtonGroup *mOrigQuoteGroup; TQCheckBox *mAutomaticallyImportAttachedKeysCheck; TQCheckBox *mAlwaysDecrypt; }; class SecurityPageComposerCryptoTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: SecurityPageComposerCryptoTab( TQWidget * tqparent=0, const char * name=0 ); TQString 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 TQ_OBJECT public: SecurityPageWarningTab( TQWidget * tqparent=0, const char * name=0 ); TQString 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 TQ_OBJECT K_DCOP public: SecurityPageSMimeTab( TQWidget * tqparent=0, const char * name=0 ); ~SecurityPageSMimeTab(); TQString 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 TQ_OBJECT public: SecurityPageCryptPlugTab( TQWidget * tqparent = 0, const char* name = 0 ); ~SecurityPageCryptPlugTab(); TQString helpAnchor() const; void save(); private: virtual void doLoadOther(); //virtual void doResetToDefaultsOther(); private: Kleo::BackendConfigWidget * mBackendConfig; }; class KDE_EXPORT SecurityPage : public ConfigModuleWithTabs { Q_OBJECT TQ_OBJECT public: SecurityPage( TQWidget * tqparent=0, const char * name=0 ); TQString 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 TQ_OBJECT public: MiscPageFolderTab( TQWidget * tqparent=0, const char * name=0 ); void save(); TQString helpAnchor() const; private: virtual void doLoadFromGlobalSettings(); virtual void doLoadOther(); //FIXME virtual void doResetToDefaultsOther(); private: TQCheckBox *mEmptyFolderConfirmCheck; TQCheckBox *mExcludeImportantFromExpiry; TQComboBox *mLoopOnGotoUnread; TQComboBox *mMailboxPrefCombo; TQComboBox *mActionEnterFolder; TQCheckBox *mEmptyTrashCheck; #ifdef HAVE_INDEXLIB TQCheckBox *mIndexingEnabled; #endif TQCheckBox *mDelayedMarkAsRead; KIntSpinBox *mDelayedMarkTime; TQCheckBox *mShowPopupAfterDnD; KMail::FolderRequester *mOnStartupOpenFolder; TQComboBox *mQuotaCmbBox; }; class MiscPageGroupwareTab : public ConfigModuleTab { Q_OBJECT TQ_OBJECT public: MiscPageGroupwareTab( TQWidget * tqparent=0, const char * name=0 ); void save(); TQString helpAnchor() const; private slots: void slotStorageFormatChanged( int ); void slotLegacyBodyInvitesToggled( bool on ); private: virtual void doLoadFromGlobalSettings(); private: TQCheckBox* mEnableGwCB; TQCheckBox* mEnableImapResCB; TQWidget* mBox; TQVBox* gBox; TQComboBox* mStorageFormatCombo; TQComboBox* mLanguageCombo; TQLabel* mFolderComboLabel; TQWidgetStack* mFolderComboStack; KMail::FolderRequester* mFolderCombo; // in the widgetstack KMail::AccountComboBox* mAccountCombo; // in the widgetstack TQCheckBox* mHideGroupwareFolders; TQCheckBox* mOnlyShowGroupwareFolders; TQCheckBox* mSyncImmediately; TQCheckBox* mDeleteInvitations; TQCheckBox* mLegacyMangleFromTo; TQCheckBox* mLegacyBodyInvites; TQCheckBox* mExchangeCompatibleInvitations; TQCheckBox* mOutlookCompatibleInvitationComments; TQCheckBox* mAutomaticSending; }; class KDE_EXPORT MiscPage : public ConfigModuleWithTabs { Q_OBJECT TQ_OBJECT public: MiscPage( TQWidget * tqparent=0, const char * name=0 ); TQString helpAnchor() const; typedef MiscPageFolderTab FolderTab; typedef MiscPageGroupwareTab GroupwareTab; private: FolderTab * mFolderTab; GroupwareTab * mGroupwareTab; }; // // // further helper classes: // // class ListView : public KListView { Q_OBJECT TQ_OBJECT public: ListView( TQWidget *tqparent=0, const char *name=0, int visibleItem=10 ); void resizeColums(); void setVisibleItem( int visibleItem, bool updateSize=true ); virtual TQSize tqsizeHint() const; protected: virtual void resizeEvent( TQResizeEvent *e ); virtual void showEvent( TQShowEvent *e ); private: int mVisibleItem; }; #endif // _CONFIGURE_DIALOG_PRIVATE_H_