diff options
author | Andrea Diamantini <adjam7@gmail.com> | 2011-07-05 00:35:41 +0200 |
---|---|---|
committer | Andrea Diamantini <adjam7@gmail.com> | 2011-07-18 11:32:09 +0200 |
commit | 133b8a7106b716937e24c7b47306ff8ac02efd6b (patch) | |
tree | 90551bc2d644ce3e8318dfbbd9df842a3d910810 /src/urlbar | |
parent | Better notify SSL infos (diff) | |
download | rekonq-133b8a7106b716937e24c7b47306ff8ac02efd6b.tar.xz |
Added SSL Widget, first version
Diffstat (limited to 'src/urlbar')
-rw-r--r-- | src/urlbar/sslwidget.cpp | 137 | ||||
-rw-r--r-- | src/urlbar/sslwidget.h | 52 |
2 files changed, 189 insertions, 0 deletions
diff --git a/src/urlbar/sslwidget.cpp b/src/urlbar/sslwidget.cpp new file mode 100644 index 00000000..99e778c3 --- /dev/null +++ b/src/urlbar/sslwidget.cpp @@ -0,0 +1,137 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2011 by Andrea Diamantini <adjam7 at gmail dot com> +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License or (at your option) version 3 or any later version +* accepted by the membership of KDE e.V. (or its successor approved +* by the membership of KDE e.V.), which shall act as a proxy +* defined in Section 14 of version 3 of the license. +* +* 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, see <http://www.gnu.org/licenses/>. +* +* ============================================================ */ + + +// Auto Includes +#include "sslwidget.h" +#include "sslwidget.moc" + +// Local includes +#include "application.h" +#include "iconmanager.h" +#include "mainwindow.h" +#include "webtab.h" + +// KDE Includes + +// Qt Includes +#include <QtGui/QDialogButtonBox> +#include <QtGui/QFormLayout> +#include <QtGui/QLabel> +#include <QtGui/QPushButton> + + +SSLWidget::SSLWidget(const QUrl &url, const WebSslInfo &info, QWidget *parent) + : QMenu(parent) +{ + setAttribute(Qt::WA_DeleteOnClose); + setMinimumWidth(500); + + QFormLayout *layout = new QFormLayout(this); + + QLabel *l; + + // Title + QLabel *title = new QLabel(this); + title->setText( QL1S("<h4>") + url.toString() + QL1S("</h4>") ); + title->setAlignment(Qt::AlignCenter); + layout->addRow(title); + + QLabel *u = new QLabel(this); + u->setText( info.url().toString() ); + layout->addRow(u); + + QLabel *hAdd = new QLabel(this); + hAdd->setText( QL1S("Peer Address: ") + info.peerAddress().toString() ); + layout->addRow(hAdd); + + QLabel *pAdd = new QLabel(this); + pAdd->setText( QL1S("Parent Address: ") + info.parentAddress().toString() ); + layout->addRow(pAdd); + + QLabel *cip = new QLabel(this); + cip->setText( QL1S("Cipher: ") + info.ciphers() ); + layout->addRow(cip); + + QLabel *pr = new QLabel(this); + pr->setText( QL1S("Protocol: ") + info.protocol() ); + layout->addRow(pr); + + QLabel *epr = new QLabel(this); + epr->setText( QL1S("CA errors: ") + info.certificateErrors() ); + layout->addRow(epr); + + QList<QSslCertificate> caList = info.certificateChain(); + Q_FOREACH(const QSslCertificate &cert, caList) + { + QLabel *a = new QLabel(this); + a->setText( QL1S("ORGANIZATION: ") + cert.issuerInfo(QSslCertificate::Organization) ); + layout->addRow(a); + + QLabel *b = new QLabel(this); + b->setText( QL1S("CN: ") + cert.issuerInfo(QSslCertificate::CommonName) ); + layout->addRow(b); + + QLabel *c = new QLabel(this); + c->setText( QL1S("LOCALITY NAME: ") + cert.issuerInfo(QSslCertificate::LocalityName) ); + layout->addRow(c); + + QLabel *d = new QLabel(this); + d->setText( QL1S("ORGANIZATION UNIT NAME: ") + cert.issuerInfo(QSslCertificate::OrganizationalUnitName) ); + layout->addRow(d); + + QLabel *e = new QLabel(this); + e->setText( QL1S("COUNTRY NAME: ") + cert.issuerInfo(QSslCertificate::CountryName) ); + layout->addRow(e); + + QLabel *f = new QLabel(this); + f->setText( QL1S("STATE OR PROVINCE NAME: ") + cert.issuerInfo(QSslCertificate::StateOrProvinceName) ); + layout->addRow(f); + } + +// ---------------------------------------------------------------- + l = new QLabel(this); + l->setText( QL1S("<h4>") + i18n("Site Information") + QL1S("</h4>") ); + layout->addRow(l); + + setLayout(layout); +} + + +void SSLWidget::showAt(const QPoint &pos) +{ + adjustSize(); + + QPoint p(pos.x() - width(), pos.y() + 10); + move(p); + show(); +} + + +void SSLWidget::accept() +{ + + close(); +} diff --git a/src/urlbar/sslwidget.h b/src/urlbar/sslwidget.h new file mode 100644 index 00000000..4e36d364 --- /dev/null +++ b/src/urlbar/sslwidget.h @@ -0,0 +1,52 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2011 by Andrea Diamantini <adjam7 at gmail dot com> +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License or (at your option) version 3 or any later version +* accepted by the membership of KDE e.V. (or its successor approved +* by the membership of KDE e.V.), which shall act as a proxy +* defined in Section 14 of version 3 of the license. +* +* 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, see <http://www.gnu.org/licenses/>. +* +* ============================================================ */ + + +#ifndef SSL_WIDGET_H +#define SSL_WIDGET_H + + +// Local Includes +#include "websslinfo.h" + +// Qt Includes +#include <QtGui/QMenu> +#include <QtCore/QUrl> + + +class SSLWidget : public QMenu +{ + Q_OBJECT + +public: + SSLWidget(const QUrl &url, const WebSslInfo &info, QWidget *parent = 0); + + void showAt(const QPoint &pos); + +private Q_SLOTS: + void accept(); +}; + +#endif // SSL_WIDGET_H |