From 133b8a7106b716937e24c7b47306ff8ac02efd6b Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Tue, 5 Jul 2011 00:35:41 +0200 Subject: Added SSL Widget, first version --- src/urlbar/sslwidget.cpp | 137 +++++++++++++++++++++++++++++++++++++++++++++++ src/urlbar/sslwidget.h | 52 ++++++++++++++++++ 2 files changed, 189 insertions(+) create mode 100644 src/urlbar/sslwidget.cpp create mode 100644 src/urlbar/sslwidget.h (limited to 'src/urlbar') 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 +* +* +* 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 . +* +* ============================================================ */ + + +// 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 +#include +#include +#include + + +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("

") + url.toString() + QL1S("

") ); + 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 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("

") + i18n("Site Information") + QL1S("

") ); + 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 +* +* +* 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 . +* +* ============================================================ */ + + +#ifndef SSL_WIDGET_H +#define SSL_WIDGET_H + + +// Local Includes +#include "websslinfo.h" + +// Qt Includes +#include +#include + + +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 -- cgit v1.2.1