/*! * \brief Model implementation for the CV certificate description. * * \copyright Copyright (c) 2016-2018 Governikus GmbH & Co. KG, Germany */ #pragma once #include #include #include #include #include namespace governikus { class AuthContext; struct CertificateDescription; struct cvcertificate_st; class CertificateDescriptionModel : public QAbstractListModel { Q_OBJECT Q_PROPERTY(QString subjectName READ getSubjectName NOTIFY fireChanged) Q_PROPERTY(QString purpose READ getPurpose NOTIFY fireChanged) QVector > mData; QSharedPointer mContext; enum UserRoles { LABEL = Qt::UserRole + 1, TEXT }; inline QSharedPointer getCertificateDescription() const; inline QString getValidity() const; void initModelData(const QSharedPointer& pCertDescription); private Q_SLOTS: void onDidAuthenticateEac1Changed(); public: CertificateDescriptionModel(QObject* pParent = nullptr); void resetContext(const QSharedPointer& pContext = QSharedPointer()); QString getSubjectName() const; QString getSubjectUrl() const; QString getPurpose() const; int rowCount(const QModelIndex& = QModelIndex()) const override; QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override; QHash roleNames() const override; Q_SIGNALS: void fireChanged(); }; } /* namespace governikus */