AusweisApp2
SectionModel.h
gehe zur Dokumentation dieser Datei
1 /*
2  * \copyright Copyright (c) 2018-2022 Governikus GmbH & Co. KG, Germany
3  */
4 
5 #pragma once
6 
7 #include "ContentItem.h"
8 
9 #include <QAbstractListModel>
10 #include <QSharedPointer>
11 #include <QString>
12 #include <QStringList>
13 #include <QVector>
14 
15 class test_DiagnosisModel;
16 
17 
18 namespace governikus
19 {
20 
22  : public QAbstractListModel
23 {
24  Q_OBJECT
25  friend class ::test_DiagnosisModel;
26 
27  private:
28  enum ContentRoles
29  {
30  TitleRole = Qt::UserRole + 1,
31  ContentRole
32  };
33 
34  QVector<QSharedPointer<ContentItem>> mContentItems;
35 
36  public:
37  explicit SectionModel(QObject* pParent = nullptr);
38 
39  [[nodiscard]] QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
40  [[nodiscard]] int rowCount(const QModelIndex& pParent = QModelIndex()) const override;
41  [[nodiscard]] QHash<int, QByteArray> roleNames() const override;
42 
43  void addItem(const QString& pTitle, const QString& pContent);
44  void addItem(const QSharedPointer<ContentItem>& pContentItem);
45  void addItemWithoutTitle(const QString& pContent);
46  void addTitleWithoutContent(const QString& pTitle);
47  [[nodiscard]] bool contains(const QSharedPointer<ContentItem>& pContentItem) const;
48  void removeAllItems();
49  void emitDataChangedForItem(const QSharedPointer<ContentItem>& pItem);
50  void replaceWithSections(QVector<QSharedPointer<SectionModel>> pSections);
51  [[nodiscard]] QStringList getAsPlaintext(const QString& pPrependString = QString()) const;
52 };
53 
54 } // namespace governikus
Definition: SectionModel.h:23
void addItem(const QString &pTitle, const QString &pContent)
Definition: SectionModel.cpp:70
void addItemWithoutTitle(const QString &pContent)
Definition: SectionModel.cpp:84
void addTitleWithoutContent(const QString &pTitle)
Definition: SectionModel.cpp:90
SectionModel(QObject *pParent=nullptr)
Definition: SectionModel.cpp:11
QHash< int, QByteArray > roleNames() const override
Definition: SectionModel.cpp:60
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition: SectionModel.cpp:18
void replaceWithSections(QVector< QSharedPointer< SectionModel >> pSections)
Definition: SectionModel.cpp:120
void removeAllItems()
Definition: SectionModel.cpp:102
bool contains(const QSharedPointer< ContentItem > &pContentItem) const
Definition: SectionModel.cpp:96
int rowCount(const QModelIndex &pParent=QModelIndex()) const override
Definition: SectionModel.cpp:53
void emitDataChangedForItem(const QSharedPointer< ContentItem > &pItem)
Definition: SectionModel.cpp:113
QStringList getAsPlaintext(const QString &pPrependString=QString()) const
Definition: SectionModel.cpp:138
A simple template renderer.
Definition: ActivationContext.h:15