summaryrefslogtreecommitdiffstats
path: root/libraries/ganalytics/include/ganalytics.h
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/ganalytics/include/ganalytics.h')
-rw-r--r--libraries/ganalytics/include/ganalytics.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/libraries/ganalytics/include/ganalytics.h b/libraries/ganalytics/include/ganalytics.h
new file mode 100644
index 00000000..7cbd2c85
--- /dev/null
+++ b/libraries/ganalytics/include/ganalytics.h
@@ -0,0 +1,65 @@
+#pragma once
+
+#include <QObject>
+#include <QVariantMap>
+
+class QNetworkAccessManager;
+class GAnalyticsWorker;
+
+class GAnalytics : public QObject
+{
+ Q_OBJECT
+ Q_ENUMS(LogLevel)
+
+public:
+ explicit GAnalytics(const QString &trackingID, const QString &clientID, 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 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;
+
+public slots:
+ void sendScreenView(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 isSendingChanged(bool isSending);
+
+private:
+ GAnalyticsWorker *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);