mirror of
https://github.com/UltimMC/Launcher.git
synced 2025-10-04 01:00:22 +00:00
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.
This commit is contained in:
108
libraries/ganalytics/ganalytics.h
Normal file
108
libraries/ganalytics/ganalytics.h
Normal file
@@ -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
|
Reference in New Issue
Block a user