Mercurial > trustbridge
view ui/certificateitemwidget.cpp @ 639:c1b35edb097f trustbridge-refactor
New methods to modify and use the certificate list.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 24 Jun 2014 17:03:59 +0200 |
parents | 9d806f140bd5 |
children | 9c3e7754b76b |
line wrap: on
line source
/* 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 "certificateitemwidget.h" #include <QHBoxLayout> #include <QDebug> CertificateItemWidget::CertificateItemWidget( QWidget *parent, const Certificate &cert, bool state, bool editable) : QWidget(parent) { mCertificate = cert; mState = state; mEditable = editable; setupGUI(); } void CertificateItemWidget::setupGUI() { mLabel = new QLabel(mCertificate.subjectCN()); mComboBox = new QComboBox; mComboBox->setFixedWidth(46); connect(mComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(currentStateChanged(int))); QHBoxLayout *layout = new QHBoxLayout; if (mCertificate.isInstallCert()) { mComboBox->addItem(QIcon(":/img/list-add.png"), tr("add"), QVariant("true")); mComboBox->addItem(QIcon(":/img/list-remove.png"), tr("remove"), QVariant("false")); if (mState) mComboBox->setCurrentIndex(0); else { mComboBox->setCurrentIndex(1); } layout->addWidget(mComboBox); } else if (!mCertificate.isInstallCert() && !mEditable){ QImage *img = new QImage(":/img/list-remove.png"); QLabel *imgLabel = new QLabel; imgLabel->setPixmap(QPixmap::fromImage(*img)); imgLabel->setFixedSize(25, 25); imgLabel->setMargin(5); layout->addWidget(imgLabel); } else { mComboBox->addItem(QIcon(":/img/list-add.png"), tr("add"), QVariant("true")); mComboBox->addItem(QIcon(":/img/list-remove.png"), tr("remove"), QVariant("false")); if (mState) mComboBox->setCurrentIndex(0); else { mComboBox->setCurrentIndex(1); } layout->addWidget(mComboBox); } layout->addWidget(mLabel); this->setLayout(layout); } bool CertificateItemWidget::state() { return mComboBox->currentData().toBool(); } void CertificateItemWidget::setState(bool state) { disconnect(mComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(currentStateChanged(int))); if (state) { mComboBox->setCurrentIndex(0); } else { mComboBox->setCurrentIndex(1); } connect(mComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(currentStateChanged(int))); } Certificate CertificateItemWidget::certificate() { return mCertificate; } void CertificateItemWidget::currentStateChanged(int) { bool state = mComboBox->currentData().toBool(); emit stateChanged(state, mCertificate); }