AusweisApp2
LogModel.h
gehe zur Dokumentation dieser Datei
1 /*
2  * \copyright Copyright (c) 2018-2020 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 
29  enum LogModelRoles
30  {
31  OriginRole = Qt::UserRole + 1,
32  MessageRole
33  };
34 
35  Q_PROPERTY(QStringList logFiles READ getLogfiles NOTIFY fireLogFilesChanged)
36 
37  private:
38  friend class ::test_LogModel;
39  QStringList mLogFiles;
40  int mSelectedLogFile;
41  QStringList mLogEntries;
42 
43  void addLogEntry(const QString& pEntry);
44  void setLogEntries(QTextStream& pTextStream);
45 
46  private Q_SLOTS:
47  void onNewLogMsg(const QString& pMsg);
48 
49  protected:
50  LogModel();
51  static LogModel& getInstance();
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.ausweisapp2@governikus.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 QDateTime getCurrentLogfileDate() const
Definition: LogModel.cpp:103
Q_INVOKABLE void saveDummyLogfile() const
Definition: LogModel.cpp:201
static Q_INVOKABLE QString createLogFileName(const QDateTime &pDateTime=QDateTime::currentDateTime())
Definition: LogModel.cpp:260
Definition: LogModel.h:23
static LogModel & getInstance()
Definition: LogModel.cpp:79
Q_INVOKABLE void mailLog(const QString &pEmail=tr("support.ausweisapp2@governikus.de"), const QString &pSubject=tr("Mobile logfile"), const QString &pMsg=tr("<Please describe the error>"))
Definition: LogModel_android.cpp:70
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
QStringList getLogfiles() const
Definition: LogModel.cpp:85
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
Q_INVOKABLE void removeCurrentLogfile()
Definition: LogModel.cpp:123
Definition: Env.h:38
QHash< int, QByteArray > roleNames() const override
Definition: LogModel.cpp:220
int rowCount(const QModelIndex &pIndex=QModelIndex()) const override
Definition: LogModel.cpp:213
Q_INVOKABLE void saveCurrentLogfile(const QUrl &pFilename) const
Definition: LogModel.cpp:180
Q_INVOKABLE void setLogfile(int pIndex)
Definition: LogModel.cpp:141
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition: LogModel.cpp:230
LogModel()
Definition: LogModel.cpp:60
QStringList logFiles
Definition: LogModel.h:35
Q_INVOKABLE void removeOtherLogfiles()
Definition: LogModel.cpp:114