diff options
Diffstat (limited to 'kio/kssl/ksslcertdlg.h')
-rw-r--r-- | kio/kssl/ksslcertdlg.h | 138 |
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 + |