AusweisApp2
DiagnosisModel.h
gehe zur Dokumentation dieser Datei
1 /*
2  * \copyright Copyright (c) 2018-2020 Governikus GmbH & Co. KG, Germany
3  */
4 
5 #pragma once
6 
11 #include "DiagnosisItem.h"
12 
13 #include <QAbstractListModel>
14 #include <QPair>
15 #include <QSharedPointer>
16 #include <QVector>
17 
19 
20 namespace governikus
21 {
22 
23 class SectionModel;
25 {
26  ContentItem(const QString& pTitle, const QString& pContent)
27  : mTitle(pTitle)
28  , mContent(pContent)
29  {
30  }
31 
32 
33  QString mTitle;
34  QString mContent;
35  QSharedPointer<SectionModel> mSection;
36 };
37 
38 
40  : public QAbstractListModel
41  , public QEnableSharedFromThis<SectionModel>
42 {
43  Q_OBJECT
44 
45  enum ContentRoles
46  {
47  TitleRole = Qt::UserRole + 1,
48  ContentRole
49  };
50 
51  private:
52  friend class ::test_DiagnosisModel;
53  QVector<QSharedPointer<ContentItem>> mContentItems;
54 
55  public:
56  explicit SectionModel(QObject* pParent = nullptr);
57 
58  QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
59  int rowCount(const QModelIndex& pParent = QModelIndex()) const override;
60  QHash<int, QByteArray> roleNames() const override;
61 
62  void addItem(const QString& pTitle, const QString& pContent);
63  void addItem(const QSharedPointer<ContentItem>& pContentItem);
64  void addItemWithoutTitle(const QString& pContent);
65  void addTitleWithoutContent(const QString& pTitle);
66  void removeAllItems();
67  void emitDataChangedForItem(const QSharedPointer<ContentItem>& pItem);
68  void replaceWithSections(QVector<QSharedPointer<SectionModel>> pSections);
69  QStringList getAsPlaintext(const QString& pPrependString = QString()) const;
70 };
71 
72 
74  : public QAbstractListModel
75 {
76  Q_OBJECT
77 
78  private:
79  friend class ::test_DiagnosisModel;
80  QVector<QPair<QString, QSharedPointer<SectionModel>>> mSections;
81  QSharedPointer<DiagnosisContext> mContext;
82  DiagnosisAntivirusDetection mAntivirusDetection;
83  DiagnosisFirewallDetection mFirewallDetection;
84  DiagnosisConnectionTest mConnectionTest;
85  QSharedPointer<ContentItem> mTimestampItem;
86  QSharedPointer<SectionModel> mNetworkInterfaceSection;
87  QSharedPointer<SectionModel> mNetworkConnectionSection;
88  QSharedPointer<SectionModel> mCombinedNetworkSection;
89  QSharedPointer<SectionModel> mCombinedAntivirusFirewallSection;
90  QSharedPointer<SectionModel> mAntivirusSection;
91  bool mAntivirusSectionRunning;
92  QSharedPointer<SectionModel> mFirewallSection;
93  bool mFirewallSectionRunning;
94  QSharedPointer<SectionModel> mCombinedReaderSection;
95  QSharedPointer<SectionModel> mCardReaderSection;
96  bool mCardReaderSectionRunning;
97  QSharedPointer<SectionModel> mPcscSection;
98  bool mPcscSectionRunning;
99  QSharedPointer<SectionModel> mRemoteDeviceSection;
100  bool mRemoteDeviceSectionRunning;
101 
102  QSharedPointer<SectionModel> createAusweisApp2Section();
103  void createNetworkSection();
104  void createCardReaderSection();
105  void createAntiVirusAndFirewallSection();
106  void emitDataChangedForSection(const QSharedPointer<ContentItem>& pItem) const;
107  void connectSignals();
108  void disconnectSignals();
109 
110  public:
111  explicit DiagnosisModel(const QSharedPointer<DiagnosisContext>& pContext);
112  ~DiagnosisModel() override;
113 
114  QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
115  int rowCount(const QModelIndex& pParent = QModelIndex()) const override;
116 
117  QString getFirstSectionName() const;
118  QAbstractListModel* getSectionContent(const QString& pSection);
119  QDateTime getCreationTime() const;
120  Q_INVOKABLE QString getCreationTimeString() const;
121  QString getAsPlaintext() const;
122  QString boolToString(bool pBoolean);
123  bool isRunning() const;
124 
125  Q_SIGNALS:
126  void fireRunningChanged();
127 
128  private Q_SLOTS:
129  void onTimestampChanged();
130  void onNetworkInfoChanged();
131  void onConnectionTestDone();
132  void onAntivirusInformationChanged();
133  void onAntivirusDetectionFailed();
134  void onFirewallInformationReady();
135  void onFirewallInformationFailed();
136  void onPcscInfoChanged();
137  void onRemoteInfosChanged();
138  void onReaderInfosChanged();
139  void reloadContent();
140 };
141 
142 } // namespace governikus
governikus::DiagnosisAntivirusDetection::startInformationProcess
void startInformationProcess()
Definition: DiagnosisAntivirusDetection.cpp:30
governikus::SectionModel::SectionModel
SectionModel(QObject *pParent=nullptr)
Definition: DiagnosisModel.cpp:611
governikus::DiagnosisModel::DiagnosisModel
DiagnosisModel(const QSharedPointer< DiagnosisContext > &pContext)
Definition: DiagnosisModel.cpp:20
DiagnosisContext.h
governikus::ContentItem::mSection
QSharedPointer< SectionModel > mSection
Definition: DiagnosisModel.h:35
governikus::DiagnosisModel::fireRunningChanged
void fireRunningChanged()
Definition: moc_DiagnosisModel.cpp:266
governikus::SectionModel::replaceWithSections
void replaceWithSections(QVector< QSharedPointer< SectionModel >> pSections)
Definition: DiagnosisModel.cpp:715
DiagnosisConnectionTest.h
governikus::SectionModel::addItemWithoutTitle
void addItemWithoutTitle(const QString &pContent)
Definition: DiagnosisModel.cpp:685
RemoteServiceSettings.h
governikus::RemoteServiceSettings
Definition: RemoteServiceSettings.h:29
governikus::DiagnosisConnectionTest::getProxyHostName
const QString & getProxyHostName() const
Definition: DiagnosisConnectionTest.h:72
governikus::DiagnosisContext::pcscInfoChanged
void pcscInfoChanged()
Definition: moc_DiagnosisContext.cpp:217
governikus::SectionModel::data
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition: DiagnosisModel.cpp:618
governikus::DiagnosisModel::getFirstSectionName
QString getFirstSectionName() const
Definition: DiagnosisModel.cpp:176
governikus::DiagnosisFirewallDetection::getSecondRuleEnabled
bool getSecondRuleEnabled() const
Definition: DiagnosisFirewallDetection.h:131
governikus::DiagnosisFirewallDetection::fireDetectionFailed
void fireDetectionFailed()
Definition: moc_DiagnosisFirewallDetection.cpp:148
governikus::DiagnosisConnectionTest::getProxyType
const QString & getProxyType() const
Definition: DiagnosisConnectionTest.h:84
governikus::DiagnosisFirewallDetection::getFirewallProfiles
const QVector< QSharedPointer< FirewallProfile > > & getFirewallProfiles() const
Definition: DiagnosisFirewallDetection.h:137
governikus::DiagnosisModel::getSectionContent
QAbstractListModel * getSectionContent(const QString &pSection)
Definition: DiagnosisModel.cpp:182
DiagnosisFirewallDetection.h
governikus::SectionModel::addTitleWithoutContent
void addTitleWithoutContent(const QString &pTitle)
Definition: DiagnosisModel.cpp:691
governikus::DiagnosisContext::readerInfosChanged
void readerInfosChanged()
Definition: moc_DiagnosisContext.cpp:205
governikus::DiagnosisAntivirusDetection
Definition: DiagnosisAntivirusDetection.h:52
AppSettings.h
governikus::SectionModel
Definition: DiagnosisModel.h:42
governikus::DiagnosisModel::getCreationTime
QDateTime getCreationTime() const
Definition: DiagnosisModel.cpp:197
governikus::DiagnosisConnectionTest
Definition: DiagnosisConnectionTest.h:24
governikus::ContentItem::mContent
QString mContent
Definition: DiagnosisModel.h:34
governikus::DiagnosisFirewallDetection::fireFirewallInformationReady
void fireFirewallInformationReady()
Definition: moc_DiagnosisFirewallDetection.cpp:142
governikus::DiagnosisAntivirusDetection::fireDetectionFailed
void fireDetectionFailed()
Definition: moc_DiagnosisAntivirusDetection.cpp:148
governikus::DiagnosisModel::~DiagnosisModel
~DiagnosisModel() override
Definition: DiagnosisModel.cpp:32
GeneralSettings.h
governikus::DiagnosisAntivirusDetection::getAntivirusInformations
const QVector< QSharedPointer< AntivirInfo > > & getAntivirusInformations() const
Definition: DiagnosisAntivirusDetection.cpp:92
governikus::DiagnosisAntivirusDetection::fireAntivirusInformationChanged
void fireAntivirusInformationChanged()
Definition: moc_DiagnosisAntivirusDetection.cpp:142
governikus::DiagnosisModel::rowCount
int rowCount(const QModelIndex &pParent=QModelIndex()) const override
Definition: DiagnosisModel.cpp:169
governikus::DiagnosisFirewallDetection::startDetection
void startDetection()
Definition: DiagnosisFirewallDetection.cpp:286
governikus::SectionModel::roleNames
QHash< int, QByteArray > roleNames() const override
Definition: DiagnosisModel.cpp:660
governikus::DiagnosisFirewallDetection::getDetectedFirewalls
const QVector< QSharedPointer< FirewallSoftware > > & getDetectedFirewalls() const
Definition: DiagnosisFirewallDetection.h:143
governikus::DiagnosisConnectionTest::startConnectionTest
void startConnectionTest()
Definition: DiagnosisConnectionTest.cpp:157
governikus::DiagnosisContext::fireNetworkInfoChanged
void fireNetworkInfoChanged()
Definition: moc_DiagnosisContext.cpp:235
governikus::SectionModel::rowCount
int rowCount(const QModelIndex &pParent=QModelIndex()) const override
Definition: DiagnosisModel.cpp:653
governikus::DiagnosisFirewallDetection::getFirstRuleEnabled
bool getFirstRuleEnabled() const
Definition: DiagnosisFirewallDetection.h:119
governikus::DiagnosisConnectionTest::getPingTestOnProxySuccessful
bool getPingTestOnProxySuccessful() const
Definition: DiagnosisConnectionTest.h:108
governikus::DiagnosisFirewallDetection::getFirstRuleExists
bool getFirstRuleExists() const
Definition: DiagnosisFirewallDetection.h:113
governikus::GeneralSettings::fireLanguageChanged
void fireLanguageChanged()
Definition: moc_GeneralSettings.cpp:165
governikus::DiagnosisConnectionTest::getProxyPort
const QString & getProxyPort() const
Definition: DiagnosisConnectionTest.h:78
governikus::DiagnosisFirewallDetection::getSecondRuleExists
bool getSecondRuleExists() const
Definition: DiagnosisFirewallDetection.h:125
governikus::GeneralSettings
Definition: GeneralSettings.h:30
governikus::LanguageLoader::getInstance
static LanguageLoader & getInstance()
Definition: LanguageLoader.cpp:42
governikus::DiagnosisModel::data
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition: DiagnosisModel.cpp:155
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::ContentItem::mTitle
QString mTitle
Definition: DiagnosisModel.h:33
BuildHelper.h
governikus::DiagnosisModel::getAsPlaintext
QString getAsPlaintext() const
Definition: DiagnosisModel.cpp:209
governikus::DiagnosisConnectionTest::getIsProxySet
bool getIsProxySet() const
Definition: DiagnosisConnectionTest.h:66
DiagnosisAntivirusDetection.h
governikus::DiagnosisConnectionTest::getProxyCapabilities
const QString & getProxyCapabilities() const
Definition: DiagnosisConnectionTest.h:90
governikus::DiagnosisModel::getCreationTimeString
Q_INVOKABLE QString getCreationTimeString() const
Definition: DiagnosisModel.cpp:203
governikus::DiagnosisFirewallDetection
Definition: DiagnosisFirewallDetection.h:74
governikus::DiagnosisModel
Definition: DiagnosisModel.h:75
governikus::RemoteServiceSettings::getTrustedCertificates
QList< QSslCertificate > getTrustedCertificates() const
Definition: RemoteServiceSettings.cpp:108
Env.h
governikus::DiagnosisModel::boolToString
QString boolToString(bool pBoolean)
Definition: DiagnosisModel.cpp:230
governikus::DiagnosisModel::isRunning
bool isRunning() const
Definition: DiagnosisModel.cpp:236
governikus::DiagnosisConnectionTest::getConnectionTestWithoutProxySuccessful
bool getConnectionTestWithoutProxySuccessful() const
Definition: DiagnosisConnectionTest.h:102
governikus::RemoteServiceSettings::fireTrustedRemoteInfosChanged
void fireTrustedRemoteInfosChanged()
Definition: moc_RemoteServiceSettings.cpp:148
DiagnosisItem.h
governikus::DiagnosisContext::timestampChanged
void timestampChanged()
Definition: moc_DiagnosisContext.cpp:211
governikus::SectionModel::addItem
void addItem(const QString &pTitle, const QString &pContent)
Definition: DiagnosisModel.cpp:670
governikus::SectionModel::emitDataChangedForItem
void emitDataChangedForItem(const QSharedPointer< ContentItem > &pItem)
Definition: DiagnosisModel.cpp:708
governikus::SectionModel::getAsPlaintext
QStringList getAsPlaintext(const QString &pPrependString=QString()) const
Definition: DiagnosisModel.cpp:733
test_DiagnosisModel
Definition: test_DiagnosisModel.cpp:17
governikus::BuildHelper::processInformationHeader
static void processInformationHeader(const std::function< void(const QString &, const QString &)> &pFunc, bool pTranslate=true)
Definition: BuildHelper.cpp:197
governikus::ContentItem::ContentItem
ContentItem(const QString &pTitle, const QString &pContent)
Definition: DiagnosisModel.h:26
DiagnosisModel.h
governikus::SectionModel::removeAllItems
void removeAllItems()
Definition: DiagnosisModel.cpp:697
LanguageLoader.h
governikus::RemoteServiceSettings::getRemoteInfo
RemoteInfo getRemoteInfo(const QSslCertificate &pCertificate) const
Definition: RemoteServiceSettings.cpp:242
governikus::LanguageLoader::getUsedLocale
const QLocale & getUsedLocale() const
Definition: LanguageLoader.cpp:176
governikus::DiagnosisConnectionTest::getConnectionTestWithProxySuccessful
bool getConnectionTestWithProxySuccessful() const
Definition: DiagnosisConnectionTest.h:96
governikus::DiagnosisConnectionTest::fireConnectionTestDone
void fireConnectionTestDone()
Definition: moc_DiagnosisConnectionTest.cpp:189
governikus::RemoteServiceSettings::generateFingerprint
static QString generateFingerprint(const QSslCertificate &pCert)
Definition: RemoteServiceSettings.cpp:34
governikus::ContentItem
Definition: DiagnosisModel.h:25