Google Analytics added for Companion usage and firmware downloads

statistics
This commit is contained in:
bsongis
2014-05-27 12:13:50 +02:00
parent ffbae2592b
commit 148e3e3180
10 changed files with 118 additions and 53 deletions
+2
View File
@@ -164,6 +164,7 @@ set(companion_SRCS
qcustomplot.cpp
wizarddata.cpp
wizarddialog.cpp
googleanalytics.cpp
)
set(companion_MOC_HDRS
@@ -190,6 +191,7 @@ set(companion_MOC_HDRS
qautocombobox.h
helpers.h
wizarddialog.h
googleanalytics.h
)
set(companion_UIS
-3
View File
@@ -480,7 +480,6 @@ QString AppData::armMcu() { return _armMcu; }
QString AppData::avrArguments() { return _avrArguments; }
QString AppData::avrPort() { return _avrPort; }
QString AppData::avrdudeLocation() { return _avrdudeLocation; }
QString AppData::cpuId() { return _cpuId; }
QString AppData::dfuArguments() { return _dfuArguments; }
QString AppData::dfuLocation() { return _dfuLocation; }
QString AppData::locale() { return _locale; }
@@ -531,7 +530,6 @@ void AppData::armMcu (const QString x) { store(x, _armMcu,
void AppData::avrArguments (const QString x) { store(x, _avrArguments, "avr_arguments" );}
void AppData::avrPort (const QString x) { store(x, _avrPort, "avr_port" );}
void AppData::avrdudeLocation (const QString x) { store(x, _avrdudeLocation, "avrdudeLocation" );}
void AppData::cpuId (const QString x) { store(x, _cpuId, "cpu_id" );}
void AppData::dfuArguments (const QString x) { store(x, _dfuArguments, "dfu_arguments" );}
void AppData::dfuLocation (const QString x) { store(x, _dfuLocation, "dfu_location" );}
void AppData::locale (const QString x) { store(x, _locale, "locale" );}
@@ -655,7 +653,6 @@ AppData::AppData()
getset( _avrArguments, "avr_arguments" ,"" );
getset( _avrPort, "avr_port" ,"" );
getset( _avrdudeLocation, "avrdudeLocation" ,"" );
getset( _cpuId, "cpu_id" ,"" );
getset( _dfuArguments, "dfu_arguments" ,"-a 0" );
getset( _dfuLocation, "dfu_location" ,"" );
getset( _locale, "locale" ,"" );
-3
View File
@@ -206,7 +206,6 @@ class AppData: protected CompStoreObj
QString _avrArguments;
QString _avrPort;
QString _avrdudeLocation;
QString _cpuId;
QString _dfuArguments;
QString _dfuLocation;
QString _locale;
@@ -258,7 +257,6 @@ class AppData: protected CompStoreObj
QString avrArguments();
QString avrPort();
QString avrdudeLocation();
QString cpuId();
QString dfuArguments();
QString dfuLocation();
QString lastFw();
@@ -310,7 +308,6 @@ class AppData: protected CompStoreObj
void avrArguments (const QString);
void avrPort (const QString);
void avrdudeLocation (const QString);
void cpuId (const QString);
void dfuArguments (const QString);
void dfuLocation (const QString);
void lastFw (const QString);
-11
View File
@@ -79,7 +79,6 @@ void AppPreferencesDialog::writeValues()
g.profile[g.id()].name(ui->profileNameLE->text());
// If a new fw type has been choosen, several things need to reset
g.cpuId( ui->CPU_ID_LE->text() );
current_firmware_variant = getFirmwareVariant();
if (g.profile[g.id()].fwType() != current_firmware_variant.id) {
g.profile[g.id()].fwName("");
@@ -186,8 +185,6 @@ void AppPreferencesDialog::initSettings()
}
ui->lblGeneralSettings->setText(hwSettings);
ui->CPU_ID_LE->setText(g.cpuId());
FirmwareInterface * current_firmware = GetCurrentFirmware();
foreach(FirmwareInterface * firmware, firmwares) {
@@ -470,14 +467,6 @@ void AppPreferencesDialog::firmwareChanged()
QString stamp;
stamp.append(variant.firmware->getStampUrl());
QString url = variant.getFirmwareUrl();
// B-Plan
if (false) {
ui->CPU_ID_LE->show();
ui->CPU_ID_LABEL->show();
} else {
ui->CPU_ID_LE->hide();
ui->CPU_ID_LABEL->hide();
}
}
void AppPreferencesDialog::populateFirmwareOptions(const FirmwareInterface * firmware)
-3
View File
@@ -162,9 +162,6 @@
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLineEdit" name="CPU_ID_LE"/>
</item>
<item row="24" column="1" colspan="3">
<widget class="QComboBox" name="stickmodeCB">
<property name="maximumSize">
+72
View File
@@ -0,0 +1,72 @@
#include "googleanalytics.h"
#include <QtGui>
#define TRACKING_ID "UA-40098569-1"
GoogleAnalytics ga;
GoogleAnalytics::GoogleAnalytics():
userId(qrand()),
networkManager(new QNetworkAccessManager(this))
{
}
GoogleAnalytics::~GoogleAnalytics()
{
delete networkManager;
}
void GoogleAnalytics::sendPageView(QString page)
{
// create request and set URL of receiver
QNetworkRequest request;
QUrl host("http://www.google-analytics.com/collect");
request.setUrl(host);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
// setup parameters of request
QString requestParams;
requestParams += "v=1"; // version of protocol
requestParams += "&t=pageview"; // type of request
requestParams += "&tid=" TRACKING_ID; // Google Analytics account
requestParams += "&cid=" + QString::number(userId); // unique user identifier
requestParams += "&dp=" + page; // name of page (or app name)
requestParams += "&ul=" + QLocale::system().name(); // language
// send request via post method
networkManager->post(request, requestParams.toStdString().c_str());
}
void GoogleAnalytics::sendEvent(QString category, QString action, QString label)
{
// create request and set URL of receiver
QNetworkRequest request;
QUrl host("http://www.google-analytics.com/collect");
request.setUrl(host);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
// setup parameters of request
QString requestParams;
requestParams += "v=1"; // version of protocol
requestParams += "&t=event"; // type of request
requestParams += "&ec=" + category;
requestParams += "&ea=" + action;
requestParams += "&el=" + label;
requestParams += "&tid=" TRACKING_ID; // Google Analytics account
requestParams += "&cid=" + QString::number(userId); // unique user identifier
requestParams += "&dt=Companion"; // name of page (or app name)
requestParams += "&ul=" + QLocale::system().name(); // language
// send request via post method
networkManager->post(request, requestParams.toStdString().c_str());
}
void GoogleAnalytics::slot_receive(QNetworkReply * reply)
{
// output information about reply
qDebug() << "RequestUrl:" << reply->request().url();
qDebug() << "Status:" << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
qDebug() << "Error:"<< reply->error();
QByteArray bytes = reply->readAll();
qDebug() << "Contents" << QString::fromUtf8(bytes.data(), bytes.size());
}
+21
View File
@@ -0,0 +1,21 @@
#include <QtNetwork>
class GoogleAnalytics: public QObject
{
Q_OBJECT
public:
GoogleAnalytics();
~GoogleAnalytics();
void sendPageView(QString page);
void sendEvent(QString category, QString action, QString label);
protected slots:
void slot_receive(QNetworkReply * reply);
protected:
int userId;
QNetworkAccessManager * networkManager;
};
extern GoogleAnalytics ga;
+22 -29
View File
@@ -64,6 +64,7 @@
#include "helpers.h"
#include "appdata.h"
#include "taranisnotfound.h"
#include "googleanalytics.h"
#include "firmwares/opentx/opentxinterface.h" // TODO get rid of this include
#define DONATE_STR "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QUZ48K4SEXDP2"
@@ -162,6 +163,8 @@ MainWindow::MainWindow():
if (printing) {
QTimer::singleShot(0, this, SLOT(autoClose()));
}
ga.sendPageView("Companion");
}
void MainWindow::displayWarnings()
@@ -319,22 +322,13 @@ void MainWindow::updateDownloaded()
void MainWindow::downloadLatestFW(FirmwareVariant & firmware)
{
QString url, ext, cpuid;
QString url, ext;
url = firmware.getFirmwareUrl();
cpuid = g.cpuId();
ext = url.mid(url.lastIndexOf("."));
QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"), g.flashDir() + "/" + firmware.id + ext);
if (!fileName.isEmpty()) {
QString filename = QFileDialog::getSaveFileName(this, tr("Save As"), g.flashDir() + "/" + firmware.id + ext);
if (!filename.isEmpty()) {
needRename = true;
g.profile[g.id()].fwName(fileName);
if (!cpuid.isEmpty()) {
url.append("&cpuid=");
url.append(cpuid);
}
g.flashDir(QFileInfo(fileName).dir().absolutePath());
downloadDialog * dd = new downloadDialog(this, url, fileName);
connect(dd, SIGNAL(accepted()), this, SLOT(firmwareDownloadAccepted()));
dd->exec();
startFirmwareDownload(url, filename);
}
}
@@ -407,9 +401,7 @@ void MainWindow::checkForFirmwareUpdateFinished(QNetworkReply * reply)
{
bool download = false;
bool ignore = false;
QString cpuid;
cpuid = g.cpuId();
QByteArray qba = reply->readAll();
long version = 0;
@@ -510,20 +502,9 @@ void MainWindow::checkForFirmwareUpdateFinished(QNetworkReply * reply)
else if (download == true) {
QString url = GetFirmwareVariant(current_firmware_variant.id).getFirmwareUrl();
QString ext = url.mid(url.lastIndexOf("."));
needRename=false;
QString fileName;
fileName = QFileDialog::getSaveFileName(this, tr("Save As"), g.flashDir() + "/" + current_firmware_variant.id + ext);
if (!fileName.isEmpty()) {
if (!cpuid.isEmpty()) {
url.append("&cpuid=");
url.append(cpuid);
}
g.profile[g.id()].fwName(fileName);
g.flashDir(QFileInfo(fileName).dir().absolutePath());
downloadDialog * dd = new downloadDialog(this, url, fileName);
connect(dd, SIGNAL(accepted()), this, SLOT(firmwareDownloadAccepted()));
dd->exec();
}
needRename = false;
QString filename = QFileDialog::getSaveFileName(this, tr("Save As"), g.flashDir() + "/" + current_firmware_variant.id + ext);
startFirmwareDownload(url, filename);
}
}
else {
@@ -534,6 +515,18 @@ void MainWindow::checkForFirmwareUpdateFinished(QNetworkReply * reply)
checkForUpdates();
}
void MainWindow::startFirmwareDownload(QString url, QString filename)
{
if (!filename.isEmpty()) {
g.profile[g.id()].fwName(filename);
g.flashDir(QFileInfo(filename).dir().absolutePath());
downloadDialog * dd = new downloadDialog(this, url, filename);
connect(dd, SIGNAL(accepted()), this, SLOT(firmwareDownloadAccepted()));
dd->exec();
ga.sendEvent("Firmwares", "Download", url);
}
}
void MainWindow::closeEvent(QCloseEvent *event)
{
g.mainWinGeo(saveGeometry());
+1 -1
View File
@@ -76,11 +76,11 @@ class MainWindow : public QMainWindow
MainWindow();
protected:
void startFirmwareDownload(QString url, QString filename);
void closeEvent(QCloseEvent *event);
void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);
public slots:
void downloadLatestFW(FirmwareVariant & firmware);
-3
View File
@@ -896,9 +896,6 @@ May be different from firmware language</string>
<item row="0" column="0" colspan="2">
<widget class="QComboBox" name="downloadVerCB"/>
</item>
<item row="1" column="0" colspan="2">
<widget class="QLineEdit" name="CPU_ID_LE"/>
</item>
</layout>
</item>
<item row="21" column="0">