kdelibs/kio/kssl/kcm/displaycertdialog.cpp
Ivailo Monev b9788987ab generic: misc cleanups
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2016-03-28 16:28:57 +00:00

86 lines
2.9 KiB
C++

/* This file is part of the KDE project
Copyright (C) 2010 Andreas Hartmetz <ahartmetz@gmail.com>
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 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.
*/
#include "displaycertdialog_p.h"
#include <kpushbutton.h>
#include <kstandardguiitem.h>
#include <klocale.h>
#include <QDateTime>
DisplayCertDialog::DisplayCertDialog(QWidget *parent)
: KDialog(parent),
m_index(0)
{
m_ui.setupUi(mainWidget());
setButtons(KDialog::Ok | KDialog::User1 | KDialog::User2);
QPair<KGuiItem, KGuiItem> bAndF = KStandardGuiItem::backAndForward();
setButtonGuiItem(KDialog::User2, bAndF.first);
setButtonGuiItem(KDialog::User1, bAndF.second);
connect(button(KDialog::User2), SIGNAL(clicked()), SLOT(previousClicked()));
connect(button(KDialog::User1), SIGNAL(clicked()), SLOT(nextClicked()));
}
void DisplayCertDialog::setCertificates(const QList<QSslCertificate> &certs)
{
Q_ASSERT(!certs.isEmpty());
m_certs = certs;
m_index = 0;
showCertificate(0);
button(KDialog::User2)->setEnabled(certs.size() > 1);
button(KDialog::User1)->setEnabled(certs.size() > 1);
}
void DisplayCertDialog::showCertificate(int index)
{
const QSslCertificate &cert = m_certs.at(index);
m_ui.subjectCertBox->setCertificate(cert, KSslCertificateBox::Subject);
m_ui.issuerCertBox->setCertificate(cert, KSslCertificateBox::Issuer);
QString vp = i18nc("%1 is the effective date of the certificate, %2 is the expiry date", "%1 to %2",
KGlobal::locale()->formatDateTime(cert.effectiveDate()),
KGlobal::locale()->formatDateTime(cert.expiryDate()));
m_ui.validityPeriod->setText(vp);
m_ui.serialNumber->setText(cert.serialNumber());
m_ui.md5Digest->setText(cert.digest().toHex());
m_ui.sha1Digest->setText(cert.digest(QCryptographicHash::Sha1).toHex());
}
//private slot
void DisplayCertDialog::nextClicked()
{
if (m_index == m_certs.size() - 1) {
m_index = 0;
} else {
m_index++;
}
showCertificate(m_index);
}
//private slot
void DisplayCertDialog::previousClicked()
{
if (m_index == 0) {
m_index = m_certs.size() - 1;
} else {
m_index--;
}
showCertificate(m_index);
}