summaryrefslogtreecommitdiffstats
path: root/kmail/kmtransport.h
diff options
context:
space:
mode:
Diffstat (limited to 'kmail/kmtransport.h')
-rw-r--r--kmail/kmtransport.h169
1 files changed, 169 insertions, 0 deletions
diff --git a/kmail/kmtransport.h b/kmail/kmtransport.h
new file mode 100644
index 000000000..3f4c57a37
--- /dev/null
+++ b/kmail/kmtransport.h
@@ -0,0 +1,169 @@
+/*
+ * kmtransport.h
+ *
+ * Copyright (c) 2001-2002 Michael Haeckel <haeckel@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef _KMTRANSPORT_H_
+#define _KMTRANSPORT_H_
+
+#include <kdialogbase.h>
+
+class QCheckBox;
+class QLabel;
+class QLineEdit;
+class QRadioButton;
+class KMServerTest;
+class QButtonGroup;
+
+class KMTransportInfo : public QObject
+{
+public:
+ KMTransportInfo();
+ virtual ~KMTransportInfo();
+ void readConfig(int id);
+ void writeConfig(int id);
+ static int findTransport(const QString &name);
+ static QStringList availableTransports();
+ uint id() const { return mId; }
+
+ /** Get/set password for this account */
+ QString passwd() const;
+ void setPasswd( const QString& passwd );
+
+ /** Get/set password storage flag */
+ bool storePasswd() const { return mStorePasswd; }
+ void setStorePasswd( bool store );
+
+ /** Read password from wallet */
+ void readPassword() const;
+
+ QString type, name, host, port, user, precommand, encryption, authType;
+ QString localHostname;
+ bool auth, specifyHostname;
+
+ private:
+ mutable QString mPasswd;
+ bool mPasswdDirty, mStorePasswd, mStorePasswdInConfig;
+ uint mId;
+};
+
+class KMTransportSelDlg : public KDialogBase
+{
+ Q_OBJECT
+
+public:
+ KMTransportSelDlg( QWidget *parent=0, const char *name=0, bool modal=TRUE );
+ int selected() const;
+
+private slots:
+ void buttonClicked( int id );
+
+private:
+ int mSelectedButton;
+};
+
+class KMTransportDialog : public KDialogBase
+{
+ Q_OBJECT
+
+public:
+ KMTransportDialog( const QString & caption, KMTransportInfo *transportInfo,
+ QWidget *parent=0, const char *name=0, bool modal=TRUE );
+ virtual ~KMTransportDialog();
+
+private slots:
+ virtual void slotOk();
+ void slotSendmailChooser();
+ void slotRequiresAuthClicked();
+ void slotSmtpEncryptionChanged(int);
+ void slotCheckSmtpCapabilities();
+ void slotSmtpCapabilities( const QStringList &, const QStringList &,
+ const QString &, const QString &,
+ const QString & );
+ void slotSendmailEditPath(const QString &);
+private:
+ struct SendmailWidgets
+ {
+ QLabel *titleLabel;
+ QLineEdit *nameEdit;
+ QLineEdit *locationEdit;
+ QPushButton *chooseButton;
+ };
+ struct SmtpWidgets
+ {
+ QLabel *titleLabel;
+ QLineEdit *nameEdit;
+ QLineEdit *hostEdit;
+ QLineEdit *portEdit;
+ QCheckBox *authCheck;
+ QLabel *loginLabel;
+ QLineEdit *loginEdit;
+ QLabel *passwordLabel;
+ QLineEdit *passwordEdit;
+ QLineEdit *precommand;
+ QButtonGroup *encryptionGroup;
+ QRadioButton *encryptionNone;
+ QRadioButton *encryptionSSL;
+ QRadioButton *encryptionTLS;
+ QButtonGroup *authGroup;
+ QRadioButton *authPlain;
+ QRadioButton *authLogin;
+ QRadioButton *authCramMd5;
+ QRadioButton *authDigestMd5;
+ QRadioButton *authNTLM;
+ QRadioButton *authGSSAPI;
+ QPushButton *checkCapabilities;
+ QCheckBox *storePasswordCheck;
+ QCheckBox *specifyHostnameCheck;
+ QLineEdit *localHostnameEdit;
+ QLabel *localHostnameLabel;
+ };
+
+ void makeSendmailPage();
+ void makeSmtpPage();
+ void setupSettings();
+ void saveSettings();
+ void checkHighest( QButtonGroup * );
+ void enableAuthMethods( unsigned int which );
+ bool sanityCheckSmtpInput();
+ static unsigned int authMethodsFromString( const QString & s );
+ static unsigned int authMethodsFromStringList( const QStringList & sl );
+
+ KMServerTest *mServerTest;
+ SmtpWidgets mSmtp;
+ SendmailWidgets mSendmail;
+ KMTransportInfo *mTransportInfo;
+ enum EncryptionMethods {
+ NoEncryption = 0,
+ SSL = 1,
+ TLS = 2
+ };
+ enum AuthMethods {
+ NoAuth = 0,
+ LOGIN = 1,
+ PLAIN = 2,
+ CRAM_MD5 = 4,
+ DIGEST_MD5 = 8,
+ NTLM = 16,
+ GSSAPI = 32,
+ AllAuth = 0xffffffff
+ };
+ unsigned int mAuthNone, mAuthSSL, mAuthTLS;
+};
+
+
+#endif