File indexing completed on 2024-04-28 04:33:05
0001 /* 0002 SPDX-FileCopyrightText: 2018 Chinmoy Ranjan Pradhan <chinmoyrp65@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef OKULAR_CERTIFICATEMODEL_H 0008 #define OKULAR_CERTIFICATEMODEL_H 0009 0010 #include <QAbstractTableModel> 0011 #include <QVector> 0012 0013 #include "core/signatureutils.h" 0014 0015 class CertificateModel : public QAbstractTableModel 0016 { 0017 Q_OBJECT 0018 0019 public: 0020 explicit CertificateModel(const Okular::CertificateInfo &certInfo, QObject *parent = nullptr); 0021 0022 enum { PropertyKeyRole = Qt::UserRole, PropertyVisibleValueRole }; 0023 0024 enum Property { Version, SerialNumber, Issuer, IssuedOn, ExpiresOn, Subject, PublicKey, KeyUsage, IssuerName, IssuerEmail, IssuerOrganization, SubjectName, SubjectEmail, SubjectOrganization, Sha1, Sha256 }; 0025 Q_ENUM(Property) 0026 0027 int columnCount(const QModelIndex &parent = QModelIndex()) const override; 0028 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0029 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; 0030 QVariant headerData(int section, Qt::Orientation orientation, int role) const override; 0031 0032 Q_INVOKABLE QString propertyVisibleValue(CertificateModel::Property p) const; 0033 Q_INVOKABLE bool exportCertificateTo(const QString &path); 0034 0035 private: 0036 QVector<Property> m_certificateProperties; 0037 const Okular::CertificateInfo &m_certificateInfo; 0038 }; 0039 0040 #endif