1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
#ifndef GANALYTICS_H
#define GANALYTICS_H
#include <QObject>
#include <QVariantMap>
#ifdef QT_QML_LIB
#include <QQmlParserStatus>
#endif // QT_QML_LIB
class QNetworkAccessManager;
class GAnalytics : public QObject
#ifdef QT_QML_LIB
, public QQmlParserStatus
#endif // QT_QML_LIB
{
Q_OBJECT
#ifdef QT_QML_LIB
Q_INTERFACES(QQmlParserStatus)
#endif // QT_QML_LIB
Q_ENUMS(LogLevel)
Q_PROPERTY(LogLevel logLevel READ logLevel WRITE setLogLevel NOTIFY logLevelChanged)
Q_PROPERTY(QString viewportSize READ viewportSize WRITE setViewportSize NOTIFY viewportSizeChanged)
Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
Q_PROPERTY(QString trackingID READ trackingID WRITE setTrackingID NOTIFY trackingIDChanged)
Q_PROPERTY(int sendInterval READ sendInterval WRITE setSendInterval NOTIFY sendIntervalChanged)
Q_PROPERTY(bool isSending READ isSending NOTIFY isSendingChanged)
public:
explicit GAnalytics(QObject *parent = 0);
explicit GAnalytics(const QString &trackingID, QObject *parent = 0);
~GAnalytics();
public:
enum LogLevel
{
Debug,
Info,
Error
};
void setLogLevel(LogLevel logLevel);
LogLevel logLevel() const;
// Getter and Setters
void setViewportSize(const QString &viewportSize);
QString viewportSize() const;
void setLanguage(const QString &language);
QString language() const;
void setTrackingID(const QString &trackingID);
QString trackingID() const;
void setSendInterval(int milliseconds);
int sendInterval() const;
void startSending();
bool isSending() const;
/// Get or set the network access manager. If none is set, the class creates its own on the first request
void setNetworkAccessManager(QNetworkAccessManager *networkAccessManager);
QNetworkAccessManager *networkAccessManager() const;
#ifdef QT_QML_LIB
// QQmlParserStatus interface
void classBegin();
void componentComplete();
#endif // QT_QML_LIB
public slots:
void sendScreenView(const QString &screenName,
const QVariantMap &customValues = QVariantMap());
void sendAppView(const QString &screenName,
const QVariantMap &customValues = QVariantMap());
void sendEvent(const QString &category,
const QString &action,
const QString &label = QString(),
const QVariant &value = QVariant(),
const QVariantMap &customValues = QVariantMap());
void sendException(const QString &exceptionDescription,
bool exceptionFatal = true,
const QVariantMap &customValues = QVariantMap());
void startSession();
void endSession();
signals:
void logLevelChanged();
void viewportSizeChanged();
void languageChanged();
void trackingIDChanged();
void sendIntervalChanged();
void isSendingChanged(bool isSending);
private:
class Private;
Private *d;
friend QDataStream& operator<<(QDataStream &outStream, const GAnalytics &analytics);
friend QDataStream& operator>>(QDataStream &inStream, GAnalytics &analytics);
};
QDataStream& operator<<(QDataStream &outStream, const GAnalytics &analytics);
QDataStream& operator>>(QDataStream &inStream, GAnalytics &analytics);
#endif // GANALYTICS_H
|