AusweisApp2
LogModel.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 "Env.h"
8 
9 #include <QAbstractListModel>
10 #include <QDateTime>
11 #include <QObject>
12 #include <QPoint>
13 #include <QSet>
14 #include <QString>
15 #include <QStringList>
16 #include <QTextStream>
17 #include <QUrl>
18 
19 class test_LogModel;
20 
21 namespace governikus
22 {
23 
24 class LogModel
25  : public QAbstractListModel
26 {
27  Q_OBJECT
28  friend class Env;
29  friend class ::test_LogModel;
30 
31  Q_PROPERTY(QStringList logFileNames READ getLogFileNames NOTIFY fireLogFileNamesChanged)
32 
33  private:
34  QStringList mLogFiles;
35  int mSelectedLogFile;
36  QStringList mLogEntries;
37 
38  QSet<QString> mLevels;
39  QSet<QString> mCategories;
40 
41  LogModel();
42  ~LogModel() override = default;
43 
44  void reset();
45  void addLogEntry(const QString& pEntry);
46  void setLogEntries(QTextStream& pTextStream);
47 
48  private Q_SLOTS:
49  void onNewLogMsg(const QString& pMsg);
50 
51  public Q_SLOTS:
52  void onTranslationChanged();
53 
54  public:
56  {
57  OriginRole = Qt::UserRole + 1,
61  };
62 
63  QStringList getLogFileNames() const;
64  const QSet<QString>& getLevels() const;
65  const QSet<QString>& getCategories() const;
66  Q_INVOKABLE QDateTime getCurrentLogFileDate() const;
67  Q_INVOKABLE void removeOtherLogFiles();
68  Q_INVOKABLE void removeCurrentLogFile();
69  Q_INVOKABLE void setLogFile(int pIndex);
70  Q_INVOKABLE void saveCurrentLogFile(const QUrl& pFilename) const;
71 #ifndef QT_NO_DEBUG
72  Q_INVOKABLE void saveDummyLogFile(const QDateTime& pTimeStamp = QDateTime());
73 #endif
74 
75  Q_INVOKABLE void mailLog(const QString& pEmail = tr("support@ausweisapp.de"),
76  const QString& pSubject = tr("Mobile logfile"),
77  const QString& pMsg = tr("<Please describe the error>"));
78 
80  Q_INVOKABLE void shareLog(QPoint popupPosition);
81 
82  int rowCount(const QModelIndex& pIndex = QModelIndex()) const override;
83  QHash<int, QByteArray> roleNames() const override;
84  QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
85  Q_INVOKABLE static QString createLogFileName(const QDateTime& pDateTime = QDateTime::currentDateTime());
86 
87  Q_SIGNALS:
91  void fireNewLogMsg();
92 };
93 
94 } // namespace governikus
Definition: Env.h:44
Definition: LogModel.h:26
const QSet< QString > & getCategories() const
Definition: LogModel.cpp:142
QStringList getLogFileNames() const
Definition: LogModel.cpp:119
Q_INVOKABLE void setLogFile(int pIndex)
Definition: LogModel.cpp:187
Q_INVOKABLE void saveDummyLogFile(const QDateTime &pTimeStamp=QDateTime())
Definition: LogModel.cpp:248
Q_INVOKABLE void removeOtherLogFiles()
Definition: LogModel.cpp:159
QHash< int, QByteArray > roleNames() const override
Definition: LogModel.cpp:276
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition: LogModel.cpp:288
const QSet< QString > & getLevels() const
Definition: LogModel.cpp:136
QStringList logFileNames
Definition: LogModel.h:31
static Q_INVOKABLE QString createLogFileName(const QDateTime &pDateTime=QDateTime::currentDateTime())
Definition: LogModel.cpp:335
Q_INVOKABLE void saveCurrentLogFile(const QUrl &pFilename) const
Definition: LogModel.cpp:230
void onTranslationChanged()
Definition: LogModel.cpp:113
void fireLogFileNamesChanged()
Q_INVOKABLE QDateTime getCurrentLogFileDate() const
Definition: LogModel.cpp:148
Q_INVOKABLE void mailLog(const QString &pEmail=tr("support@ausweisapp.de"), const QString &pSubject=tr("Mobile logfile"), const QString &pMsg=tr("<Please describe the error>"))
Definition: LogModel_android.cpp:41
int rowCount(const QModelIndex &pIndex=QModelIndex()) const override
Definition: LogModel.cpp:269
Q_INVOKABLE void removeCurrentLogFile()
Definition: LogModel.cpp:169
LogModelRoles
Definition: LogModel.h:56
@ CategoryRole
Definition: LogModel.h:59
@ OriginRole
Definition: LogModel.h:57
@ LevelRole
Definition: LogModel.h:58
@ MessageRole
Definition: LogModel.h:60
Q_INVOKABLE void shareLog(QPoint popupPosition)
popupPosition will be used on an iPad as the origin of the share bubble
Definition: LogModel_android.cpp:84
A simple template renderer.
Definition: ActivationContext.h:15