rrenkert@582: /* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik rrenkert@582: * Software engineering by Intevation GmbH rrenkert@582: * rrenkert@582: * This file is Free Software under the GNU GPL (v>=2) rrenkert@582: * and comes with ABSOLUTELY NO WARRANTY! rrenkert@582: * See LICENSE.txt for details. rrenkert@582: */ rrenkert@582: #include "certificatelistwidget.h" rrenkert@582: #include rrenkert@582: #include rrenkert@582: #include rrenkert@582: #include rrenkert@582: #include rrenkert@582: rrenkert@582: #include "certificateitemwidget.h" rrenkert@582: rrenkert@582: CertificateListWidget::CertificateListWidget(QWidget *parent, Qt::WindowFlags flags) : rrenkert@582: QWidget(parent, flags) rrenkert@582: { rrenkert@582: setupGUI(); rrenkert@582: } rrenkert@582: rrenkert@582: void CertificateListWidget::setupGUI() rrenkert@582: { rrenkert@582: QHBoxLayout *mainLayout = new QHBoxLayout; rrenkert@582: mCertificateList = new QListWidget; rrenkert@582: mCertificateList->setFixedWidth(250); rrenkert@582: connect(mCertificateList, rrenkert@582: SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), rrenkert@582: this, rrenkert@582: SLOT(updateDetails(QListWidgetItem*))); rrenkert@582: rrenkert@582: QHBoxLayout *detailLayout = new QHBoxLayout; rrenkert@582: QVBoxLayout *detailLabelLayout = new QVBoxLayout; rrenkert@582: QVBoxLayout *detailContentLayout = new QVBoxLayout; rrenkert@582: QGroupBox *detailBox = new QGroupBox(); rrenkert@582: QLabel *subjectCN = new QLabel(tr("Subject Common Name:")); rrenkert@582: QLabel *subjectOU = new QLabel(tr("Subject Organisation:")); rrenkert@582: QLabel *issuerCN = new QLabel(tr("Issuer Common Name:")); rrenkert@582: QLabel *issuerOU = new QLabel(tr("Issuer Organisation:")); rrenkert@582: QLabel *validFrom = new QLabel(tr("Valid from:")); rrenkert@582: QLabel *validTo = new QLabel(tr("Valid to:")); rrenkert@582: QLabel *fingerprint = new QLabel(tr("Fingerprint:")); rrenkert@582: detailLabelLayout->addWidget(subjectCN); rrenkert@582: detailLabelLayout->addWidget(subjectOU); rrenkert@582: detailLabelLayout->addWidget(issuerCN); rrenkert@582: detailLabelLayout->addWidget(issuerOU); rrenkert@582: detailLabelLayout->addWidget(validFrom); rrenkert@582: detailLabelLayout->addWidget(validTo); rrenkert@582: detailLabelLayout->addWidget(fingerprint); rrenkert@582: mSubjectCN = new QLabel(tr("")); rrenkert@582: mSubjectO = new QLabel(tr("")); rrenkert@582: mIssuerCN = new QLabel(tr("")); rrenkert@582: mIssuerO = new QLabel(tr("")); rrenkert@582: mValidFrom = new QLabel(tr("")); rrenkert@582: mValidTo = new QLabel(tr("")); rrenkert@582: mFingerprint = new QLabel(tr("")); rrenkert@582: mFingerprint->setFont(QFont("DejaVu Sans Mono")); rrenkert@582: detailContentLayout->addWidget(mSubjectCN); rrenkert@582: detailContentLayout->addWidget(mSubjectO); rrenkert@582: detailContentLayout->addWidget(mIssuerCN); rrenkert@582: detailContentLayout->addWidget(mIssuerO); rrenkert@582: detailContentLayout->addWidget(mValidFrom); rrenkert@582: detailContentLayout->addWidget(mValidTo); rrenkert@582: detailContentLayout->addWidget(mFingerprint); rrenkert@582: detailLayout->addLayout(detailLabelLayout); rrenkert@582: detailLayout->addLayout(detailContentLayout); rrenkert@582: detailBox->setLayout(detailLayout); rrenkert@582: rrenkert@582: mainLayout->addWidget(mCertificateList); rrenkert@582: mainLayout->addWidget(detailBox); rrenkert@582: this->setLayout(mainLayout); rrenkert@582: } rrenkert@582: rrenkert@582: void CertificateListWidget::addCertificate(const Certificate &certificate) rrenkert@582: { rrenkert@582: QListWidgetItem* item = new QListWidgetItem(mCertificateList); rrenkert@582: item->setData(Qt::UserRole, rrenkert@582: QVariant::fromValue(certificate)); rrenkert@582: mCertificateList->addItem(item); rrenkert@582: CertificateItemWidget *widget = rrenkert@582: new CertificateItemWidget(mCertificateList, certificate); rrenkert@582: item->setSizeHint(widget->minimumSizeHint()); rrenkert@582: mCertificateList->setItemWidget(item, widget); rrenkert@582: } rrenkert@582: rrenkert@582: void CertificateListWidget::addCertificates(const QList &list) rrenkert@582: { rrenkert@582: rrenkert@582: } rrenkert@582: rrenkert@582: void CertificateListWidget::removeCertificate(int ndx) rrenkert@582: { rrenkert@582: rrenkert@582: } rrenkert@582: rrenkert@582: QList CertificateListWidget::getCertificates() rrenkert@582: { rrenkert@582: return QList(); rrenkert@582: } rrenkert@582: rrenkert@582: void CertificateListWidget::updateDetails(QListWidgetItem *item) rrenkert@582: { rrenkert@582: if (item == NULL) { rrenkert@582: return; rrenkert@582: } rrenkert@582: Certificate cert = item->data(Qt::UserRole).value(); rrenkert@582: mSubjectCN->setText(cert.subjectCN()); rrenkert@582: mSubjectO->setText(cert.subjectO()); rrenkert@582: mIssuerCN->setText(cert.issuerCN()); rrenkert@582: mIssuerO->setText(cert.issuerO()); rrenkert@582: mValidFrom->setText(cert.validFrom().toString()); rrenkert@582: mValidTo->setText(cert.validTo().toString()); rrenkert@582: mFingerprint->setText(cert.fingerprint()); rrenkert@582: }