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  {
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
QHash< int, QByteArray > roleNames() const override
Definition: FormattedTextModel.cpp:59
Definition: FormattedTextModel.h:37
Definition: FormattedTextModel.h:18
Definition: FormattedTextModel.h:55
Definition: FormattedTextModel.h:26
static bool isFormattingLine(LineType pType)
Definition: FormattedTextModel.cpp:104
Q_INVOKABLE bool load(const QString &pFilepath)
Definition: FormattedTextModel.cpp:68
bool mSuccess
Definition: FormattedTextModel.h:57
Definition: FormattedTextModel.h:27
FormattedTextModel(QObject *pParent=nullptr)
Definition: FormattedTextModel.cpp:17
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
Definition: FormattedTextModel.h:30
Definition: FormattedTextModel.h:38
Q_INVOKABLE bool loadSeveral(const QStringList &pFilepaths)
Definition: FormattedTextModel.cpp:78
Definition: FormattedTextModel.h:31
Definition: FormattedTextModel.h:28
int rowCount(const QModelIndex &pIndex=QModelIndex()) const override
Definition: FormattedTextModel.cpp:29
Definition: FormattedTextModel.h:29
LineType
Definition: FormattedTextModel.h:24
static QString replaceControlCharactersWithHtml(const QString &pLine)
Definition: FormattedTextModel.cpp:154
static LineType lineType(const QString &pLine)
Definition: FormattedTextModel.cpp:111
static ReadLinesResult readLines(const QString &pFilepath)
Definition: FormattedTextModel.cpp:165
static QString stripFormattingCharacters(const QString &pLine, LineType pType)
Definition: FormattedTextModel.cpp:142
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition: FormattedTextModel.cpp:36
FormattedTextRoles
Definition: FormattedTextModel.h:35
QStringList mLines
Definition: FormattedTextModel.h:58