AusweisApp
Lade ...
Suche ...
Keine Treffer
FormattedTextModel.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include <QAbstractListModel>
8#include <QList>
9#include <QPair>
10#include <QString>
11#include <QStringList>
12#include <QtQml/qqmlregistration.h>
13
14class test_FormattedTextModel;
15
16namespace governikus
17{
18
20 : public QAbstractListModel
21{
23 QML_UNCREATABLE("Used by ReleaseInformationModel only")
24 Q_CLASSINFO("RegisterEnumClassesUnscoped", "false")
26 friend class ::test_FormattedTextModel;
27
28 public:
29 enum class LineType
30 {
31 EMPTY,
32 HEADER,
33 SECTION,
37 };
39
41 {
42 ContentRole = Qt::UserRole + 1,
44 };
45
46 explicit FormattedTextModel(QObject* pParent, const QStringList& pLines = QStringList());
47
48 [[nodiscard]] int rowCount(const QModelIndex& pIndex = QModelIndex()) const override;
49 [[nodiscard]] QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
50 [[nodiscard]] QHash<int, QByteArray> roleNames() const override;
51
53
54 private:
55 struct ReadLinesResult
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 [[nodiscard]] bool lastLineIsEmpty() const;
73};
74
75} // namespace governikus
Definition FormattedTextModel.h:21
Q_INVOKABLE bool loadSeveral(const QStringList &pFilepaths)
Definition FormattedTextModel.cpp:68
int rowCount(const QModelIndex &pIndex=QModelIndex()) const override
Definition FormattedTextModel.cpp:29
FormattedTextRoles
Definition FormattedTextModel.h:41
@ ContentRole
Definition FormattedTextModel.h:42
@ TypeRole
Definition FormattedTextModel.h:43
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
LineType
Definition FormattedTextModel.h:30
FormattedTextModel(QObject *pParent, const QStringList &pLines=QStringList())
Definition FormattedTextModel.cpp:20
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:112