1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
/* vi: set sw=4 ts=4:
*
* Copyright (C) 2019 - 2020 Christian Hohnstaedt.
*
* All rights reserved.
*/
#include "CrlTreeView.h"
#include "CrlDetail.h"
#include "NewCrl.h"
#include "XcaDialog.h"
#include "MainWindow.h"
#include "ItemCombo.h"
#include "XcaWarning.h"
#include "ExportDialog.h"
#include "lib/db_crl.h"
#include "lib/pki_x509.h"
#include "lib/database_model.h"
#include "lib/load_obj.h"
void CrlTreeView::showPki(pki_base *pki)
{
CrlDetail::showCrl(this, dynamic_cast<pki_crl*>(pki));
}
void CrlTreeView::newItem(pki_x509 *cert)
{
NewCrl::newCrl(this, cert);
}
void CrlTreeView::newItem()
{
db_x509 *certs = Database.model<db_x509>();
QList<pki_x509 *> cas = certs->getAllIssuers();
pki_x509 *ca = NULL;
switch (cas.size()) {
case 0:
XCA_INFO(tr("There are no CA certificates for CRL generation"));
return;
case 1:
ca = cas[0];
break;
default: {
itemComboCert *c = new itemComboCert(NULL);
XcaDialog *d = new XcaDialog(this, revocation, c,
tr("Select CA certificate"), QString());
c->insertPkiItems(cas);
if (!d->exec()) {
delete d;
return;
}
ca = c->currentPkiItem();
delete d;
}
}
newItem(ca);
}
void CrlTreeView::load()
{
load_crl l;
load_default(&l);
}
ExportDialog *CrlTreeView::exportDialog(const QModelIndexList &indexes)
{
return new ExportDialog(this,
tr("Revocation list export"),
tr("CRL ( *.pem *.der *.crl )") + ";;" +
tr("vCalendar entry ( *.ics )"), indexes, QPixmap(":revImg"),
pki_export::select(revocation, basemodel->exportFlags(indexes)),
"crlexport");
}
|