You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1065 lines
25 KiB
1065 lines
25 KiB
// -*- c++ -*-
|
|
// configuredialog_p.h: classes internal to ConfigureDialog
|
|
// see configuredialog.h for details.
|
|
|
|
#ifndef _CONFIGURE_DIALOG_PRIVATE_H_
|
|
#define _CONFIGURE_DIALOG_PRIVATE_H_
|
|
|
|
#include <klineedit.h>
|
|
#include <qcombobox.h>
|
|
#include <qguardedptr.h>
|
|
#include <qptrlist.h>
|
|
#include <qstring.h>
|
|
#include <qvaluelist.h>
|
|
#include <qstringlist.h>
|
|
#include <dcopobject.h>
|
|
|
|
#include <kdialogbase.h>
|
|
#include <klistview.h>
|
|
#include <kcmodule.h>
|
|
#include <klocale.h>
|
|
#include <kdepimmacros.h>
|
|
|
|
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 <qdict.h>
|
|
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<LanguageItem> 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 <kdialog.h>
|
|
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<KMAccount> > mAccountsToDelete;
|
|
QValueList< QGuardedPtr<KMAccount> > 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_
|