summaryrefslogtreecommitdiffstats
path: root/libraries/ganalytics/ganalytics.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2016-11-20 12:04:29 +0100
committerPetr Mrázek <peterix@gmail.com>2016-11-20 12:04:29 +0100
commit2ec15c32e4419c94995f78b1d1ef8790e71b3317 (patch)
tree986f1212e9fa3156a532e912736338edf69964a7 /libraries/ganalytics/ganalytics.h
parent69be23c5f629884465dec98efcb9d5a2678b4df5 (diff)
downloadMultiMC-2ec15c32e4419c94995f78b1d1ef8790e71b3317.tar
MultiMC-2ec15c32e4419c94995f78b1d1ef8790e71b3317.tar.gz
MultiMC-2ec15c32e4419c94995f78b1d1ef8790e71b3317.tar.lz
MultiMC-2ec15c32e4419c94995f78b1d1ef8790e71b3317.tar.xz
MultiMC-2ec15c32e4419c94995f78b1d1ef8790e71b3317.zip
NOISSUE import google analytics from third party
See: https://github.com/HSAnet/qt-google-analytics Sadly, the API and its internals are not acceptable and it needs changes upstream likely wouldn't allow.
Diffstat (limited to 'libraries/ganalytics/ganalytics.h')
-rw-r--r--libraries/ganalytics/ganalytics.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/libraries/ganalytics/ganalytics.h b/libraries/ganalytics/ganalytics.h
new file mode 100644
index 00000000..f67e737b
--- /dev/null
+++ b/libraries/ganalytics/ganalytics.h
@@ -0,0 +1,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