okular/ui/certificateviewer.h
Chinmoy Ranjan Pradhan a234a902dc Implement digital signature support for PDF
This is a squash of the original branch

It also contains fixes/rework from Albert Astals Cid

If you're interested in its history have a look at the
gsoc2018_digitalsignature branch

The poppler dependency situation is:
 * With 0.51 you get most signature information
 * With 0.68 you also get signature location/reason information
 * With 0.73 you also get signature certificate information
2019-01-10 23:13:54 +01:00

76 lines
2.3 KiB
C++

/***************************************************************************
* Copyright (C) 2018 by Chinmoy Ranjan Pradhan <chinmoyrp65@gmail.com> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
***************************************************************************/
#ifndef OKULAR_CERTIFICATEVIEWER_H
#define OKULAR_CERTIFICATEVIEWER_H
#include <QVector>
#include <QAbstractTableModel>
#include <KPageDialog>
#include "core/signatureutils.h"
class QTextEdit;
namespace Okular {
class CertificateInfo;
}
class CertificateModel : public QAbstractTableModel
{
Q_OBJECT
public:
explicit CertificateModel( const Okular::CertificateInfo &certInfo, QObject * parent = nullptr );
enum {
PropertyKeyRole = Qt::UserRole,
PropertyVisibleValueRole
};
enum Property {
Version,
SerialNumber,
Issuer,
IssuedOn,
ExpiresOn,
Subject,
PublicKey,
KeyUsage
};
Q_ENUM(Property)
int columnCount( const QModelIndex &parent = QModelIndex() ) const override;
int rowCount( const QModelIndex &parent = QModelIndex() ) const override;
QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const override;
QVariant headerData( int section, Qt::Orientation orientation, int role ) const override;
private:
QVector< Property > m_certificateProperties;
const Okular::CertificateInfo &m_certificateInfo;
};
class CertificateViewer : public KPageDialog
{
Q_OBJECT
public:
CertificateViewer( const Okular::CertificateInfo &certInfo, QWidget *parent );
private Q_SLOTS:
void updateText( const QModelIndex &index );
void exportCertificate();
private:
QTextEdit *m_propertyText;
CertificateModel *m_certificateModel;
const Okular::CertificateInfo &m_certificateInfo;
};
#endif