AusweisApp2
FormattedTextModel.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include <QAbstractListModel>
10 #include <QList>
11 #include <QPair>
12 #include <QString>
13 #include <QStringList>
14 
15 namespace governikus
16 {
17 
19  : public QAbstractListModel
20 {
21  Q_OBJECT
22 
23  public:
24  enum LineType
25  {
31  LISTITEM
32  };
33  Q_ENUM(LineType)
34 
36  {
37  ContentRole = Qt::UserRole + 1,
39  };
40 
41  explicit FormattedTextModel(QObject* pParent, const QStringList& pLines = QStringList());
42 
43  [[nodiscard]] int rowCount(const QModelIndex& pIndex = QModelIndex()) const override;
44  [[nodiscard]] QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
45  [[nodiscard]] QHash<int, QByteArray> roleNames() const override;
46 
47  [[nodiscard]] Q_INVOKABLE bool loadSeveral(const QStringList& pFilepaths);
48 
49 #if defined(QT_NO_DEBUG)
50 
51  private:
52 #endif
54  {
55  bool mSuccess;
56  QStringList mLines;
57  };
58 
59  static bool isFormattingLine(LineType pType);
60  static LineType lineType(const QString& pLine);
61  static QString stripFormattingCharacters(const QString& pLine, LineType pType);
62  static QString replaceControlCharactersWithHtml(const QString& pLine);
63  static ReadLinesResult readLines(const QString& pFilepath);
64 
65  private:
66  QList<QPair<QString, LineType>> mLines;
67 
68  void processLines(const QStringList& pLines);
69  void processLine(const QString& pLine);
70  [[nodiscard]] bool lastLineIsEmpty() const;
71 };
72 
73 } // namespace governikus
Definition: FormattedTextModel.h:20
Q_INVOKABLE bool loadSeveral(const QStringList &pFilepaths)
Definition: FormattedTextModel.cpp:68
static ReadLinesResult readLines(const QString &pFilepath)
Definition: FormattedTextModel.cpp:155
int rowCount(const QModelIndex &pIndex=QModelIndex()) const override
Definition: FormattedTextModel.cpp:29
static bool isFormattingLine(LineType pType)
Definition: FormattedTextModel.cpp:94
FormattedTextRoles
Definition: FormattedTextModel.h:36
@ ContentRole
Definition: FormattedTextModel.h:37
@ LineTypeRole
Definition: FormattedTextModel.h:38
static QString stripFormattingCharacters(const QString &pLine, LineType pType)
Definition: FormattedTextModel.cpp:132
static LineType lineType(const QString &pLine)
Definition: FormattedTextModel.cpp:101
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition: FormattedTextModel.cpp:36
QHash< int, QByteArray > roleNames() const override
Definition: FormattedTextModel.cpp:59
static QString replaceControlCharactersWithHtml(const QString &pLine)
Definition: FormattedTextModel.cpp:144
LineType
Definition: FormattedTextModel.h:25
@ HEADER
Definition: FormattedTextModel.h:27
@ LISTITEM
Definition: FormattedTextModel.h:31
@ SECTION
Definition: FormattedTextModel.h:28
@ SUBSECTION
Definition: FormattedTextModel.h:29
@ EMPTY
Definition: FormattedTextModel.h:26
@ REGULARTEXT
Definition: FormattedTextModel.h:30
FormattedTextModel(QObject *pParent, const QStringList &pLines=QStringList())
Definition: FormattedTextModel.cpp:20
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16
Definition: FormattedTextModel.h:54
bool mSuccess
Definition: FormattedTextModel.h:55
QStringList mLines
Definition: FormattedTextModel.h:56