summaryrefslogtreecommitdiffstats
path: root/kio/kssl/ksslcertdlg.h
diff options
context:
space:
mode:
Diffstat (limited to 'kio/kssl/ksslcertdlg.h')
-rw-r--r--kio/kssl/ksslcertdlg.h138
1 files changed, 138 insertions, 0 deletions
diff --git a/kio/kssl/ksslcertdlg.h b/kio/kssl/ksslcertdlg.h
new file mode 100644
index 000000000..a52d0dec3
--- /dev/null
+++ b/kio/kssl/ksslcertdlg.h
@@ -0,0 +1,138 @@
+/* This file is part of the KDE project
+ *
+ * Copyright (C) 2001-2003 George Staikos <staikos@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef _KSSLCERTDLG_H
+#define _KSSLCERTDLG_H
+
+#include <qstringlist.h>
+#include <kdialog.h>
+
+class QWidget;
+class QCheckBox;
+class QRadioButton;
+class QListView;
+class QPushButton;
+
+/**
+ * KDE X.509 Certificate Dialog
+ *
+ * This class is used to create and display a dialog which contains the user's
+ * X.509 certificates and allows the user to present it during SSL sessions.
+ *
+ * @author George Staikos <staikos@kde.org>
+ * @see KSSL
+ * @short KDE X.509 Certificate Dialog
+ */
+class KIO_EXPORT KSSLCertDlg : public KDialog {
+ Q_OBJECT
+public:
+ /**
+ * Construct a KSSL certificate dialog
+ *
+ * @param parent the parent widget
+ * @param name the internal name of this instance
+ * @param modal create a modal dialog if set to true
+ */
+ KSSLCertDlg(QWidget *parent=0L, const char *name=0L, bool modal=false);
+
+ /**
+ * Destroy this object and close the dialog
+ */
+ virtual ~KSSLCertDlg();
+
+ /**
+ * Setup the dialog. Call this before you display the dialog.
+ *
+ * @param certs the list of possible certificates
+ * @param saveChecked save the checked item for the future
+ * @param sendChecked send the checked item to the remote host
+ * @deprecated
+ */
+ void setup(QStringList certs, bool saveChecked = false, bool sendChecked = true) KDE_DEPRECATED;
+
+ /**
+ * Setup the dialog. Call this before you display the dialog.
+ *
+ * @param certs the list of possible certificates
+ * @param saveChecked save the checked item for the future
+ * @param sendChecked send the checked item to the remote host
+ */
+ void setupDialog(const QStringList& certs, bool saveChecked = false, bool sendChecked = true);
+
+ /**
+ * Obtain the name of the certificate the user wants to send
+ *
+ * @return the name of the certificate
+ */
+ QString getChoice();
+
+ /**
+ * Determine if the user wants to send a certificate.
+ *
+ * @return true if the user wants to send a certificate
+ */
+ bool wantsToSend();
+
+ /**
+ * Determine if the user wants to save the choice for the future.
+ *
+ * @return true if the user wants to save the choice.
+ */
+ bool saveChoice();
+
+ /**
+ * Set the hostname that we are connecting to.
+ *
+ * @param host the hostname
+ */
+ void setHost(const QString& host);
+
+private slots:
+ void slotSend();
+ void slotDont();
+
+private:
+ class KSSLCertDlgPrivate;
+ KSSLCertDlgPrivate *d;
+ QCheckBox *_save;
+ QRadioButton *_send, *_dont;
+ QListView *_certs;
+ QPushButton *_ok;
+ QString _host;
+};
+
+
+class KIO_EXPORT KSSLCertDlgRet {
+public:
+ bool ok;
+ QString choice;
+ bool send;
+ bool save;
+
+protected:
+ class KSSLCertDlgRetPrivate;
+ KSSLCertDlgRetPrivate *d;
+};
+
+KIO_EXPORT QDataStream& operator<<(QDataStream& s, const KSSLCertDlgRet& r);
+KIO_EXPORT QDataStream& operator>>(QDataStream& s, KSSLCertDlgRet& r);
+
+#endif
+