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 <QString>
14 #include <QStringList>
15 #include <QTextStream>
16 #include <QUrl>
17 
18 class test_LogModel;
19 
20 namespace governikus
21 {
22 
23 class LogModel
24  : public QAbstractListModel
25 {
26  Q_OBJECT
27  friend class Env;
28  friend class ::test_LogModel;
29 
30  enum LogModelRoles
31  {
32  OriginRole = Qt::UserRole + 1,
33  MessageRole
34  };
35 
36  Q_PROPERTY(QStringList logFiles READ getLogFiles NOTIFY fireLogFilesChanged)
37 
38  private:
39  QStringList mLogFiles;
40  int mSelectedLogFile;
41  QStringList mLogEntries;
42 
43  LogModel();
44  ~LogModel() override = default;
45 
46  void reset();
47  void addLogEntry(const QString& pEntry);
48  void setLogEntries(QTextStream& pTextStream);
49 
50  private Q_SLOTS:
51  void onNewLogMsg(const QString& pMsg);
52 
53  public:
54  QStringList getLogFiles() const;
55  Q_INVOKABLE QDateTime getCurrentLogFileDate() const;
56  Q_INVOKABLE void removeOtherLogFiles();
57  Q_INVOKABLE void removeCurrentLogFile();
58  Q_INVOKABLE void setLogFile(int pIndex);
59  Q_INVOKABLE void saveCurrentLogFile(const QUrl& pFilename) const;
60 #ifndef QT_NO_DEBUG
61  Q_INVOKABLE void saveDummyLogFile() const;
62 #endif
63 
64  Q_INVOKABLE void mailLog(const QString& pEmail = tr("support@ausweisapp.de"),
65  const QString& pSubject = tr("Mobile logfile"),
66  const QString& pMsg = tr("<Please describe the error>"));
67 
69  Q_INVOKABLE void shareLog(QPoint popupPosition);
70 
71  int rowCount(const QModelIndex& pIndex = QModelIndex()) const override;
72  QHash<int, QByteArray> roleNames() const override;
73  QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
74  Q_INVOKABLE static QString createLogFileName(const QDateTime& pDateTime = QDateTime::currentDateTime());
75 
76  Q_SIGNALS:
77  void fireLogFilesChanged();
78  void fireNewLogMsg();
79 };
80 
81 } // namespace governikus
Q_INVOKABLE void saveDummyLogFile() const
Definition: LogModel.cpp:200
static Q_INVOKABLE QString createLogFileName(const QDateTime &pDateTime=QDateTime::currentDateTime())
Definition: LogModel.cpp:259
Q_INVOKABLE QDateTime getCurrentLogFileDate() const
Definition: LogModel.cpp:97
Definition: LogModel.h:23
Q_INVOKABLE void shareLog(QPoint popupPosition)
popupPosition will be used on an iPad as the origin of the share bubble
Definition: LogModel_android.cpp:115
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
Q_INVOKABLE void removeCurrentLogFile()
Definition: LogModel.cpp:118
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:70
Definition: Env.h:43
QHash< int, QByteArray > roleNames() const override
Definition: LogModel.cpp:219
int rowCount(const QModelIndex &pIndex=QModelIndex()) const override
Definition: LogModel.cpp:212
QStringList getLogFiles() const
Definition: LogModel.cpp:80
Q_INVOKABLE void saveCurrentLogFile(const QUrl &pFilename) const
Definition: LogModel.cpp:179
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition: LogModel.cpp:229
Q_INVOKABLE void setLogFile(int pIndex)
Definition: LogModel.cpp:136
Q_INVOKABLE void removeOtherLogFiles()
Definition: LogModel.cpp:108
QStringList logFiles
Definition: LogModel.h:36