68 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#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, const int version, QObject *parent = 0);
 | 
						|
    ~GAnalytics();
 | 
						|
 | 
						|
public:
 | 
						|
    enum LogLevel
 | 
						|
    {
 | 
						|
        Debug,
 | 
						|
        Info,
 | 
						|
        Error
 | 
						|
    };
 | 
						|
 | 
						|
    int version();
 | 
						|
 | 
						|
    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 setAnonymizeIPs(bool anonymize);
 | 
						|
    bool anonymizeIPs();
 | 
						|
 | 
						|
    void setSendInterval(int milliseconds);
 | 
						|
    int sendInterval() const;
 | 
						|
 | 
						|
    void enable(bool state = true);
 | 
						|
    bool isEnabled();
 | 
						|
 | 
						|
    /// 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();
 | 
						|
 | 
						|
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);
 |