Mercurial > trustbridge
diff ui/certificatelistwidget.cpp @ 582:88c9bdc74175 trustbridge-refactor
New widgets to display certificates in lists.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 27 May 2014 16:16:21 +0200 |
parents | |
children | 566ee111e331 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/certificatelistwidget.cpp Tue May 27 16:16:21 2014 +0200 @@ -0,0 +1,115 @@ +/* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=2) + * and comes with ABSOLUTELY NO WARRANTY! + * See LICENSE.txt for details. + */ +#include "certificatelistwidget.h" +#include <QDebug> +#include <QVBoxLayout> +#include <QHBoxLayout> +#include <QGroupBox> +#include <QLabel> + +#include "certificateitemwidget.h" + +CertificateListWidget::CertificateListWidget(QWidget *parent, Qt::WindowFlags flags) : + QWidget(parent, flags) +{ + setupGUI(); +} + +void CertificateListWidget::setupGUI() +{ + QHBoxLayout *mainLayout = new QHBoxLayout; + mCertificateList = new QListWidget; + mCertificateList->setFixedWidth(250); + connect(mCertificateList, + SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), + this, + SLOT(updateDetails(QListWidgetItem*))); + + QHBoxLayout *detailLayout = new QHBoxLayout; + QVBoxLayout *detailLabelLayout = new QVBoxLayout; + QVBoxLayout *detailContentLayout = new QVBoxLayout; + QGroupBox *detailBox = new QGroupBox(); + QLabel *subjectCN = new QLabel(tr("Subject Common Name:")); + QLabel *subjectOU = new QLabel(tr("Subject Organisation:")); + QLabel *issuerCN = new QLabel(tr("Issuer Common Name:")); + QLabel *issuerOU = new QLabel(tr("Issuer Organisation:")); + QLabel *validFrom = new QLabel(tr("Valid from:")); + QLabel *validTo = new QLabel(tr("Valid to:")); + QLabel *fingerprint = new QLabel(tr("Fingerprint:")); + detailLabelLayout->addWidget(subjectCN); + detailLabelLayout->addWidget(subjectOU); + detailLabelLayout->addWidget(issuerCN); + detailLabelLayout->addWidget(issuerOU); + detailLabelLayout->addWidget(validFrom); + detailLabelLayout->addWidget(validTo); + detailLabelLayout->addWidget(fingerprint); + mSubjectCN = new QLabel(tr("")); + mSubjectO = new QLabel(tr("")); + mIssuerCN = new QLabel(tr("")); + mIssuerO = new QLabel(tr("")); + mValidFrom = new QLabel(tr("")); + mValidTo = new QLabel(tr("")); + mFingerprint = new QLabel(tr("")); + mFingerprint->setFont(QFont("DejaVu Sans Mono")); + detailContentLayout->addWidget(mSubjectCN); + detailContentLayout->addWidget(mSubjectO); + detailContentLayout->addWidget(mIssuerCN); + detailContentLayout->addWidget(mIssuerO); + detailContentLayout->addWidget(mValidFrom); + detailContentLayout->addWidget(mValidTo); + detailContentLayout->addWidget(mFingerprint); + detailLayout->addLayout(detailLabelLayout); + detailLayout->addLayout(detailContentLayout); + detailBox->setLayout(detailLayout); + + mainLayout->addWidget(mCertificateList); + mainLayout->addWidget(detailBox); + this->setLayout(mainLayout); +} + +void CertificateListWidget::addCertificate(const Certificate &certificate) +{ + QListWidgetItem* item = new QListWidgetItem(mCertificateList); + item->setData(Qt::UserRole, + QVariant::fromValue(certificate)); + mCertificateList->addItem(item); + CertificateItemWidget *widget = + new CertificateItemWidget(mCertificateList, certificate); + item->setSizeHint(widget->minimumSizeHint()); + mCertificateList->setItemWidget(item, widget); +} + +void CertificateListWidget::addCertificates(const QList<Certificate> &list) +{ + +} + +void CertificateListWidget::removeCertificate(int ndx) +{ + +} + +QList<Certificate> CertificateListWidget::getCertificates() +{ + return QList<Certificate>(); +} + +void CertificateListWidget::updateDetails(QListWidgetItem *item) +{ + if (item == NULL) { + return; + } + Certificate cert = item->data(Qt::UserRole).value<Certificate>(); + mSubjectCN->setText(cert.subjectCN()); + mSubjectO->setText(cert.subjectO()); + mIssuerCN->setText(cert.issuerCN()); + mIssuerO->setText(cert.issuerO()); + mValidFrom->setText(cert.validFrom().toString()); + mValidTo->setText(cert.validTo().toString()); + mFingerprint->setText(cert.fingerprint()); +}