00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef _ACCOUNT_DIALOG_H_
00022
#define _ACCOUNT_DIALOG_H_
00023
00024
#include <kdialogbase.h>
00025
#include "kmfoldercombobox.h"
00026
00027
class QCheckBox;
00028
class QComboBox;
00029
class QPushButton;
00030
class QLabel;
00031
class QLineEdit;
00032
class QRadioButton;
00033
class KIntNumInput;
00034
class KMAccount;
00035
class KMFolder;
00036
class KMServerTest;
00037
class QButtonGroup;
00038
namespace KMail {
00039
class SieveConfigEditor;
00040 }
00041
00042
class AccountDialog :
public KDialogBase
00043 {
00044 Q_OBJECT
00045
00046
public:
00047 AccountDialog(
const QString & caption, KMAccount *account,
00048 QWidget *parent=0,
const char *name=0,
bool modal=
true );
00049
virtual ~AccountDialog();
00050
private:
00051
struct LocalWidgets
00052 {
00053 QLabel *titleLabel;
00054 QLineEdit *nameEdit;
00055 QComboBox *locationEdit;
00056 QRadioButton *lockMutt;
00057 QRadioButton *lockMuttPriv;
00058 QRadioButton *lockProcmail;
00059 QComboBox *procmailLockFileName;
00060 QRadioButton *lockFcntl;
00061 QRadioButton *lockNone;
00062 QLineEdit *precommand;
00063
#if 0
00064
QCheckBox *resourceCheck;
00065 QPushButton *resourceClearButton;
00066 QPushButton *resourceClearPastButton;
00067
#endif
00068
QCheckBox *excludeCheck;
00069 QCheckBox *intervalCheck;
00070 QLabel *intervalLabel;
00071 KIntNumInput *intervalSpin;
00072 QComboBox *folderCombo;
00073 QComboBox *identityCombo;
00074 };
00075
00076
struct MaildirWidgets
00077 {
00078 QLabel *titleLabel;
00079 QLineEdit *nameEdit;
00080 QComboBox *locationEdit;
00081 QLineEdit *precommand;
00082
#if 0
00083
QCheckBox *resourceCheck;
00084 QPushButton *resourceClearButton;
00085 QPushButton *resourceClearPastButton;
00086
#endif
00087
QCheckBox *excludeCheck;
00088 QCheckBox *intervalCheck;
00089 QLabel *intervalLabel;
00090 KIntNumInput *intervalSpin;
00091 QComboBox *folderCombo;
00092 QComboBox *identityCombo;
00093 };
00094
00095
struct PopWidgets
00096 {
00097 QLabel *titleLabel;
00098 QLineEdit *nameEdit;
00099 QLineEdit *loginEdit;
00100 QLineEdit *passwordEdit;
00101 QLineEdit *hostEdit;
00102 QLineEdit *portEdit;
00103 QLineEdit *precommand;
00104 QButtonGroup *encryptionGroup;
00105 QRadioButton *encryptionNone;
00106 QRadioButton *encryptionSSL;
00107 QRadioButton *encryptionTLS;
00108 QButtonGroup *authGroup;
00109 QRadioButton *authUser;
00110 QRadioButton *authPlain;
00111 QRadioButton *authLogin;
00112 QRadioButton *authCRAM_MD5;
00113 QRadioButton *authDigestMd5;
00114 QRadioButton *authAPOP;
00115 QPushButton *checkCapabilities;
00116 QCheckBox *usePipeliningCheck;
00117 QCheckBox *storePasswordCheck;
00118 QCheckBox *deleteMailCheck;
00119 QCheckBox *retriveAllCheck;
00120
#if 0
00121
QCheckBox *resourceCheck;
00122 QPushButton *resourceClearButton;
00123 QPushButton *resourceClearPastButton;
00124
#endif
00125
QCheckBox *excludeCheck;
00126 QCheckBox *intervalCheck;
00127 QCheckBox *filterOnServerCheck;
00128 QLabel *intervalLabel;
00129 KIntNumInput *intervalSpin;
00130 KIntNumInput *filterOnServerSizeSpin;
00131 QComboBox *folderCombo;
00132 QComboBox *identityCombo;
00133 };
00134
00135
struct ImapWidgets
00136 {
00137 QLabel *titleLabel;
00138 QLineEdit *nameEdit;
00139 QLineEdit *loginEdit;
00140 QLineEdit *passwordEdit;
00141 QLineEdit *hostEdit;
00142 QLineEdit *portEdit;
00143 QLineEdit *prefixEdit;
00144
#if 0
00145
QCheckBox *resourceCheck;
00146 QPushButton *resourceClearButton;
00147 QPushButton *resourceClearPastButton;
00148
#endif
00149
QCheckBox *autoExpungeCheck;
00150 QCheckBox *hiddenFoldersCheck;
00151 QCheckBox *subscribedFoldersCheck;
00152 QCheckBox *loadOnDemandCheck;
00153 QCheckBox *storePasswordCheck;
00154 QCheckBox *progressDialogCheck;
00155 QCheckBox *excludeCheck;
00156 QCheckBox *intervalCheck;
00157 QLabel *intervalLabel;
00158 KIntNumInput *intervalSpin;
00159 QButtonGroup *encryptionGroup;
00160 QRadioButton *encryptionNone;
00161 QRadioButton *encryptionSSL;
00162 QRadioButton *encryptionTLS;
00163 QButtonGroup *authGroup;
00164 QRadioButton *authUser;
00165 QRadioButton *authPlain;
00166 QRadioButton *authLogin;
00167 QRadioButton *authCramMd5;
00168 QRadioButton *authDigestMd5;
00169 QRadioButton *authAnonymous;
00170 QPushButton *checkCapabilities;
00171 KMFolderComboBox *trashCombo;
00172 };
00173
00174
private slots:
00175
virtual void slotOk();
00176
void slotLocationChooser();
00177
void slotMaildirChooser();
00178
void slotEnablePopInterval(
bool state );
00179
void slotEnableImapInterval(
bool state );
00180
void slotEnableLocalInterval(
bool state );
00181
void slotEnableMaildirInterval(
bool state );
00182
void slotFontChanged();
00183
void slotPipeliningClicked();
00184
void slotPopEncryptionChanged(
int);
00185
void slotImapEncryptionChanged(
int);
00186
void slotCheckPopCapabilities();
00187
void slotCheckImapCapabilities();
00188
void slotPopCapabilities(
const QStringList &);
00189
void slotImapCapabilities(
const QStringList &);
00190
#if 0
00191
00192
00193
00194
#endif
00195
00196
private:
00197
void makeLocalAccountPage();
00198
void makeMaildirAccountPage();
00199
void makePopAccountPage();
00200
void makeImapAccountPage(
bool disconnected =
false );
00201
void setupSettings();
00202
void saveSettings();
00203
void checkHighest(QButtonGroup *);
00204
00205
private:
00206 LocalWidgets mLocal;
00207 MaildirWidgets mMaildir;
00208 PopWidgets mPop;
00209 ImapWidgets mImap;
00210 KMAccount *mAccount;
00211 QValueList<QGuardedPtr<KMFolder> > mFolderList;
00212 QStringList mFolderNames;
00213 KMServerTest *mServerTest;
00214 KMail::SieveConfigEditor *mSieveConfigEditor;
00215 QRegExpValidator *mValidator;
00216 };
00217
00218
00219
#endif