diff --git a/sources/awesome-widget/package/contents/config/main.xml b/sources/awesome-widget/package/contents/config/main.xml
index 84caacc..063a99e 100644
--- a/sources/awesome-widget/package/contents/config/main.xml
+++ b/sources/awesome-widget/package/contents/config/main.xml
@@ -62,7 +62,10 @@
( )
-
+
+ 100
+
+
false
diff --git a/sources/awesome-widget/package/contents/ui/advanced.qml b/sources/awesome-widget/package/contents/ui/advanced.qml
index 5365da2..a4d29a8 100644
--- a/sources/awesome-widget/package/contents/ui/advanced.qml
+++ b/sources/awesome-widget/package/contents/ui/advanced.qml
@@ -51,7 +51,8 @@ Item {
property alias cfg_customUptime: customUptime.value
property alias cfg_acOnline: acOnline.value
property alias cfg_acOffline: acOffline.value
- property alias cfg_telemetry: telemetry.checked
+ property alias cfg_telemetryCount: telemetryCount.value
+ property alias cfg_telemetryRemote: telemetryRemote.checked
property alias cfg_telemetryId: telemetryId.value
@@ -234,9 +235,17 @@ Item {
height: implicitHeight
width: parent.width
CheckBoxSelector {
- id: telemetry
+ id: telemetryRemote
text: i18n("Enable remote telemetry")
}
+ IntegerSelector {
+ id: telemetryCount
+ maximumValue: 10000
+ minimumValue: 0
+ stepSize: 50
+ text: i18n("History count")
+ value: plasmoid.configuration.telemetryCount
+ }
LineSelector {
id: telemetryId
text: i18n("Telemetry ID")
@@ -249,17 +258,5 @@ Item {
Component.onCompleted: {
if (debug) console.debug()
-
- // generate UUID if missing
- if (telemetryId.value.length == 0)
- telemetryId.value = generateUuid()
- }
-
- // code from http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript
- function generateUuid() {
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
- var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
- return v.toString(16);
- });
}
}
diff --git a/sources/awesome-widget/package/contents/ui/main.qml b/sources/awesome-widget/package/contents/ui/main.qml
index 49ae54e..ca0ab71 100644
--- a/sources/awesome-widget/package/contents/ui/main.qml
+++ b/sources/awesome-widget/package/contents/ui/main.qml
@@ -210,7 +210,13 @@ Item {
awKeys.setAggregatorProperty("customUptime", plasmoid.configuration.customUptime)
awKeys.setAggregatorProperty("tempUnits", plasmoid.configuration.tempUnits)
awKeys.setAggregatorProperty("translate", plasmoid.configuration.translateStrings)
+ // update telemetry ID
+ if (plasmoid.configuration.telemetryId.length == 0)
+ plasmoid.configuration.telemetryId = generateUuid()
// save telemetry
+ awTelemetryHandler.init(plasmoid.configuration.telemetryCount,
+ plasmoid.configuration.telemetryRemote,
+ plasmoid.configuration.telemetryId)
if (awTelemetryHandler.put("awwidgetconfig", plasmoid.configuration.text))
awTelemetryHandler.uploadTelemetry("awwidgetconfig", plasmoid.configuration.text)
}
@@ -241,4 +247,12 @@ Item {
tagSelectorBox.model = awKeys.dictKeys(true)
return tagSelector.open()
}
+
+ // code from http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript
+ function generateUuid() {
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
+ var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
+ return v.toString(16);
+ });
+ }
}
diff --git a/sources/awesome-widget/package/contents/ui/widget.qml b/sources/awesome-widget/package/contents/ui/widget.qml
index 87699df..ad5b083 100644
--- a/sources/awesome-widget/package/contents/ui/widget.qml
+++ b/sources/awesome-widget/package/contents/ui/widget.qml
@@ -30,9 +30,6 @@ Item {
AWActions {
id: awActions
}
- AWTelemetryHandler {
- id: awTelemetryHandler
- }
width: childrenRect.width
height: childrenRect.height
diff --git a/sources/awesome-widget/plugin/awtelemetryhandler.cpp b/sources/awesome-widget/plugin/awtelemetryhandler.cpp
index 19b5345..0c1d361 100644
--- a/sources/awesome-widget/plugin/awtelemetryhandler.cpp
+++ b/sources/awesome-widget/plugin/awtelemetryhandler.cpp
@@ -34,14 +34,10 @@ AWTelemetryHandler::AWTelemetryHandler(QObject *parent, const QString clientId)
{
qCDebug(LOG_AW) << __PRETTY_FUNCTION__;
- m_genericConfig = QString("%1/awesomewidgets/general.ini")
- .arg(QStandardPaths::writableLocation(
- QStandardPaths::GenericDataLocation));
m_localFile = QString("%1/awesomewidgets/telemetry.ini")
.arg(QStandardPaths::writableLocation(
QStandardPaths::GenericDataLocation));
- init();
// override client id if any
if (!clientId.isEmpty())
m_clientId = clientId;
@@ -78,6 +74,16 @@ QString AWTelemetryHandler::getLast(const QString group) const
}
+void AWTelemetryHandler::init(const int count, const bool enableRemote, const QString clientId)
+{
+ qCDebug(LOG_AW) << "Init telemetry with count" << count << "enable remote" << enableRemote << "client ID" << clientId;
+
+ m_storeCount = count;
+ m_uploadEnabled = enableRemote;
+ m_clientId = clientId;
+}
+
+
bool AWTelemetryHandler::put(const QString group, const QString value) const
{
qCDebug(LOG_AW) << "Store data with group" << group << "and value" << value;
@@ -181,44 +187,3 @@ QString AWTelemetryHandler::getKey(const int count) const
return QString("%1").arg(count, 3, 10, QChar('0'));
}
-
-
-void AWTelemetryHandler::init()
-{
- QSettings settings(m_genericConfig, QSettings::IniFormat);
- settings.beginGroup(QString("Telemetry"));
-
- // unique client id
- m_clientId
- = settings.value(QString("ClientID"), QUuid::createUuid().toString())
- .toString();
- setConfiguration(QString("ClientID"), m_clientId, false);
- // count items to store
- m_storeCount = settings.value(QString("StoreHistory"), 100).toInt();
- setConfiguration(QString("StoreHistory"), m_storeCount, false);
- // check if upload enabled
- m_uploadEnabled = settings.value(QString("Upload"), false).toBool();
- setConfiguration(QString("Upload"), m_uploadEnabled, false);
-
- settings.endGroup();
-}
-
-
-bool AWTelemetryHandler::setConfiguration(const QString key,
- const QVariant value,
- const bool override) const
-{
- qCDebug(LOG_AW) << "Set configuration key" << key << "to value" << value
- << "force override enabled" << override;
-
- QSettings settings(m_genericConfig, QSettings::IniFormat);
- settings.beginGroup(QString("Telemetry"));
- if (settings.childKeys().contains(key) && !override)
- return true;
-
- settings.setValue(key, value);
- settings.endGroup();
- settings.sync();
-
- return (settings.status() == QSettings::NoError);
-}
diff --git a/sources/awesome-widget/plugin/awtelemetryhandler.h b/sources/awesome-widget/plugin/awtelemetryhandler.h
index f8b11a0..3054668 100644
--- a/sources/awesome-widget/plugin/awtelemetryhandler.h
+++ b/sources/awesome-widget/plugin/awtelemetryhandler.h
@@ -39,6 +39,7 @@ public:
virtual ~AWTelemetryHandler();
Q_INVOKABLE QStringList get(const QString group) const;
Q_INVOKABLE QString getLast(const QString group) const;
+ Q_INVOKABLE void init(const int count, const bool enableRemote, const QString clientId);
Q_INVOKABLE bool put(const QString group, const QString value) const;
Q_INVOKABLE void uploadTelemetry(const QString group, const QString value);
@@ -50,11 +51,7 @@ private slots:
private:
QString getKey(const int count) const;
- void init();
- bool setConfiguration(const QString key, const QVariant value,
- const bool override) const;
QString m_clientId;
- QString m_genericConfig;
QString m_localFile;
int m_storeCount = 0;
bool m_uploadEnabled = false;
diff --git a/sources/qml/AWExtensions.qml b/sources/qml/AWExtensions.qml
index 29afbff..c2bba77 100644
--- a/sources/qml/AWExtensions.qml
+++ b/sources/qml/AWExtensions.qml
@@ -31,6 +31,9 @@ Row {
AWFormatterConfigFactory {
id: awFormatter
}
+ AWTelemetryHandler {
+ id: awTelemetryHandler
+ }
// parent object in which text will be replaced
property var textArea
diff --git a/sources/test/testawtelemetryhandler.cpp b/sources/test/testawtelemetryhandler.cpp
index 9d2f04a..d13e180 100644
--- a/sources/test/testawtelemetryhandler.cpp
+++ b/sources/test/testawtelemetryhandler.cpp
@@ -26,7 +26,8 @@
void TestAWTelemetryHandler::initTestCase()
{
- plugin = new AWTelemetryHandler(this, telemetryId);
+ plugin = new AWTelemetryHandler(this);
+ plugin->init(1, true, telemetryId);
telemetryData = AWTestLibrary::randomString();
telemetryGroup = AWTestLibrary::randomString();
}