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 = nullptr);
42  explicit FormattedTextModel(const QStringList& pLines);
43 
44  int rowCount(const QModelIndex& pIndex = QModelIndex()) const override;
45  QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
46  QHash<int, QByteArray> roleNames() const override;
47 
48  Q_INVOKABLE bool load(const QString& pFilepath);
49  Q_INVOKABLE bool loadSeveral(const QStringList& pFilepaths);
50 
51 #if defined(QT_NO_DEBUG)
52 
53  private:
54 #endif
56  {
57  bool mSuccess;
58  QStringList mLines;
59  };
60 
61  static bool isFormattingLine(LineType pType);
62  static LineType lineType(const QString& pLine);
63  static QString stripFormattingCharacters(const QString& pLine, LineType pType);
64  static QString replaceControlCharactersWithHtml(const QString& pLine);
65  static ReadLinesResult readLines(const QString& pFilepath);
66 
67  private:
68  QList<QPair<QString, LineType>> mLines;
69 
70  void processLines(const QStringList& pLines);
71  void processLine(const QString& pLine);
72  bool lastLineIsEmpty() const;
73 };
74 
75 } // namespace governikus
governikus::FormattedTextModel::ContentRole
@ ContentRole
Definition: FormattedTextModel.h:37
governikus::FormattedTextModel::isFormattingLine
static bool isFormattingLine(LineType pType)
Definition: FormattedTextModel.cpp:104
governikus::FormattedTextModel::ReadLinesResult
Definition: FormattedTextModel.h:56
governikus::FormattedTextModel::FormattedTextRoles
FormattedTextRoles
Definition: FormattedTextModel.h:36
governikus::FormattedTextModel::roleNames
QHash< int, QByteArray > roleNames() const override
Definition: FormattedTextModel.cpp:59
governikus::FormattedTextModel::HEADER
@ HEADER
Definition: FormattedTextModel.h:27
FormattedTextModel.h
governikus::FormattedTextModel::EMPTY
@ EMPTY
Definition: FormattedTextModel.h:26
governikus::FormattedTextModel::load
Q_INVOKABLE bool load(const QString &pFilepath)
Definition: FormattedTextModel.cpp:68
governikus::FormattedTextModel::LISTITEM
@ LISTITEM
Definition: FormattedTextModel.h:31
governikus::FormattedTextModel::ReadLinesResult::mLines
QStringList mLines
Definition: FormattedTextModel.h:58
governikus::FormattedTextModel::REGULARTEXT
@ REGULARTEXT
Definition: FormattedTextModel.h:30
governikus::FormattedTextModel::SUBSECTION
@ SUBSECTION
Definition: FormattedTextModel.h:29
governikus::FormattedTextModel::LineTypeRole
@ LineTypeRole
Definition: FormattedTextModel.h:38
governikus::FormattedTextModel::SECTION
@ SECTION
Definition: FormattedTextModel.h:28
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::FormattedTextModel
Definition: FormattedTextModel.h:20
governikus::FormattedTextModel::FormattedTextModel
FormattedTextModel(QObject *pParent=nullptr)
Definition: FormattedTextModel.cpp:17
governikus::FormattedTextModel::data
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition: FormattedTextModel.cpp:36
governikus::FormattedTextModel::loadSeveral
Q_INVOKABLE bool loadSeveral(const QStringList &pFilepaths)
Definition: FormattedTextModel.cpp:78
governikus::FormattedTextModel::stripFormattingCharacters
static QString stripFormattingCharacters(const QString &pLine, LineType pType)
Definition: FormattedTextModel.cpp:142
governikus::FormattedTextModel::LineType
LineType
Definition: FormattedTextModel.h:25
governikus::FormattedTextModel::rowCount
int rowCount(const QModelIndex &pIndex=QModelIndex()) const override
Definition: FormattedTextModel.cpp:29
governikus::FormattedTextModel::ReadLinesResult::mSuccess
bool mSuccess
Definition: FormattedTextModel.h:57
governikus::FormattedTextModel::lineType
static LineType lineType(const QString &pLine)
Definition: FormattedTextModel.cpp:111
governikus::FormattedTextModel::replaceControlCharactersWithHtml
static QString replaceControlCharactersWithHtml(const QString &pLine)
Definition: FormattedTextModel.cpp:154
governikus::FormattedTextModel::readLines
static ReadLinesResult readLines(const QString &pFilepath)
Definition: FormattedTextModel.cpp:165