diff --git a/CHANGELOG b/CHANGELOG
index 2695bf6..f2f1bca 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,14 @@
+Ver.3.2.1:
++ add X-AW-Translate option to DateTime formatter
++ add formatters to configuration export and import
++ add macro fuction to selector
++ add default formatters
+- add translation reinit (fix #102)
+- fix invalid float formatter saving
+- fix missing ApiVersion for formatters
+* use sockets for MPD data
+* translation update
+
Ver.3.2.0:
+ custom formatters (#91)
+ add backend tests (#95)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index a58c2ca..ce76a8d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -6,8 +6,8 @@ for more details. To avoid manual labor there is automatic cmake target named
`clangformat` (see below). Some additional detail see below.
* Indent is only spaces. 4 spaces.
-* It is highly recommended to name private variables with `m_` prefix (`m_foo`).
- There is no exceptions for properties.
+* Any private variable should start with `m_` prefix (`m_foo`). The only one
+ exception is `Ui` object which should be named as `ui`.
* Avoid to create a large methods. Exception: if method contains lambda functions.
* If some method is called only once, it is recommended to use lambda functions.
Exception is `Q_INVOKABLE` methods.
diff --git a/packages/PKGBUILD b/packages/PKGBUILD
index 593162d..a1239f6 100644
--- a/packages/PKGBUILD
+++ b/packages/PKGBUILD
@@ -2,7 +2,7 @@
pkgname=plasma5-applet-awesome-widgets
_pkgname=awesome-widgets
-pkgver=3.2.0
+pkgver=3.2.1
pkgrel=1
pkgdesc="Collection of minimalistic Plasmoids which look like Awesome WM widgets (ex-PyTextMonitor)"
arch=('i686' 'x86_64')
@@ -17,7 +17,7 @@ optdepends=("catalyst: for GPU monitor"
makedepends=('cmake' 'extra-cmake-modules' 'python')
source=(https://github.com/arcan1s/awesome-widgets/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz)
install=${pkgname}.install
-md5sums=('81a85890d519bd8c5791d0d99cffc9c1')
+md5sums=('73da19c31aa95edd428ff5ce7b541ee1')
backup=('etc/xdg/plasma-dataengine-extsysmon.conf')
prepare() {
diff --git a/sources/CMakeLists.txt b/sources/CMakeLists.txt
index f3b9921..18aefd8 100644
--- a/sources/CMakeLists.txt
+++ b/sources/CMakeLists.txt
@@ -15,7 +15,7 @@ set(PROJECT_CONTACT "esalexeev@gmail.com")
set(PROJECT_LICENSE "GPL3")
set(PROJECT_VERSION_MAJOR "3")
set(PROJECT_VERSION_MINOR "2")
-set(PROJECT_VERSION_PATCH "0")
+set(PROJECT_VERSION_PATCH "1")
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
# append git version if any
set(PROJECT_COMMIT_SHA "Commit hash" CACHE INTERNAL "")
diff --git a/sources/awesome-widget/package/contents/ui/widget.qml b/sources/awesome-widget/package/contents/ui/widget.qml
index 62c4900..9b522ad 100644
--- a/sources/awesome-widget/package/contents/ui/widget.qml
+++ b/sources/awesome-widget/package/contents/ui/widget.qml
@@ -279,7 +279,7 @@ Item {
if (model[currentIndex]["regexp"] == "functions")
tags.model = ["{{\n\n}}", "template{{\n\n}}",
"aw_all<>{{}}", "aw_count<>{{}}", "aw_keys<>{{}}",
- "aw_names<>{{}}"]
+ "aw_macro<>{{}}", "aw_names<>{{}}"]
else
tags.model = awKeys.dictKeys(true, model[currentIndex]["regexp"])
if (debug) console.info("Init model", tags.model, "for", model[currentIndex]["label"])
diff --git a/sources/awesome-widget/package/metadata.desktop b/sources/awesome-widget/package/metadata.desktop
index f65da37..ace1a70 100644
--- a/sources/awesome-widget/package/metadata.desktop
+++ b/sources/awesome-widget/package/metadata.desktop
@@ -20,7 +20,7 @@ X-Plasma-RemoteLocation=
X-KDE-PluginInfo-Author=Evgeniy Alekseev aka arcanis
X-KDE-PluginInfo-Email=esalexeev@gmail.com
X-KDE-PluginInfo-Name=org.kde.plasma.awesomewidget
-X-KDE-PluginInfo-Version=3.1.2
+X-KDE-PluginInfo-Version=3.2.1
X-KDE-PluginInfo-Website=https://arcanis.me/projects/awesome-widgets/
X-KDE-PluginInfo-Category=System Information
X-KDE-PluginInfo-Depends=
diff --git a/sources/awesome-widget/plugin/awconfighelper.cpp b/sources/awesome-widget/plugin/awconfighelper.cpp
index 613a2a1..edcb201 100644
--- a/sources/awesome-widget/plugin/awconfighelper.cpp
+++ b/sources/awesome-widget/plugin/awconfighelper.cpp
@@ -110,6 +110,9 @@ bool AWConfigHelper::exportConfiguration(const QObject *nativeConfig,
readFile(settings, QString("weathers"),
QString("%1/weather/awesomewidgets-extweather-ids.json")
.arg(m_baseDir));
+ // formatter settings
+ readFile(settings, QString("formatters"),
+ QString("%1/formatters/formatters.ini").arg(m_baseDir));
settings.endGroup();
// sync settings
@@ -150,6 +153,9 @@ QVariantMap AWConfigHelper::importConfiguration(const QString fileName,
writeFile(settings, QString("weathers"),
QString("%1/weather/awesomewidgets-extweather-ids.json")
.arg(m_baseDir));
+ // formatter settings
+ writeFile(settings, QString("formatters"),
+ QString("%1/formatters/formatters.ini").arg(m_baseDir));
settings.endGroup();
}
diff --git a/sources/awesome-widget/plugin/awconfighelper.h b/sources/awesome-widget/plugin/awconfighelper.h
index c70373b..4a71956 100644
--- a/sources/awesome-widget/plugin/awconfighelper.h
+++ b/sources/awesome-widget/plugin/awconfighelper.h
@@ -63,7 +63,7 @@ private:
QStringList m_dirs = QStringList()
<< QString("desktops") << QString("quotes")
<< QString("scripts") << QString("upgrade")
- << QString("weather");
+ << QString("weather") << QString("formatters");
};
diff --git a/sources/awesome-widget/plugin/awdataaggregator.cpp b/sources/awesome-widget/plugin/awdataaggregator.cpp
index 4b22862..805ccec 100644
--- a/sources/awesome-widget/plugin/awdataaggregator.cpp
+++ b/sources/awesome-widget/plugin/awdataaggregator.cpp
@@ -36,13 +36,13 @@ AWDataAggregator::AWDataAggregator(QObject *parent)
{
qCDebug(LOG_AW) << __PRETTY_FUNCTION__;
- boundaries[QString("cpuTooltip")] = 100.0;
- boundaries[QString("cpuclTooltip")] = 4000.0;
- boundaries[QString("memTooltip")] = 100.0;
- boundaries[QString("swapTooltip")] = 100.0;
- boundaries[QString("downkbTooltip")] = 1.0;
- boundaries[QString("upkbTooltip")] = 1.0;
- boundaries[QString("batTooltip")] = 100.0;
+ m_boundaries[QString("cpuTooltip")] = 100.0;
+ m_boundaries[QString("cpuclTooltip")] = 4000.0;
+ m_boundaries[QString("memTooltip")] = 100.0;
+ m_boundaries[QString("swapTooltip")] = 100.0;
+ m_boundaries[QString("downkbTooltip")] = 1.0;
+ m_boundaries[QString("upkbTooltip")] = 1.0;
+ m_boundaries[QString("batTooltip")] = 100.0;
initScene();
connect(this, SIGNAL(updateData(const QVariantHash &)), this,
@@ -54,7 +54,7 @@ AWDataAggregator::~AWDataAggregator()
{
qCDebug(LOG_AW) << __PRETTY_FUNCTION__;
- delete toolTipScene;
+ delete m_toolTipScene;
}
@@ -62,7 +62,7 @@ QList AWDataAggregator::getData(const QString key) const
{
qCDebug(LOG_AW) << "Key" << key;
- return data[QString("%1Tooltip").arg(key)];
+ return m_values[QString("%1Tooltip").arg(key)];
}
@@ -84,41 +84,41 @@ void AWDataAggregator::setParameters(QVariantMap settings)
qCDebug(LOG_AW) << "Settings" << settings;
// cast from QVariantMap to QVariantHash without data lost
- configuration = qvariant_cast(settings);
+ m_configuration = qvariant_cast(settings);
- m_enablePopup = configuration[QString("notify")].toBool();
+ m_enablePopup = m_configuration[QString("notify")].toBool();
- counts = 0;
- counts += configuration[QString("cpuTooltip")].toInt();
- counts += configuration[QString("cpuclTooltip")].toInt();
- counts += configuration[QString("memTooltip")].toInt();
- counts += configuration[QString("swapTooltip")].toInt();
- counts += configuration[QString("downkbTooltip")].toInt();
- counts += configuration[QString("batTooltip")].toInt();
+ m_counts = 0;
+ m_counts += m_configuration[QString("cpuTooltip")].toInt();
+ m_counts += m_configuration[QString("cpuclTooltip")].toInt();
+ m_counts += m_configuration[QString("memTooltip")].toInt();
+ m_counts += m_configuration[QString("swapTooltip")].toInt();
+ m_counts += m_configuration[QString("downkbTooltip")].toInt();
+ m_counts += m_configuration[QString("batTooltip")].toInt();
// resize tooltip image
- toolTipView->resize(100 * counts, 105);
+ m_toolTipView->resize(100 * m_counts, 105);
requiredKeys.clear();
- if (configuration[QString("cpuTooltip")].toBool())
+ if (m_configuration[QString("cpuTooltip")].toBool())
requiredKeys.append(QString("cpuTooltip"));
- if (configuration[QString("cpuclTooltip")].toBool())
+ if (m_configuration[QString("cpuclTooltip")].toBool())
requiredKeys.append(QString("cpuclTooltip"));
- if (configuration[QString("memTooltip")].toBool())
+ if (m_configuration[QString("memTooltip")].toBool())
requiredKeys.append(QString("memTooltip"));
- if (configuration[QString("swapTooltip")].toBool())
+ if (m_configuration[QString("swapTooltip")].toBool())
requiredKeys.append(QString("swapTooltip"));
- if (configuration[QString("downkbTooltip")].toBool())
+ if (m_configuration[QString("downkbTooltip")].toBool())
requiredKeys.append(QString("downkbTooltip"));
- if (configuration[QString("upkbTooltip")].toBool())
+ if (m_configuration[QString("upkbTooltip")].toBool())
requiredKeys.append(QString("upkbTooltip"));
- if (configuration[QString("batTooltip")].toBool())
+ if (m_configuration[QString("batTooltip")].toBool())
requiredKeys.append(QString("batTooltip"));
// background
- toolTipScene->setBackgroundBrush(
- configuration[QString("useTooltipBackground")].toBool()
+ m_toolTipScene->setBackgroundBrush(
+ m_configuration[QString("useTooltipBackground")].toBool()
? QBrush(QColor(
- configuration[QString("tooltipBackground")].toString()))
+ m_configuration[QString("tooltipBackground")].toString()))
: QBrush(Qt::NoBrush));
}
@@ -126,43 +126,44 @@ void AWDataAggregator::setParameters(QVariantMap settings)
QPixmap AWDataAggregator::tooltipImage()
{
// create image
- toolTipScene->clear();
+ m_toolTipScene->clear();
QPen pen;
bool down = false;
for (auto key : requiredKeys) {
// create frame
- float normX = 100.0f / static_cast(data[key].count());
- float normY = 100.0f / (1.5f * boundaries[key]);
+ float normX = 100.0f / static_cast(m_values[key].count());
+ float normY = 100.0f / (1.5f * m_boundaries[key]);
float shift = requiredKeys.indexOf(key) * 100.0f;
if (down)
shift -= 100.0;
// apply pen color
if (key != QString("batTooltip"))
- pen.setColor(
- QColor(configuration[QString("%1Color").arg(key)].toString()));
+ pen.setColor(QColor(
+ m_configuration[QString("%1Color").arg(key)].toString()));
// paint data inside frame
- for (int j = 0; j < data[key].count() - 1; j++) {
+ for (int j = 0; j < m_values[key].count() - 1; j++) {
// some magic here
float x1 = j * normX + shift;
- float y1 = -fabs(data[key].at(j)) * normY + 5.0f;
+ float y1 = -fabs(m_values[key].at(j)) * normY + 5.0f;
float x2 = (j + 1) * normX + shift;
- float y2 = -fabs(data[key].at(j + 1)) * normY + 5.0f;
+ float y2 = -fabs(m_values[key].at(j + 1)) * normY + 5.0f;
if (key == QString("batTooltip")) {
- if (data[key].at(j + 1) > 0)
- pen.setColor(QColor(
- configuration[QString("batTooltipColor")].toString()));
+ if (m_values[key].at(j + 1) > 0)
+ pen.setColor(
+ QColor(m_configuration[QString("batTooltipColor")]
+ .toString()));
else
pen.setColor(
- QColor(configuration[QString("batInTooltipColor")]
+ QColor(m_configuration[QString("batInTooltipColor")]
.toString()));
}
- toolTipScene->addLine(x1, y1, x2, y2, pen);
+ m_toolTipScene->addLine(x1, y1, x2, y2, pen);
}
if (key == QString("downkbTooltip"))
down = true;
}
- return toolTipView->grab();
+ return m_toolTipView->grab();
}
@@ -182,12 +183,12 @@ void AWDataAggregator::checkValue(const QString source, const float value,
if (value >= 0.0) {
if ((m_enablePopup) && (value > extremum)
- && (data[source].last() < extremum))
+ && (m_values[source].last() < extremum))
return AWActions::sendNotification(QString("event"),
notificationText(source, value));
} else {
if ((m_enablePopup) && (value < extremum)
- && (data[source].last() > extremum))
+ && (m_values[source].last() > extremum))
return AWActions::sendNotification(QString("event"),
notificationText(source, value));
}
@@ -208,13 +209,13 @@ void AWDataAggregator::checkValue(const QString source, const QString current,
void AWDataAggregator::initScene()
{
- toolTipScene = new QGraphicsScene(nullptr);
- toolTipView = new QGraphicsView(toolTipScene);
- toolTipView->setStyleSheet(QString("background: transparent"));
- toolTipView->setContentsMargins(0, 0, 0, 0);
- toolTipView->setFrameShape(QFrame::NoFrame);
- toolTipView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- toolTipView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ m_toolTipScene = new QGraphicsScene(nullptr);
+ m_toolTipView = new QGraphicsView(m_toolTipScene);
+ m_toolTipView->setStyleSheet(QString("background: transparent"));
+ m_toolTipView->setContentsMargins(0, 0, 0, 0);
+ m_toolTipView->setFrameShape(QFrame::NoFrame);
+ m_toolTipView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ m_toolTipView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
}
@@ -257,7 +258,7 @@ void AWDataAggregator::setData(const QVariantHash &values)
// do not log these arguments
// battery update requires info is AC online or not
setData(values[QString("ac")].toString()
- == configuration[QString("acOnline")],
+ == m_configuration[QString("acOnline")],
QString("batTooltip"), values[QString("bat")].toFloat());
// usual case
setData(QString("cpuTooltip"), values[QString("cpu")].toFloat(), 90.0);
@@ -268,13 +269,13 @@ void AWDataAggregator::setData(const QVariantHash &values)
setData(QString("upkbTooltip"), values[QString("upkb")].toFloat());
// additional check for network device
[this](const QString value) {
- checkValue(QString("netdev"), currentNetworkDevice, value);
- currentNetworkDevice = value;
+ checkValue(QString("netdev"), m_currentNetworkDevice, value);
+ m_currentNetworkDevice = value;
}(values[QString("netdev")].toString());
// additional check for GPU load
[this](const float value) {
checkValue(QString("gpu"), value, 90.0);
- currentGPULoad = value;
+ m_currentGPULoad = value;
}(values[QString("gpu")].toFloat());
}
@@ -285,27 +286,27 @@ void AWDataAggregator::setData(const QString &source, float value,
qCDebug(LOG_AW) << "Source" << source << "to value" << value
<< "with extremum" << extremum;
- if (data[source].count() == 0)
- data[source].append(0.0);
- else if (data[source].count()
- > configuration[QString("tooltipNumber")].toInt())
- data[source].removeFirst();
+ if (m_values[source].count() == 0)
+ m_values[source].append(0.0);
+ else if (m_values[source].count()
+ > m_configuration[QString("tooltipNumber")].toInt())
+ m_values[source].removeFirst();
if (std::isnan(value))
value = 0.0;
// notifications
checkValue(source, value, extremum);
- data[source].append(value);
+ m_values[source].append(value);
if (source == QString("downkbTooltip")) {
- QList netValues
- = data[QString("downkbTooltip")] + data[QString("upkbTooltip")];
+ QList netValues = m_values[QString("downkbTooltip")]
+ + m_values[QString("upkbTooltip")];
// to avoid inf value of normY
netValues << 1.0;
- boundaries[QString("downkbTooltip")]
+ m_boundaries[QString("downkbTooltip")]
= 1.2f * *std::max_element(netValues.cbegin(), netValues.cend());
- boundaries[QString("upkbTooltip")]
- = boundaries[QString("downkbTooltip")];
+ m_boundaries[QString("upkbTooltip")]
+ = m_boundaries[QString("downkbTooltip")];
}
}
diff --git a/sources/awesome-widget/plugin/awdataaggregator.h b/sources/awesome-widget/plugin/awdataaggregator.h
index a5da613..4b59797 100644
--- a/sources/awesome-widget/plugin/awdataaggregator.h
+++ b/sources/awesome-widget/plugin/awdataaggregator.h
@@ -49,8 +49,8 @@ private slots:
private:
// ui
- QGraphicsScene *toolTipScene = nullptr;
- QGraphicsView *toolTipView = nullptr;
+ QGraphicsScene *m_toolTipScene = nullptr;
+ QGraphicsView *m_toolTipView = nullptr;
void checkValue(const QString source, const float value,
const float extremum) const;
void checkValue(const QString source, const QString current,
@@ -65,12 +65,12 @@ private:
// different signature for battery device
void setData(const bool dontInvert, const QString &source, float value);
// variables
- int counts = 0;
- QVariantHash configuration;
- float currentGPULoad = 0.0;
- QString currentNetworkDevice = QString("lo");
- QHash boundaries;
- QHash> data;
+ int m_counts = 0;
+ QVariantHash m_configuration;
+ float m_currentGPULoad = 0.0;
+ QString m_currentNetworkDevice = QString("lo");
+ QHash m_boundaries;
+ QHash> m_values;
bool m_enablePopup = false;
QStringList requiredKeys;
};
diff --git a/sources/awesome-widget/plugin/awformatterconfig.cpp b/sources/awesome-widget/plugin/awformatterconfig.cpp
index e1f3d54..b7ab3ed 100644
--- a/sources/awesome-widget/plugin/awformatterconfig.cpp
+++ b/sources/awesome-widget/plugin/awformatterconfig.cpp
@@ -35,13 +35,13 @@ AWFormatterConfig::AWFormatterConfig(QWidget *parent, const QStringList keys)
qCDebug(LOG_AW) << __PRETTY_FUNCTION__;
ui->setupUi(this);
- editButton
+ m_editButton
= ui->buttonBox->addButton(i18n("Edit"), QDialogButtonBox::ActionRole);
init();
connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
- connect(editButton, SIGNAL(clicked(bool)), this, SLOT(editFormatters()));
+ connect(m_editButton, SIGNAL(clicked(bool)), this, SLOT(editFormatters()));
}
diff --git a/sources/awesome-widget/plugin/awformatterconfig.h b/sources/awesome-widget/plugin/awformatterconfig.h
index 65a6382..f3a9fde 100644
--- a/sources/awesome-widget/plugin/awformatterconfig.h
+++ b/sources/awesome-widget/plugin/awformatterconfig.h
@@ -44,7 +44,7 @@ private slots:
void updateUi();
private:
- QPushButton *editButton = nullptr;
+ QPushButton *m_editButton = nullptr;
Ui::AWFormatterConfig *ui = nullptr;
AWFormatterHelper *m_helper = nullptr;
QList m_selectors;
diff --git a/sources/awesome-widget/plugin/awkeyoperations.cpp b/sources/awesome-widget/plugin/awkeyoperations.cpp
index 3ce11df..9388053 100644
--- a/sources/awesome-widget/plugin/awkeyoperations.cpp
+++ b/sources/awesome-widget/plugin/awkeyoperations.cpp
@@ -45,11 +45,11 @@ AWKeyOperations::~AWKeyOperations()
qCDebug(LOG_AW) << __PRETTY_FUNCTION__;
// extensions
- delete graphicalItems;
- delete extQuotes;
- delete extScripts;
- delete extUpgrade;
- delete extWeather;
+ delete m_graphicalItems;
+ delete m_extQuotes;
+ delete m_extScripts;
+ delete m_extUpgrade;
+ delete m_extWeather;
}
@@ -79,19 +79,19 @@ QStringList AWKeyOperations::dictKeys() const
{
QStringList allKeys;
// weather
- for (int i = extWeather->activeItems().count() - 1; i >= 0; i--) {
+ for (int i = m_extWeather->activeItems().count() - 1; i >= 0; i--) {
allKeys.append(
- extWeather->activeItems().at(i)->tag(QString("weatherId")));
+ m_extWeather->activeItems().at(i)->tag(QString("weatherId")));
allKeys.append(
- extWeather->activeItems().at(i)->tag(QString("weather")));
+ m_extWeather->activeItems().at(i)->tag(QString("weather")));
allKeys.append(
- extWeather->activeItems().at(i)->tag(QString("humidity")));
+ m_extWeather->activeItems().at(i)->tag(QString("humidity")));
allKeys.append(
- extWeather->activeItems().at(i)->tag(QString("pressure")));
+ m_extWeather->activeItems().at(i)->tag(QString("pressure")));
allKeys.append(
- extWeather->activeItems().at(i)->tag(QString("temperature")));
+ m_extWeather->activeItems().at(i)->tag(QString("temperature")));
allKeys.append(
- extWeather->activeItems().at(i)->tag(QString("timestamp")));
+ m_extWeather->activeItems().at(i)->tag(QString("timestamp")));
}
// cpuclock & cpu
for (int i = QThread::idealThreadCount() - 1; i >= 0; i--) {
@@ -140,32 +140,35 @@ QStringList AWKeyOperations::dictKeys() const
for (int i = allBatteryDevices.count() - 1; i >= 0; i--)
allKeys.append(QString("bat%1").arg(i));
// package manager
- for (int i = extUpgrade->activeItems().count() - 1; i >= 0; i--)
+ for (int i = m_extUpgrade->activeItems().count() - 1; i >= 0; i--)
allKeys.append(
- extUpgrade->activeItems().at(i)->tag(QString("pkgcount")));
+ m_extUpgrade->activeItems().at(i)->tag(QString("pkgcount")));
// quotes
- for (int i = extQuotes->activeItems().count() - 1; i >= 0; i--) {
- allKeys.append(extQuotes->activeItems().at(i)->tag(QString("ask")));
- allKeys.append(extQuotes->activeItems().at(i)->tag(QString("askchg")));
+ for (int i = m_extQuotes->activeItems().count() - 1; i >= 0; i--) {
+ allKeys.append(m_extQuotes->activeItems().at(i)->tag(QString("ask")));
allKeys.append(
- extQuotes->activeItems().at(i)->tag(QString("percaskchg")));
- allKeys.append(extQuotes->activeItems().at(i)->tag(QString("bid")));
- allKeys.append(extQuotes->activeItems().at(i)->tag(QString("bidchg")));
+ m_extQuotes->activeItems().at(i)->tag(QString("askchg")));
allKeys.append(
- extQuotes->activeItems().at(i)->tag(QString("percbidchg")));
- allKeys.append(extQuotes->activeItems().at(i)->tag(QString("price")));
+ m_extQuotes->activeItems().at(i)->tag(QString("percaskchg")));
+ allKeys.append(m_extQuotes->activeItems().at(i)->tag(QString("bid")));
allKeys.append(
- extQuotes->activeItems().at(i)->tag(QString("pricechg")));
+ m_extQuotes->activeItems().at(i)->tag(QString("bidchg")));
allKeys.append(
- extQuotes->activeItems().at(i)->tag(QString("percpricechg")));
+ m_extQuotes->activeItems().at(i)->tag(QString("percbidchg")));
+ allKeys.append(m_extQuotes->activeItems().at(i)->tag(QString("price")));
+ allKeys.append(
+ m_extQuotes->activeItems().at(i)->tag(QString("pricechg")));
+ allKeys.append(
+ m_extQuotes->activeItems().at(i)->tag(QString("percpricechg")));
}
// custom
- for (int i = extScripts->activeItems().count() - 1; i >= 0; i--)
- allKeys.append(extScripts->activeItems().at(i)->tag(QString("custom")));
- // bars
- for (int i = graphicalItems->activeItems().count() - 1; i >= 0; i--)
+ for (int i = m_extScripts->activeItems().count() - 1; i >= 0; i--)
allKeys.append(
- graphicalItems->activeItems().at(i)->tag(QString("bar")));
+ m_extScripts->activeItems().at(i)->tag(QString("custom")));
+ // bars
+ for (int i = m_graphicalItems->activeItems().count() - 1; i >= 0; i--)
+ allKeys.append(
+ m_graphicalItems->activeItems().at(i)->tag(QString("bar")));
// static keys
QStringList staticKeys = QString(STATIC_KEYS).split(QChar(','));
std::for_each(staticKeys.cbegin(), staticKeys.cend(),
@@ -181,7 +184,7 @@ GraphicalItem *AWKeyOperations::giByKey(const QString key) const
{
qCDebug(LOG_AW) << "Looking for item" << key;
- return graphicalItems->itemByTag(key, QString("bar"));
+ return m_graphicalItems->itemByTag(key, QString("bar"));
}
@@ -194,11 +197,11 @@ QString AWKeyOperations::infoByKey(QString key) const
QString output;
if (key.startsWith(QString("bar"))) {
- AbstractExtItem *item = graphicalItems->itemByTag(key, stripped);
+ AbstractExtItem *item = m_graphicalItems->itemByTag(key, stripped);
if (item)
output = item->uniq();
} else if (key.startsWith(QString("custom"))) {
- AbstractExtItem *item = extScripts->itemByTag(key, stripped);
+ AbstractExtItem *item = m_extScripts->itemByTag(key, stripped);
if (item)
output = item->uniq();
} else if (key.contains(QRegExp(QString("^hdd[rw]")))) {
@@ -219,17 +222,17 @@ QString AWKeyOperations::infoByKey(QString key) const
output = m_devices[QString("net")]
[key.remove(QRegExp(QString("^(down|up)"))).toInt()];
} else if (key.startsWith(QString("pkgcount"))) {
- AbstractExtItem *item = extUpgrade->itemByTag(key, stripped);
+ AbstractExtItem *item = m_extUpgrade->itemByTag(key, stripped);
if (item)
output = item->uniq();
} else if (key.contains(
QRegExp(QString("(^|perc)(ask|bid|price)(chg|)")))) {
- AbstractExtItem *item = extQuotes->itemByTag(key, stripped);
+ AbstractExtItem *item = m_extQuotes->itemByTag(key, stripped);
if (item)
output = item->uniq();
} else if (key.contains(QRegExp(QString(
"(weather|weatherId|humidity|pressure|temperature)")))) {
- AbstractExtItem *item = extWeather->itemByTag(key, stripped);
+ AbstractExtItem *item = m_extWeather->itemByTag(key, stripped);
if (item)
output = item->uniq();
} else if (key.startsWith(QString("temp"))) {
@@ -265,16 +268,16 @@ void AWKeyOperations::editItem(const QString type)
QStringList keys = dictKeys().filter(QRegExp(
QString("^(cpu(?!cl).*|gpu$|mem$|swap$|hdd[0-9].*|bat.*)")));
keys.sort();
- graphicalItems->setConfigArgs(keys);
- return graphicalItems->editItems();
+ m_graphicalItems->setConfigArgs(keys);
+ return m_graphicalItems->editItems();
} else if (type == QString("extquotes")) {
- return extQuotes->editItems();
+ return m_extQuotes->editItems();
} else if (type == QString("extscript")) {
- return extScripts->editItems();
+ return m_extScripts->editItems();
} else if (type == QString("extupgrade")) {
- return extUpgrade->editItems();
+ return m_extUpgrade->editItems();
} else if (type == QString("extweather")) {
- return extWeather->editItems();
+ return m_extWeather->editItems();
}
}
@@ -316,23 +319,26 @@ void AWKeyOperations::reinitKeys()
{
// renew extensions
// delete them if any
- delete graphicalItems;
- graphicalItems = nullptr;
- delete extQuotes;
- extQuotes = nullptr;
- delete extScripts;
- extScripts = nullptr;
- delete extUpgrade;
- extUpgrade = nullptr;
- delete extWeather;
- extWeather = nullptr;
+ delete m_graphicalItems;
+ m_graphicalItems = nullptr;
+ delete m_extQuotes;
+ m_extQuotes = nullptr;
+ delete m_extScripts;
+ m_extScripts = nullptr;
+ delete m_extUpgrade;
+ m_extUpgrade = nullptr;
+ delete m_extWeather;
+ m_extWeather = nullptr;
// create
- graphicalItems
+ m_graphicalItems
= new ExtItemAggregator(nullptr, QString("desktops"));
- extQuotes = new ExtItemAggregator(nullptr, QString("quotes"));
- extScripts = new ExtItemAggregator(nullptr, QString("scripts"));
- extUpgrade = new ExtItemAggregator(nullptr, QString("upgrade"));
- extWeather = new ExtItemAggregator(nullptr, QString("weather"));
+ m_extQuotes = new ExtItemAggregator(nullptr, QString("quotes"));
+ m_extScripts
+ = new ExtItemAggregator(nullptr, QString("scripts"));
+ m_extUpgrade
+ = new ExtItemAggregator(nullptr, QString("upgrade"));
+ m_extWeather
+ = new ExtItemAggregator(nullptr, QString("weather"));
// init
QStringList allKeys = dictKeys();
diff --git a/sources/awesome-widget/plugin/awkeyoperations.h b/sources/awesome-widget/plugin/awkeyoperations.h
index 11c9161..9d92217 100644
--- a/sources/awesome-widget/plugin/awkeyoperations.h
+++ b/sources/awesome-widget/plugin/awkeyoperations.h
@@ -69,11 +69,11 @@ private:
void addKeyToCache(const QString type, const QString key = QString(""));
void reinitKeys();
// objects
- ExtItemAggregator *graphicalItems = nullptr;
- ExtItemAggregator *extQuotes = nullptr;
- ExtItemAggregator *extScripts = nullptr;
- ExtItemAggregator *extUpgrade = nullptr;
- ExtItemAggregator *extWeather = nullptr;
+ ExtItemAggregator *m_graphicalItems = nullptr;
+ ExtItemAggregator *m_extQuotes = nullptr;
+ ExtItemAggregator *m_extScripts = nullptr;
+ ExtItemAggregator *m_extUpgrade = nullptr;
+ ExtItemAggregator *m_extWeather = nullptr;
// variables
QHash m_devices;
QString m_pattern;
diff --git a/sources/awesome-widget/plugin/awkeys.cpp b/sources/awesome-widget/plugin/awkeys.cpp
index 0ccb090..794c39c 100644
--- a/sources/awesome-widget/plugin/awkeys.cpp
+++ b/sources/awesome-widget/plugin/awkeys.cpp
@@ -44,26 +44,26 @@ AWKeys::AWKeys(QObject *parent)
// thread pool
m_threadPool = new QThreadPool(this);
- aggregator = new AWKeysAggregator(this);
- dataAggregator = new AWDataAggregator(this);
- dataEngineAggregator = new AWDataEngineAggregator(this);
- keyOperator = new AWKeyOperations(this);
+ m_aggregator = new AWKeysAggregator(this);
+ m_dataAggregator = new AWDataAggregator(this);
+ m_dataEngineAggregator = new AWDataEngineAggregator(this);
+ m_keyOperator = new AWKeyOperations(this);
m_timer = new QTimer(this);
m_timer->setSingleShot(false);
// update key data if required
- connect(keyOperator, SIGNAL(updateKeys(QStringList)), this,
+ connect(m_keyOperator, SIGNAL(updateKeys(QStringList)), this,
SLOT(reinitKeys(QStringList)));
connect(m_timer, SIGNAL(timeout()), this, SLOT(updateTextData()));
// transfer signal from AWDataAggregator object to QML ui
- connect(dataAggregator, SIGNAL(toolTipPainted(const QString)), this,
+ connect(m_dataAggregator, SIGNAL(toolTipPainted(const QString)), this,
SIGNAL(needToolTipToBeUpdated(const QString)));
connect(this, SIGNAL(dropSourceFromDataengine(QString)),
- dataEngineAggregator, SLOT(dropSource(QString)));
+ m_dataEngineAggregator, SLOT(dropSource(QString)));
// transfer signal from dataengine to update source list
- connect(dataEngineAggregator, SIGNAL(deviceAdded(const QString &)),
- keyOperator, SLOT(addDevice(const QString &)));
+ connect(m_dataEngineAggregator, SIGNAL(deviceAdded(const QString &)),
+ m_keyOperator, SLOT(addDevice(const QString &)));
}
@@ -75,11 +75,11 @@ AWKeys::~AWKeys()
delete m_timer;
// core
- delete dataEngineAggregator;
+ delete m_dataEngineAggregator;
delete m_threadPool;
- delete aggregator;
- delete dataAggregator;
- delete keyOperator;
+ delete m_aggregator;
+ delete m_dataAggregator;
+ delete m_keyOperator;
}
@@ -89,7 +89,7 @@ void AWKeys::initDataAggregator(const QVariantMap tooltipParams)
// store parameters to generate m_requiredKeys
m_tooltipParams = tooltipParams;
- dataAggregator->setParameters(m_tooltipParams);
+ m_dataAggregator->setParameters(m_tooltipParams);
}
@@ -105,11 +105,11 @@ void AWKeys::initKeys(const QString currentPattern, const int interval,
m_threadPool->setMaxThreadCount(limit == 0 ? QThread::idealThreadCount()
: limit);
// child objects
- keyOperator->setPattern(currentPattern);
- keyOperator->updateCache();
- dataEngineAggregator->clear();
-
- dataEngineAggregator->initDataEngines(interval);
+ m_aggregator->initFormatters();
+ m_keyOperator->setPattern(currentPattern);
+ m_keyOperator->updateCache();
+ m_dataEngineAggregator->clear();
+ m_dataEngineAggregator->initDataEngines(interval);
// timer
m_timer->setInterval(interval);
@@ -121,7 +121,7 @@ void AWKeys::setAggregatorProperty(const QString key, const QVariant value)
{
qCDebug(LOG_AW) << "Key" << key << "with value" << value;
- aggregator->setProperty(key.toUtf8().constData(), value);
+ m_aggregator->setProperty(key.toUtf8().constData(), value);
}
@@ -135,7 +135,7 @@ void AWKeys::setWrapNewLines(const bool wrap)
void AWKeys::updateCache()
{
- return keyOperator->updateCache();
+ return m_keyOperator->updateCache();
}
@@ -144,7 +144,7 @@ QStringList AWKeys::dictKeys(const bool sorted, const QString regexp) const
qCDebug(LOG_AW) << "Should be sorted" << sorted << "and filter applied"
<< regexp;
- QStringList allKeys = keyOperator->dictKeys();
+ QStringList allKeys = m_keyOperator->dictKeys();
// sort if required
if (sorted)
allKeys.sort();
@@ -155,7 +155,7 @@ QStringList AWKeys::dictKeys(const bool sorted, const QString regexp) const
QStringList AWKeys::getHddDevices() const
{
- QStringList devices = keyOperator->devices(QString("hdd"));
+ QStringList devices = m_keyOperator->devices(QString("hdd"));
// required by selector in the UI
devices.insert(0, QString("disable"));
devices.insert(0, QString("auto"));
@@ -168,7 +168,7 @@ QString AWKeys::infoByKey(QString key) const
{
qCDebug(LOG_AW) << "Requested info for key" << key;
- return keyOperator->infoByKey(key);
+ return m_keyOperator->infoByKey(key);
}
@@ -178,9 +178,9 @@ QString AWKeys::valueByKey(QString key) const
qCDebug(LOG_AW) << "Requested value for key" << key;
QString trueKey
- = key.startsWith(QString("bar")) ? keyOperator->infoByKey(key) : key;
+ = key.startsWith(QString("bar")) ? m_keyOperator->infoByKey(key) : key;
- return aggregator->formatter(values[trueKey], trueKey);
+ return m_aggregator->formatter(m_values[trueKey], trueKey);
}
@@ -188,7 +188,7 @@ void AWKeys::editItem(const QString type)
{
qCDebug(LOG_AW) << "Item type" << type;
- return keyOperator->editItem(type);
+ return m_keyOperator->editItem(type);
}
@@ -206,15 +206,15 @@ void AWKeys::reinitKeys(const QStringList currentKeys)
qCDebug(LOG_AW) << "Update found keys by using list" << currentKeys;
// append lists
- m_foundBars = AWPatternFunctions::findKeys(keyOperator->pattern(),
+ m_foundBars = AWPatternFunctions::findKeys(m_keyOperator->pattern(),
currentKeys, true);
- m_foundKeys = AWPatternFunctions::findKeys(keyOperator->pattern(),
+ m_foundKeys = AWPatternFunctions::findKeys(m_keyOperator->pattern(),
currentKeys, false);
- m_foundLambdas = AWPatternFunctions::findLambdas(keyOperator->pattern());
+ m_foundLambdas = AWPatternFunctions::findLambdas(m_keyOperator->pattern());
// generate list of required keys for bars
QStringList barKeys;
for (auto bar : m_foundBars) {
- GraphicalItem *item = keyOperator->giByKey(bar);
+ GraphicalItem *item = m_keyOperator->giByKey(bar);
if (item->isCustom())
item->setUsedKeys(
AWPatternFunctions::findKeys(item->bar(), currentKeys, false));
@@ -228,8 +228,8 @@ void AWKeys::reinitKeys(const QStringList currentKeys)
m_tooltipParams, currentKeys)
: QStringList();
- // set key data to aggregator
- aggregator->setDevices(keyOperator->devices());
+ // set key data to m_aggregator
+ m_aggregator->setDevices(m_keyOperator->devices());
}
@@ -238,11 +238,11 @@ void AWKeys::updateTextData()
// do not do it in parallel to avoid race condition
m_mutex.lock();
calculateValues();
- QString text = parsePattern(keyOperator->pattern());
+ QString text = parsePattern(m_keyOperator->pattern());
m_mutex.unlock();
emit(needTextToBeUpdated(text));
- emit(dataAggregator->updateData(values));
+ emit(m_dataAggregator->updateData(m_values));
}
@@ -251,54 +251,58 @@ void AWKeys::updateTextData()
void AWKeys::calculateValues()
{
// hddtot*
- QStringList mountDevices = keyOperator->devices(QString("mount"));
+ QStringList mountDevices = m_keyOperator->devices(QString("mount"));
for (auto device : mountDevices) {
int index = mountDevices.indexOf(device);
- values[QString("hddtotmb%1").arg(index)]
- = values[QString("hddfreemb%1").arg(index)].toFloat()
- + values[QString("hddmb%1").arg(index)].toFloat();
- values[QString("hddtotgb%1").arg(index)]
- = values[QString("hddfreegb%1").arg(index)].toFloat()
- + values[QString("hddgb%1").arg(index)].toFloat();
+ m_values[QString("hddtotmb%1").arg(index)]
+ = m_values[QString("hddfreemb%1").arg(index)].toFloat()
+ + m_values[QString("hddmb%1").arg(index)].toFloat();
+ m_values[QString("hddtotgb%1").arg(index)]
+ = m_values[QString("hddfreegb%1").arg(index)].toFloat()
+ + m_values[QString("hddgb%1").arg(index)].toFloat();
}
// memtot*
- values[QString("memtotmb")] = values[QString("memusedmb")].toInt()
- + values[QString("memfreemb")].toInt();
- values[QString("memtotgb")] = values[QString("memusedgb")].toFloat()
- + values[QString("memfreegb")].toFloat();
+ m_values[QString("memtotmb")] = m_values[QString("memusedmb")].toInt()
+ + m_values[QString("memfreemb")].toInt();
+ m_values[QString("memtotgb")] = m_values[QString("memusedgb")].toFloat()
+ + m_values[QString("memfreegb")].toFloat();
// mem
- values[QString("mem")] = 100.0f * values[QString("memmb")].toFloat()
- / values[QString("memtotmb")].toFloat();
+ m_values[QString("mem")] = 100.0f * m_values[QString("memmb")].toFloat()
+ / m_values[QString("memtotmb")].toFloat();
// up, down, upkb, downkb, upunits, downunits
- int netIndex = keyOperator->devices(QString("net"))
- .indexOf(values[QString("netdev")].toString());
- values[QString("down")] = values[QString("down%1").arg(netIndex)];
- values[QString("downkb")] = values[QString("downkb%1").arg(netIndex)];
- values[QString("downtotal")] = values[QString("downtotal%1").arg(netIndex)];
- values[QString("downtotalkb")]
- = values[QString("downtotalkb%1").arg(netIndex)];
- values[QString("downunits")] = values[QString("downunits%1").arg(netIndex)];
- values[QString("up")] = values[QString("up%1").arg(netIndex)];
- values[QString("upkb")] = values[QString("upkb%1").arg(netIndex)];
- values[QString("uptotal")] = values[QString("uptotal%1").arg(netIndex)];
- values[QString("uptotalkb")] = values[QString("uptotalkb%1").arg(netIndex)];
- values[QString("upunits")] = values[QString("upunits%1").arg(netIndex)];
+ int netIndex = m_keyOperator->devices(QString("net"))
+ .indexOf(m_values[QString("netdev")].toString());
+ m_values[QString("down")] = m_values[QString("down%1").arg(netIndex)];
+ m_values[QString("downkb")] = m_values[QString("downkb%1").arg(netIndex)];
+ m_values[QString("downtotal")]
+ = m_values[QString("downtotal%1").arg(netIndex)];
+ m_values[QString("downtotalkb")]
+ = m_values[QString("downtotalkb%1").arg(netIndex)];
+ m_values[QString("downunits")]
+ = m_values[QString("downunits%1").arg(netIndex)];
+ m_values[QString("up")] = m_values[QString("up%1").arg(netIndex)];
+ m_values[QString("upkb")] = m_values[QString("upkb%1").arg(netIndex)];
+ m_values[QString("uptotal")] = m_values[QString("uptotal%1").arg(netIndex)];
+ m_values[QString("uptotalkb")]
+ = m_values[QString("uptotalkb%1").arg(netIndex)];
+ m_values[QString("upunits")] = m_values[QString("upunits%1").arg(netIndex)];
// swaptot*
- values[QString("swaptotmb")] = values[QString("swapmb")].toInt()
- + values[QString("swapfreemb")].toInt();
- values[QString("swaptotgb")] = values[QString("swapgb")].toFloat()
- + values[QString("swapfreegb")].toFloat();
+ m_values[QString("swaptotmb")] = m_values[QString("swapmb")].toInt()
+ + m_values[QString("swapfreemb")].toInt();
+ m_values[QString("swaptotgb")]
+ = m_values[QString("swapgb")].toFloat()
+ + m_values[QString("swapfreegb")].toFloat();
// swap
- values[QString("swap")] = 100.0f * values[QString("swapmb")].toFloat()
- / values[QString("swaptotmb")].toFloat();
+ m_values[QString("swap")] = 100.0f * m_values[QString("swapmb")].toFloat()
+ / m_values[QString("swaptotmb")].toFloat();
// lambdas
for (auto key : m_foundLambdas)
- values[key] = AWPatternFunctions::expandLambdas(key, aggregator, values,
- m_foundKeys);
+ m_values[key] = AWPatternFunctions::expandLambdas(
+ key, m_aggregator, m_values, m_foundKeys);
}
@@ -309,27 +313,27 @@ QString AWKeys::parsePattern(QString pattern) const
// lambdas
for (auto key : m_foundLambdas)
- pattern.replace(QString("${{%1}}").arg(key), values[key].toString());
+ pattern.replace(QString("${{%1}}").arg(key), m_values[key].toString());
// main keys
for (auto key : m_foundKeys)
pattern.replace(QString("$%1").arg(key), [this](const QString &tag,
const QVariant &value) {
- QString strValue = aggregator->formatter(value, tag);
+ QString strValue = m_aggregator->formatter(value, tag);
if ((!tag.startsWith(QString("custom")))
&& (!tag.startsWith(QString("weather"))))
strValue.replace(QString(" "), QString(" "));
return strValue;
- }(key, values[key]));
+ }(key, m_values[key]));
// bars
for (auto bar : m_foundBars) {
- GraphicalItem *item = keyOperator->giByKey(bar);
+ GraphicalItem *item = m_keyOperator->giByKey(bar);
QString image
= item->isCustom()
? item->image(AWPatternFunctions::expandLambdas(
- item->bar(), aggregator, values, item->usedKeys()))
- : item->image(values[item->bar()]);
+ item->bar(), m_aggregator, m_values, item->usedKeys()))
+ : item->image(m_values[item->bar()]);
pattern.replace(QString("$%1").arg(bar), image);
}
@@ -347,9 +351,9 @@ void AWKeys::setDataBySource(const QString &sourceName, const QVariantMap &data)
qCDebug(LOG_AW) << "Source" << sourceName << "with data" << data;
// first list init
- QStringList tags = aggregator->keysFromSource(sourceName);
+ QStringList tags = m_aggregator->keysFromSource(sourceName);
if (tags.isEmpty())
- tags = aggregator->registerSource(
+ tags = m_aggregator->registerSource(
sourceName, data[QString("units")].toString(), m_requiredKeys);
// update data or drop source if there are no matches and exit
@@ -362,9 +366,9 @@ void AWKeys::setDataBySource(const QString &sourceName, const QVariantMap &data)
// HACK workaround for time values which are stored in the different path
std::for_each(tags.cbegin(), tags.cend(),
[this, &data, &sourceName](const QString &tag) {
- values[tag] = sourceName == QString("Local")
- ? data[QString("DateTime")]
- : data[QString("value")];
+ m_values[tag] = sourceName == QString("Local")
+ ? data[QString("DateTime")]
+ : data[QString("value")];
});
m_mutex.unlock();
}
diff --git a/sources/awesome-widget/plugin/awkeys.h b/sources/awesome-widget/plugin/awkeys.h
index 5fdf556..257fe00 100644
--- a/sources/awesome-widget/plugin/awkeys.h
+++ b/sources/awesome-widget/plugin/awkeys.h
@@ -79,15 +79,15 @@ private:
QString parsePattern(QString pattern) const;
void setDataBySource(const QString &sourceName, const QVariantMap &data);
// objects
- AWDataAggregator *dataAggregator = nullptr;
- AWDataEngineAggregator *dataEngineAggregator = nullptr;
- AWKeysAggregator *aggregator = nullptr;
- AWKeyOperations *keyOperator = nullptr;
+ AWDataAggregator *m_dataAggregator = nullptr;
+ AWDataEngineAggregator *m_dataEngineAggregator = nullptr;
+ AWKeysAggregator *m_aggregator = nullptr;
+ AWKeyOperations *m_keyOperator = nullptr;
QTimer *m_timer = nullptr;
// variables
QVariantMap m_tooltipParams;
QStringList m_foundBars, m_foundKeys, m_foundLambdas, m_requiredKeys;
- QVariantHash values;
+ QVariantHash m_values;
bool m_optimize = false;
bool m_wrapNewLines = false;
// multithread features
diff --git a/sources/awesome-widget/plugin/awkeysaggregator.cpp b/sources/awesome-widget/plugin/awkeysaggregator.cpp
index 9fdb952..6d25922 100644
--- a/sources/awesome-widget/plugin/awkeysaggregator.cpp
+++ b/sources/awesome-widget/plugin/awkeysaggregator.cpp
@@ -48,8 +48,6 @@ AWKeysAggregator::AWKeysAggregator(QObject *parent)
m_formatter[QString("swap")] = FormatterType::Float;
m_formatter[QString("swaptotmb")] = FormatterType::MemMBFormat;
m_formatter[QString("swaptotgb")] = FormatterType::MemGBFormat;
-
- m_customFormatters = new AWFormatterHelper(nullptr);
}
@@ -61,6 +59,14 @@ AWKeysAggregator::~AWKeysAggregator()
}
+void AWKeysAggregator::initFormatters()
+{
+ if (m_customFormatters)
+ delete m_customFormatters;
+ m_customFormatters = new AWFormatterHelper(nullptr);
+}
+
+
QString AWKeysAggregator::formatter(const QVariant &data,
const QString &key) const
{
@@ -126,7 +132,7 @@ QString AWKeysAggregator::formatter(const QVariant &data,
case FormatterType::TimeCustom:
output = m_customTime;
[&output, loc, this](const QDateTime dt) {
- for (auto key : timeKeys)
+ for (auto key : m_timeKeys)
output.replace(QString("$%1").arg(key), loc.toString(dt, key));
}(data.toDateTime());
break;
@@ -170,7 +176,8 @@ QString AWKeysAggregator::formatter(const QVariant &data,
output = data.toString();
break;
case FormatterType::Custom:
- output = m_customFormatters->convert(data, key);
+ if (m_customFormatters)
+ output = m_customFormatters->convert(data, key);
break;
}
@@ -574,7 +581,9 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
QStringList foundKeys = keysFromSource(source);
// rewrite formatters for custom ones
- QStringList customFormattersKeys = m_customFormatters->definedFormatters();
+ QStringList customFormattersKeys;
+ if (m_customFormatters)
+ customFormattersKeys = m_customFormatters->definedFormatters();
qCInfo(LOG_AW) << "Looking for fprmatters" << foundKeys << "in"
<< customFormattersKeys;
for (auto key : foundKeys) {
diff --git a/sources/awesome-widget/plugin/awkeysaggregator.h b/sources/awesome-widget/plugin/awkeysaggregator.h
index 81ad9ca..ab60a8c 100644
--- a/sources/awesome-widget/plugin/awkeysaggregator.h
+++ b/sources/awesome-widget/plugin/awkeysaggregator.h
@@ -69,6 +69,7 @@ class AWKeysAggregator : public QObject
public:
explicit AWKeysAggregator(QObject *parent = nullptr);
virtual ~AWKeysAggregator();
+ void initFormatters();
// get methods
QString formatter(const QVariant &data, const QString &key) const;
QStringList keysFromSource(const QString &source) const;
@@ -88,7 +89,7 @@ public slots:
private:
float temperature(const float temp) const;
AWFormatterHelper *m_customFormatters = nullptr;
- QStringList timeKeys = QString(TIME_KEYS).split(QChar(','));
+ QStringList m_timeKeys = QString(TIME_KEYS).split(QChar(','));
// variables
QString m_acOffline;
QString m_acOnline;
diff --git a/sources/awesomewidgets/CMakeLists.txt b/sources/awesomewidgets/CMakeLists.txt
index f0ff53f..a91ac8b 100644
--- a/sources/awesomewidgets/CMakeLists.txt
+++ b/sources/awesomewidgets/CMakeLists.txt
@@ -15,6 +15,7 @@ file(GLOB SUBPROJECT_HEADER *.h ${PROJECT_TRDPARTY_DIR}/qreplytimeout/*.h)
file(GLOB SUBPROJECT_UI *.ui)
file(GLOB SUBPROJECT_INI *.ini)
set(SUBPROJECT_CONFIGS ${CMAKE_CURRENT_SOURCE_DIR}/configs)
+set(SUBPROJECT_FORMATTERS ${CMAKE_CURRENT_SOURCE_DIR}/formatters)
set(SUBPROJECT_GRAPHITEMS ${CMAKE_CURRENT_SOURCE_DIR}/desktops)
set(SUBPROJECT_QUOTES ${CMAKE_CURRENT_SOURCE_DIR}/quotes)
set(SUBPROJECT_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/scripts)
@@ -32,6 +33,7 @@ target_link_libraries(${SUBPROJECT} ${Qt_LIBRARIES} ${Kf5_LIBRARIES})
# install
install(DIRECTORY ${SUBPROJECT_CONFIGS} DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME})
+install(DIRECTORY ${SUBPROJECT_FORMATTERS} DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME})
install(DIRECTORY ${SUBPROJECT_GRAPHITEMS} DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME})
install(DIRECTORY ${SUBPROJECT_QUOTES} DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME})
install(DIRECTORY ${SUBPROJECT_SCRIPTS} DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME})
diff --git a/sources/awesomewidgets/awdatetimeformatter.cpp b/sources/awesomewidgets/awdatetimeformatter.cpp
index 65fcffc..e83ccca 100644
--- a/sources/awesomewidgets/awdatetimeformatter.cpp
+++ b/sources/awesomewidgets/awdatetimeformatter.cpp
@@ -54,7 +54,7 @@ QString AWDateTimeFormatter::convert(const QVariant &_value) const
{
qCDebug(LOG_LIB) << "Convert value" << _value;
- return _value.toDateTime().toString(m_format);
+ return m_locale.toString(_value.toDateTime(), m_format);
}
@@ -67,6 +67,7 @@ AWDateTimeFormatter *AWDateTimeFormatter::copy(const QString _fileName,
= new AWDateTimeFormatter(static_cast(parent()), _fileName);
AWAbstractFormatter::copyDefaults(item);
item->setFormat(format());
+ item->setTranslateString(translateString());
item->setNumber(_number);
return item;
@@ -79,6 +80,12 @@ QString AWDateTimeFormatter::format() const
}
+bool AWDateTimeFormatter::translateString() const
+{
+ return m_translate;
+}
+
+
void AWDateTimeFormatter::setFormat(const QString _format)
{
qCDebug(LOG_LIB) << "Set format" << _format;
@@ -87,6 +94,15 @@ void AWDateTimeFormatter::setFormat(const QString _format)
}
+void AWDateTimeFormatter::setTranslateString(const bool _translate)
+{
+ qCDebug(LOG_LIB) << "Set translate string" << _translate;
+
+ m_translate = _translate;
+ initLocale();
+}
+
+
void AWDateTimeFormatter::readConfiguration()
{
AWAbstractFormatter::readConfiguration();
@@ -95,6 +111,8 @@ void AWDateTimeFormatter::readConfiguration()
settings.beginGroup(QString("Desktop Entry"));
setFormat(settings.value(QString("X-AW-Format"), format()).toString());
+ setTranslateString(
+ settings.value(QString("X-AW-Translate"), translateString()).toBool());
settings.endGroup();
bumpApi(AWEFAPI);
@@ -109,14 +127,18 @@ int AWDateTimeFormatter::showConfiguration(const QVariant args)
ui->lineEdit_comment->setText(comment());
ui->label_typeValue->setText(QString("DateTime"));
ui->lineEdit_format->setText(format());
+ ui->checkBox_translate->setCheckState(translateString() ? Qt::Checked
+ : Qt::Unchecked);
int ret = exec();
if (ret != 1)
return ret;
setName(ui->lineEdit_name->text());
setComment(ui->lineEdit_comment->text());
+ setApiVersion(AWEFAPI);
setStrType(ui->label_typeValue->text());
setFormat(ui->lineEdit_format->text());
+ setTranslateString(ui->checkBox_translate->checkState() == Qt::Checked);
writeConfiguration();
return ret;
@@ -132,16 +154,24 @@ void AWDateTimeFormatter::writeConfiguration() const
settings.beginGroup(QString("Desktop Entry"));
settings.setValue(QString("X-AW-Format"), format());
+ settings.setValue(QString("X-AW-Translate"), translateString());
settings.endGroup();
settings.sync();
}
+void AWDateTimeFormatter::initLocale()
+{
+ m_locale = m_translate ? QLocale::system() : QLocale::c();
+}
+
+
void AWDateTimeFormatter::translate()
{
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_type->setText(i18n("Type"));
ui->label_format->setText(i18n("Format"));
+ ui->checkBox_translate->setText(i18n("Translate strings"));
}
diff --git a/sources/awesomewidgets/awdatetimeformatter.h b/sources/awesomewidgets/awdatetimeformatter.h
index 30f328b..0cdf153 100644
--- a/sources/awesomewidgets/awdatetimeformatter.h
+++ b/sources/awesomewidgets/awdatetimeformatter.h
@@ -19,6 +19,7 @@
#define AWDATETIMEFORMATTER_H
#include "awabstractformatter.h"
+#include
namespace Ui
@@ -30,6 +31,8 @@ class AWDateTimeFormatter : public AWAbstractFormatter
{
Q_OBJECT
Q_PROPERTY(QString format READ format WRITE setFormat)
+ Q_PROPERTY(
+ bool translateString READ translateString WRITE setTranslateString)
public:
explicit AWDateTimeFormatter(QWidget *parent,
@@ -39,7 +42,9 @@ public:
AWDateTimeFormatter *copy(const QString _fileName, const int _number);
// properties
QString format() const;
+ bool translateString() const;
void setFormat(const QString _format);
+ void setTranslateString(const bool _translate);
public slots:
void readConfiguration();
@@ -48,9 +53,12 @@ public slots:
private:
Ui::AWDateTimeFormatter *ui = nullptr;
+ void initLocale();
void translate();
// properties
+ QLocale m_locale;
QString m_format = QString();
+ bool m_translate = true;
};
diff --git a/sources/awesomewidgets/awdatetimeformatter.ui b/sources/awesomewidgets/awdatetimeformatter.ui
index f0f80dc..b761f1d 100644
--- a/sources/awesomewidgets/awdatetimeformatter.ui
+++ b/sources/awesomewidgets/awdatetimeformatter.ui
@@ -7,7 +7,7 @@
0
0
420
- 157
+ 185
@@ -104,6 +104,36 @@
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Translate strings
+
+
+
+
+
-
diff --git a/sources/awesomewidgets/awfloatformatter.cpp b/sources/awesomewidgets/awfloatformatter.cpp
index b27625c..24585bf 100644
--- a/sources/awesomewidgets/awfloatformatter.cpp
+++ b/sources/awesomewidgets/awfloatformatter.cpp
@@ -236,6 +236,7 @@ int AWFloatFormatter::showConfiguration(const QVariant args)
return ret;
setName(ui->lineEdit_name->text());
setComment(ui->lineEdit_comment->text());
+ setApiVersion(AWEFAPI);
setStrType(ui->label_typeValue->text());
setFormat(ui->comboBox_format->currentText().at(0).toLatin1());
setPrecision(ui->spinBox_precision->value());
@@ -260,7 +261,7 @@ void AWFloatFormatter::writeConfiguration() const
settings.beginGroup(QString("Desktop Entry"));
settings.setValue(QString("X-AW-Width"), count());
settings.setValue(QString("X-AW-FillChar"), fillChar());
- settings.setValue(QString("X-AW-Format"), format());
+ settings.setValue(QString("X-AW-Format"), QString(format()));
settings.setValue(QString("X-AW-ForceWidth"), forceWidth());
settings.setValue(QString("X-AW-Multiplier"), multiplier());
settings.setValue(QString("X-AW-Precision"), precision());
diff --git a/sources/awesomewidgets/awlistformatter.cpp b/sources/awesomewidgets/awlistformatter.cpp
index 40e2239..030db59 100644
--- a/sources/awesomewidgets/awlistformatter.cpp
+++ b/sources/awesomewidgets/awlistformatter.cpp
@@ -153,6 +153,7 @@ int AWListFormatter::showConfiguration(const QVariant args)
return ret;
setName(ui->lineEdit_name->text());
setComment(ui->lineEdit_comment->text());
+ setApiVersion(AWEFAPI);
setStrType(ui->label_typeValue->text());
setFilter(ui->lineEdit_filter->text());
setSeparator(ui->lineEdit_separator->text());
diff --git a/sources/awesomewidgets/awnoformatter.cpp b/sources/awesomewidgets/awnoformatter.cpp
index e1e3ddb..9c1734f 100644
--- a/sources/awesomewidgets/awnoformatter.cpp
+++ b/sources/awesomewidgets/awnoformatter.cpp
@@ -79,6 +79,7 @@ int AWNoFormatter::showConfiguration(const QVariant args)
return ret;
setName(ui->lineEdit_name->text());
setComment(ui->lineEdit_comment->text());
+ setApiVersion(AWEFAPI);
setStrType(ui->label_typeValue->text());
writeConfiguration();
diff --git a/sources/awesomewidgets/awscriptformatter.cpp b/sources/awesomewidgets/awscriptformatter.cpp
index 380b9ee..3b15c9e 100644
--- a/sources/awesomewidgets/awscriptformatter.cpp
+++ b/sources/awesomewidgets/awscriptformatter.cpp
@@ -174,6 +174,7 @@ int AWScriptFormatter::showConfiguration(const QVariant args)
return ret;
setName(ui->lineEdit_name->text());
setComment(ui->lineEdit_comment->text());
+ setApiVersion(AWEFAPI);
setStrType(ui->label_typeValue->text());
setAppendCode(ui->checkBox_appendCode->checkState() == Qt::Checked);
setHasReturn(ui->checkBox_hasReturn->checkState() == Qt::Checked);
diff --git a/sources/awesomewidgets/awstringformatter.cpp b/sources/awesomewidgets/awstringformatter.cpp
index acff42c..a15e416 100644
--- a/sources/awesomewidgets/awstringformatter.cpp
+++ b/sources/awesomewidgets/awstringformatter.cpp
@@ -154,6 +154,7 @@ int AWStringFormatter::showConfiguration(const QVariant args)
return ret;
setName(ui->lineEdit_name->text());
setComment(ui->lineEdit_comment->text());
+ setApiVersion(AWEFAPI);
setStrType(ui->label_typeValue->text());
setCount(ui->spinBox_width->value());
setFillChar(ui->lineEdit_fill->text().at(0));
diff --git a/sources/awesomewidgets/extquotes.cpp b/sources/awesomewidgets/extquotes.cpp
index 830636b..aead4a3 100644
--- a/sources/awesomewidgets/extquotes.cpp
+++ b/sources/awesomewidgets/extquotes.cpp
@@ -44,15 +44,15 @@ ExtQuotes::ExtQuotes(QWidget *parent, const QString filePath)
ui->setupUi(this);
translate();
- values[tag(QString("ask"))] = 0.0;
- values[tag(QString("askchg"))] = 0.0;
- values[tag(QString("percaskchg"))] = 0.0;
- values[tag(QString("bid"))] = 0.0;
- values[tag(QString("bidchg"))] = 0.0;
- values[tag(QString("percbidchg"))] = 0.0;
- values[tag(QString("price"))] = 0.0;
- values[tag(QString("pricechg"))] = 0.0;
- values[tag(QString("percpricechg"))] = 0.0;
+ m_values[tag(QString("ask"))] = 0.0;
+ m_values[tag(QString("askchg"))] = 0.0;
+ m_values[tag(QString("percaskchg"))] = 0.0;
+ m_values[tag(QString("bid"))] = 0.0;
+ m_values[tag(QString("bidchg"))] = 0.0;
+ m_values[tag(QString("percbidchg"))] = 0.0;
+ m_values[tag(QString("price"))] = 0.0;
+ m_values[tag(QString("pricechg"))] = 0.0;
+ m_values[tag(QString("percpricechg"))] = 0.0;
// HACK declare as child of nullptr to avoid crash with plasmawindowed
// in the destructor
@@ -119,36 +119,28 @@ void ExtQuotes::readConfiguration()
setTicker(settings.value(QString("X-AW-Ticker"), ticker()).toString());
settings.endGroup();
- // update for current API
- if ((apiVersion() > 0) && (apiVersion() < AWEQAPI)) {
- qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to"
- << AWEQAPI;
- setApiVersion(AWEQAPI);
- writeConfiguration();
- }
-
bumpApi(AWEQAPI);
}
QVariantHash ExtQuotes::run()
{
- if ((!isActive()) || (isRunning))
- return values;
+ if ((!isActive()) || (m_isRunning))
+ return m_values;
- if (times == 1) {
+ if (m_times == 1) {
qCInfo(LOG_LIB) << "Send request";
- isRunning = true;
+ m_isRunning = true;
QNetworkReply *reply = m_manager->get(QNetworkRequest(m_url));
new QReplyTimeout(reply, REQUEST_TIMEOUT);
}
// update value
- if (times >= interval())
- times = 0;
- times++;
+ if (m_times >= interval())
+ m_times = 0;
+ m_times++;
- return values;
+ return m_values;
}
@@ -199,7 +191,7 @@ void ExtQuotes::quotesReplyReceived(QNetworkReply *reply)
qCDebug(LOG_LIB) << "Return code" << reply->error() << "with message"
<< reply->errorString();
- isRunning = false;
+ m_isRunning = false;
QJsonParseError error;
QJsonDocument jsonDoc = QJsonDocument::fromJson(reply->readAll(), &error);
reply->deleteLater();
@@ -216,38 +208,38 @@ void ExtQuotes::quotesReplyReceived(QNetworkReply *reply)
// ask
value = jsonQuotes[QString("Ask")].toString().toDouble();
- values[tag(QString("askchg"))]
- = values[tag(QString("ask"))].toDouble() == 0.0
+ m_values[tag(QString("askchg"))]
+ = m_values[tag(QString("ask"))].toDouble() == 0.0
? 0.0
- : value - values[tag(QString("ask"))].toDouble();
- values[tag(QString("percaskchg"))]
- = 100.0 * values[tag(QString("askchg"))].toDouble()
- / values[tag(QString("ask"))].toDouble();
- values[tag(QString("ask"))] = value;
+ : value - m_values[tag(QString("ask"))].toDouble();
+ m_values[tag(QString("percaskchg"))]
+ = 100.0 * m_values[tag(QString("askchg"))].toDouble()
+ / m_values[tag(QString("ask"))].toDouble();
+ m_values[tag(QString("ask"))] = value;
// bid
value = jsonQuotes[QString("Bid")].toString().toDouble();
- values[tag(QString("bidchg"))]
- = values[tag(QString("bid"))].toDouble() == 0.0
+ m_values[tag(QString("bidchg"))]
+ = m_values[tag(QString("bid"))].toDouble() == 0.0
? 0.0
- : value - values[tag(QString("bid"))].toDouble();
- values[tag(QString("percbidchg"))]
- = 100.0 * values[tag(QString("bidchg"))].toDouble()
- / values[tag(QString("bid"))].toDouble();
- values[tag(QString("bid"))] = value;
+ : value - m_values[tag(QString("bid"))].toDouble();
+ m_values[tag(QString("percbidchg"))]
+ = 100.0 * m_values[tag(QString("bidchg"))].toDouble()
+ / m_values[tag(QString("bid"))].toDouble();
+ m_values[tag(QString("bid"))] = value;
// last trade
value = jsonQuotes[QString("LastTradePriceOnly")].toString().toDouble();
- values[tag(QString("pricechg"))]
- = values[tag(QString("price"))].toDouble() == 0.0
+ m_values[tag(QString("pricechg"))]
+ = m_values[tag(QString("price"))].toDouble() == 0.0
? 0.0
- : value - values[tag(QString("price"))].toDouble();
- values[tag(QString("percpricechg"))]
- = 100.0 * values[tag(QString("pricechg"))].toDouble()
- / values[tag(QString("price"))].toDouble();
- values[tag(QString("price"))] = value;
+ : value - m_values[tag(QString("price"))].toDouble();
+ m_values[tag(QString("percpricechg"))]
+ = 100.0 * m_values[tag(QString("pricechg"))].toDouble()
+ / m_values[tag(QString("price"))].toDouble();
+ m_values[tag(QString("price"))] = value;
- emit(dataReceived(values));
+ emit(dataReceived(m_values));
}
diff --git a/sources/awesomewidgets/extquotes.h b/sources/awesomewidgets/extquotes.h
index d5e2256..bf70c83 100644
--- a/sources/awesomewidgets/extquotes.h
+++ b/sources/awesomewidgets/extquotes.h
@@ -59,15 +59,15 @@ private slots:
private:
QNetworkAccessManager *m_manager = nullptr;
QUrl m_url;
- bool isRunning = false;
+ bool m_isRunning = false;
Ui::ExtQuotes *ui = nullptr;
void initUrl();
void translate();
// properties
QString m_ticker = QString("EURUSD=X");
// values
- int times = 0;
- QVariantHash values;
+ int m_times = 0;
+ QVariantHash m_values;
};
diff --git a/sources/awesomewidgets/extscript.cpp b/sources/awesomewidgets/extscript.cpp
index b090721..781413b 100644
--- a/sources/awesomewidgets/extscript.cpp
+++ b/sources/awesomewidgets/extscript.cpp
@@ -42,12 +42,12 @@ ExtScript::ExtScript(QWidget *parent, const QString filePath)
ui->setupUi(this);
translate();
- value[tag(QString("custom"))] = QString("");
+ m_values[tag(QString("custom"))] = QString("");
- process = new QProcess(nullptr);
- connect(process, SIGNAL(finished(int, QProcess::ExitStatus)), this,
+ m_process = new QProcess(nullptr);
+ connect(m_process, SIGNAL(finished(int, QProcess::ExitStatus)), this,
SLOT(updateValue()));
- process->waitForFinished(0);
+ m_process->waitForFinished(0);
}
@@ -55,8 +55,8 @@ ExtScript::~ExtScript()
{
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
- process->kill();
- process->deleteLater();
+ m_process->kill();
+ m_process->deleteLater();
delete ui;
}
@@ -184,7 +184,7 @@ QString ExtScript::applyFilters(QString _value) const
for (auto filt : filters()) {
qCInfo(LOG_LIB) << "Found filter" << filt;
- QVariantMap filter = jsonFilters[filt].toMap();
+ QVariantMap filter = m_jsonFilters[filt].toMap();
if (filter.isEmpty()) {
qCWarning(LOG_LIB) << "Could not find filter" << _value
<< "in the json";
@@ -254,35 +254,35 @@ void ExtScript::readJsonFilters()
qCWarning(LOG_LIB) << "Parse error" << error.errorString();
return;
}
- jsonFilters = jsonDoc.toVariant().toMap();
+ m_jsonFilters = jsonDoc.toVariant().toMap();
- qCInfo(LOG_LIB) << "Filters" << jsonFilters;
+ qCInfo(LOG_LIB) << "Filters" << m_jsonFilters;
}
QVariantHash ExtScript::run()
{
if (!isActive())
- return value;
- if (process->state() != QProcess::NotRunning)
+ return m_values;
+ if (m_process->state() != QProcess::NotRunning)
qCWarning(LOG_LIB) << "Another process is already running"
- << process->state();
+ << m_process->state();
- if ((times == 1) && (process->state() == QProcess::NotRunning)) {
+ if ((m_times == 1) && (m_process->state() == QProcess::NotRunning)) {
QStringList cmdList;
if (!prefix().isEmpty())
cmdList.append(prefix());
cmdList.append(executable());
qCInfo(LOG_LIB) << "Run cmd" << cmdList.join(QChar(' '));
- process->start(cmdList.join(QChar(' ')));
+ m_process->start(cmdList.join(QChar(' ')));
}
// update value
- if (times >= interval())
- times = 0;
- times++;
+ if (m_times >= interval())
+ m_times = 0;
+ m_times++;
- return value;
+ return m_values;
}
@@ -352,13 +352,13 @@ void ExtScript::writeConfiguration() const
void ExtScript::updateValue()
{
- qCInfo(LOG_LIB) << "Cmd returns" << process->exitCode();
+ qCInfo(LOG_LIB) << "Cmd returns" << m_process->exitCode();
QString qdebug = QTextCodec::codecForMib(106)
- ->toUnicode(process->readAllStandardError())
+ ->toUnicode(m_process->readAllStandardError())
.trimmed();
qCInfo(LOG_LIB) << "Error" << qdebug;
QString qoutput = QTextCodec::codecForMib(106)
- ->toUnicode(process->readAllStandardOutput())
+ ->toUnicode(m_process->readAllStandardOutput())
.trimmed();
qCInfo(LOG_LIB) << "Output" << qoutput;
QString strValue;
@@ -378,8 +378,8 @@ void ExtScript::updateValue()
}
// filters
- value[tag(QString("custom"))] = applyFilters(strValue);
- emit(dataReceived(value));
+ m_values[tag(QString("custom"))] = applyFilters(strValue);
+ emit(dataReceived(m_values));
}
diff --git a/sources/awesomewidgets/extscript.h b/sources/awesomewidgets/extscript.h
index 5189a63..e9dd192 100644
--- a/sources/awesomewidgets/extscript.h
+++ b/sources/awesomewidgets/extscript.h
@@ -76,7 +76,7 @@ private slots:
void updateValue();
private:
- QProcess *process = nullptr;
+ QProcess *m_process = nullptr;
Ui::ExtScript *ui = nullptr;
void translate();
// properties
@@ -85,9 +85,9 @@ private:
QString m_prefix = QString("");
Redirect m_redirect = Redirect::nothing;
// internal properties
- QVariantMap jsonFilters = QVariantMap();
- int times = 0;
- QVariantHash value;
+ QVariantMap m_jsonFilters = QVariantMap();
+ int m_times = 0;
+ QVariantHash m_values;
};
diff --git a/sources/awesomewidgets/extupgrade.cpp b/sources/awesomewidgets/extupgrade.cpp
index f3f8381..ef73a6d 100644
--- a/sources/awesomewidgets/extupgrade.cpp
+++ b/sources/awesomewidgets/extupgrade.cpp
@@ -39,11 +39,11 @@ ExtUpgrade::ExtUpgrade(QWidget *parent, const QString filePath)
ui->setupUi(this);
translate();
- value[tag(QString("pkgcount"))] = 0;
+ m_values[tag(QString("pkgcount"))] = 0;
- process = new QProcess(nullptr);
- connect(process, SIGNAL(finished(int)), this, SLOT(updateValue()));
- process->waitForFinished(0);
+ m_process = new QProcess(nullptr);
+ connect(m_process, SIGNAL(finished(int)), this, SLOT(updateValue()));
+ m_process->waitForFinished(0);
}
@@ -51,8 +51,8 @@ ExtUpgrade::~ExtUpgrade()
{
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
- process->kill();
- process->deleteLater();
+ m_process->kill();
+ m_process->deleteLater();
delete ui;
}
@@ -143,20 +143,20 @@ void ExtUpgrade::readConfiguration()
QVariantHash ExtUpgrade::run()
{
if (!isActive())
- return value;
+ return m_values;
- if ((times == 1) && (process->state() == QProcess::NotRunning)) {
+ if ((m_times == 1) && (m_process->state() == QProcess::NotRunning)) {
QString cmd = QString("sh -c \"%1\"").arg(executable());
qCInfo(LOG_LIB) << "Run cmd" << cmd;
- process->start(cmd);
+ m_process->start(cmd);
}
// update value
- if (times >= interval())
- times = 0;
- times++;
+ if (m_times >= interval())
+ m_times = 0;
+ m_times++;
- return value;
+ return m_values;
}
@@ -211,13 +211,13 @@ void ExtUpgrade::writeConfiguration() const
void ExtUpgrade::updateValue()
{
- qCInfo(LOG_LIB) << "Cmd returns" << process->exitCode();
- qCInfo(LOG_LIB) << "Error" << process->readAllStandardError();
+ qCInfo(LOG_LIB) << "Cmd returns" << m_process->exitCode();
+ qCInfo(LOG_LIB) << "Error" << m_process->readAllStandardError();
QString qoutput = QTextCodec::codecForMib(106)
- ->toUnicode(process->readAllStandardOutput())
+ ->toUnicode(m_process->readAllStandardOutput())
.trimmed();
- value[tag(QString("pkgcount"))] = [this](QString output) {
+ m_values[tag(QString("pkgcount"))] = [this](QString output) {
return filter().isEmpty()
? output.split(QChar('\n'), QString::SkipEmptyParts).count()
- null()
@@ -226,7 +226,7 @@ void ExtUpgrade::updateValue()
.count();
}(qoutput);
- emit(dataReceived(value));
+ emit(dataReceived(m_values));
}
diff --git a/sources/awesomewidgets/extupgrade.h b/sources/awesomewidgets/extupgrade.h
index 0c94b45..673a4a4 100644
--- a/sources/awesomewidgets/extupgrade.h
+++ b/sources/awesomewidgets/extupgrade.h
@@ -59,7 +59,7 @@ private slots:
void updateValue();
private:
- QProcess *process = nullptr;
+ QProcess *m_process = nullptr;
Ui::ExtUpgrade *ui = nullptr;
void translate();
// properties
@@ -67,8 +67,8 @@ private:
QString m_filter = QString("");
int m_null = 0;
// internal properties
- int times = 0;
- QVariantHash value;
+ int m_times = 0;
+ QVariantHash m_values;
};
diff --git a/sources/awesomewidgets/extweather.cpp b/sources/awesomewidgets/extweather.cpp
index d09f3a6..3035efa 100644
--- a/sources/awesomewidgets/extweather.cpp
+++ b/sources/awesomewidgets/extweather.cpp
@@ -47,11 +47,11 @@ ExtWeather::ExtWeather(QWidget *parent, const QString filePath)
ui->setupUi(this);
translate();
- values[tag(QString("weatherId"))] = 0;
- values[tag(QString("weather"))] = QString("");
- values[tag(QString("humidity"))] = 0;
- values[tag(QString("pressure"))] = 0.0;
- values[tag(QString("temperature"))] = 0.0;
+ m_values[tag(QString("weatherId"))] = 0;
+ m_values[tag(QString("weather"))] = QString("");
+ m_values[tag(QString("humidity"))] = 0;
+ m_values[tag(QString("pressure"))] = 0.0;
+ m_values[tag(QString("temperature"))] = 0.0;
// HACK declare as child of nullptr to avoid crash with plasmawindowed
// in the destructor
@@ -259,23 +259,23 @@ void ExtWeather::readJsonMap()
QVariantHash ExtWeather::run()
{
- if ((!isActive()) || (isRunning))
- return values;
+ if ((!isActive()) || (m_isRunning))
+ return m_values;
- if (times == 1) {
+ if (m_times == 1) {
qCInfo(LOG_LIB) << "Send request";
- isRunning = true;
+ m_isRunning = true;
QNetworkReply *reply
= m_manager->get(QNetworkRequest(m_providerObject->url()));
new QReplyTimeout(reply, REQUEST_TIMEOUT);
}
// update value
- if (times >= interval())
- times = 0;
- times++;
+ if (m_times >= interval())
+ m_times = 0;
+ m_times++;
- return values;
+ return m_values;
}
@@ -339,7 +339,7 @@ void ExtWeather::weatherReplyReceived(QNetworkReply *reply)
qCDebug(LOG_LIB) << "Return code" << reply->error() << "with message"
<< reply->errorString();
- isRunning = false;
+ m_isRunning = false;
QJsonParseError error;
QJsonDocument jsonDoc = QJsonDocument::fromJson(reply->readAll(), &error);
reply->deleteLater();
@@ -352,11 +352,11 @@ void ExtWeather::weatherReplyReceived(QNetworkReply *reply)
QVariantHash data = m_providerObject->parse(jsonDoc.toVariant().toMap());
if (data.isEmpty())
return;
- values = data;
- values[tag(QString("weather"))]
- = weatherFromInt(values[tag(QString("weatherId"))].toInt());
+ m_values = data;
+ m_values[tag(QString("weather"))]
+ = weatherFromInt(m_values[tag(QString("weatherId"))].toInt());
- emit(dataReceived(values));
+ emit(dataReceived(m_values));
}
diff --git a/sources/awesomewidgets/extweather.h b/sources/awesomewidgets/extweather.h
index 8ee174c..3a775ce 100644
--- a/sources/awesomewidgets/extweather.h
+++ b/sources/awesomewidgets/extweather.h
@@ -75,7 +75,7 @@ private slots:
private:
QNetworkAccessManager *m_manager = nullptr;
AbstractWeatherProvider *m_providerObject = nullptr;
- bool isRunning = false;
+ bool m_isRunning = false;
Ui::ExtWeather *ui = nullptr;
void initProvider();
void translate();
@@ -87,8 +87,8 @@ private:
int m_ts = 0;
QVariantMap m_jsonMap = QVariantMap();
// values
- int times = 0;
- QVariantHash values;
+ int m_times = 0;
+ QVariantHash m_values;
};
diff --git a/sources/awesomewidgets/formatters/default-float.desktop b/sources/awesomewidgets/formatters/default-float.desktop
new file mode 100644
index 0000000..f83a304
--- /dev/null
+++ b/sources/awesomewidgets/formatters/default-float.desktop
@@ -0,0 +1,16 @@
+[Desktop%20Entry]
+Comment=Default float formatter
+Encoding=UTF-8
+Name=Float
+X-AW-Active=true
+X-AW-ApiVersion=2
+X-AW-FillChar=@Variant(\0\0\0\a\0\0)
+X-AW-ForceWidth=false
+X-AW-Format=f
+X-AW-Interval=1
+X-AW-Multiplier=1
+X-AW-Number=0
+X-AW-Precision=1
+X-AW-Summand=0
+X-AW-Type=Float
+X-AW-Width=5
diff --git a/sources/awesomewidgets/formatters/default-integer.desktop b/sources/awesomewidgets/formatters/default-integer.desktop
new file mode 100644
index 0000000..1c36748
--- /dev/null
+++ b/sources/awesomewidgets/formatters/default-integer.desktop
@@ -0,0 +1,16 @@
+[Desktop%20Entry]
+Comment=Default integer formatter
+Encoding=UTF-8
+Name=Integer
+X-AW-Active=true
+X-AW-ApiVersion=2
+X-AW-FillChar=@Variant(\0\0\0\a\0\0)
+X-AW-ForceWidth=false
+X-AW-Format=f
+X-AW-Interval=1
+X-AW-Multiplier=1
+X-AW-Number=2
+X-AW-Precision=0
+X-AW-Summand=0
+X-AW-Type=Float
+X-AW-Width=4
diff --git a/sources/awesomewidgets/formatters/default-list.desktop b/sources/awesomewidgets/formatters/default-list.desktop
new file mode 100644
index 0000000..da6c740
--- /dev/null
+++ b/sources/awesomewidgets/formatters/default-list.desktop
@@ -0,0 +1,12 @@
+[Desktop%20Entry]
+Comment=Default list formatter
+Encoding=UTF-8
+Name=List
+X-AW-Active=true
+X-AW-ApiVersion=2
+X-AW-Filter=
+X-AW-Interval=1
+X-AW-Number=5
+X-AW-Separator=","
+X-AW-Sort=false
+X-AW-Type=NoFormat
diff --git a/sources/awesomewidgets/formatters/float-two-symbols.desktop b/sources/awesomewidgets/formatters/float-two-symbols.desktop
new file mode 100644
index 0000000..29e2a2a
--- /dev/null
+++ b/sources/awesomewidgets/formatters/float-two-symbols.desktop
@@ -0,0 +1,16 @@
+[Desktop%20Entry]
+Comment=Float formatter with two symbols
+Encoding=UTF-8
+Name=FloatTwoSymbols
+X-AW-Active=true
+X-AW-ApiVersion=2
+X-AW-FillChar=@Variant(\0\0\0\a\0\0)
+X-AW-ForceWidth=false
+X-AW-Format=f
+X-AW-Interval=1
+X-AW-Multiplier=1
+X-AW-Number=1
+X-AW-Precision=2
+X-AW-Summand=0
+X-AW-Type=Float
+X-AW-Width=5
diff --git a/sources/awesomewidgets/formatters/long-integer.desktop b/sources/awesomewidgets/formatters/long-integer.desktop
new file mode 100644
index 0000000..e3aabd0
--- /dev/null
+++ b/sources/awesomewidgets/formatters/long-integer.desktop
@@ -0,0 +1,16 @@
+[Desktop%20Entry]
+Comment=Long integer formatter
+Encoding=UTF-8
+Name=LongInteger
+X-AW-Active=true
+X-AW-ApiVersion=2
+X-AW-FillChar=@Variant(\0\0\0\a\0\0)
+X-AW-ForceWidth=false
+X-AW-Format=f
+X-AW-Interval=1
+X-AW-Multiplier=1
+X-AW-Number=3
+X-AW-Precision=0
+X-AW-Summand=0
+X-AW-Type=Float
+X-AW-Width=5
diff --git a/sources/awesomewidgets/formatters/memory-gb.desktop b/sources/awesomewidgets/formatters/memory-gb.desktop
new file mode 100644
index 0000000..f7de14d
--- /dev/null
+++ b/sources/awesomewidgets/formatters/memory-gb.desktop
@@ -0,0 +1,16 @@
+[Desktop%20Entry]
+Comment=Memory in GB formatter
+Encoding=UTF-8
+Name=MemGB
+X-AW-Active=true
+X-AW-ApiVersion=2
+X-AW-FillChar=@Variant(\0\0\0\a\0\0)
+X-AW-ForceWidth=false
+X-AW-Format=f
+X-AW-Interval=1
+X-AW-Multiplier=1048576
+X-AW-Number=6
+X-AW-Precision=1
+X-AW-Summand=0
+X-AW-Type=Float
+X-AW-Width=5
diff --git a/sources/awesomewidgets/formatters/memory-mb.desktop b/sources/awesomewidgets/formatters/memory-mb.desktop
new file mode 100644
index 0000000..a54d376
--- /dev/null
+++ b/sources/awesomewidgets/formatters/memory-mb.desktop
@@ -0,0 +1,16 @@
+[Desktop%20Entry]
+Comment=Memory in MB formatter
+Encoding=UTF-8
+Name=MemMB
+X-AW-Active=true
+X-AW-ApiVersion=2
+X-AW-FillChar=@Variant(\0\0\0\a\0\0)
+X-AW-ForceWidth=false
+X-AW-Format=f
+X-AW-Interval=1
+X-AW-Multiplier=1024
+X-AW-Number=7
+X-AW-Precision=0
+X-AW-Summand=0
+X-AW-Type=Float
+X-AW-Width=5
diff --git a/sources/awesomewidgets/formatters/short-integer.desktop b/sources/awesomewidgets/formatters/short-integer.desktop
new file mode 100644
index 0000000..28e398d
--- /dev/null
+++ b/sources/awesomewidgets/formatters/short-integer.desktop
@@ -0,0 +1,16 @@
+[Desktop%20Entry]
+Comment=Short integer formatter
+Encoding=UTF-8
+Name=ShortInteger
+X-AW-Active=true
+X-AW-ApiVersion=2
+X-AW-FillChar=@Variant(\0\0\0\a\0\0)
+X-AW-ForceWidth=false
+X-AW-Format=f
+X-AW-Interval=1
+X-AW-Multiplier=1
+X-AW-Number=4
+X-AW-Precision=0
+X-AW-Summand=0
+X-AW-Type=Float
+X-AW-Width=3
diff --git a/sources/awesomewidgets/graphicalitemhelper.h b/sources/awesomewidgets/graphicalitemhelper.h
index ee83e7e..171b7f4 100644
--- a/sources/awesomewidgets/graphicalitemhelper.h
+++ b/sources/awesomewidgets/graphicalitemhelper.h
@@ -27,6 +27,8 @@ class QGraphicsScene;
class GraphicalItemHelper : public QObject
{
+ Q_OBJECT
+
public:
explicit GraphicalItemHelper(QObject *parent = nullptr,
QGraphicsScene *scene = nullptr);
diff --git a/sources/awesomewidgets/owmweatherprovider.h b/sources/awesomewidgets/owmweatherprovider.h
index 6f8b639..409b7b0 100644
--- a/sources/awesomewidgets/owmweatherprovider.h
+++ b/sources/awesomewidgets/owmweatherprovider.h
@@ -20,12 +20,16 @@
#include "abstractweatherprovider.h"
+// we are using own server to pass requests to OpenWeatherMap because it
+// requires specific APPID which belongs to developer not user
#define OWM_WEATHER_URL "http://arcanis.me/weather"
#define OWM_FORECAST_URL "http://arcanis.me/forecast"
class OWMWeatherProvider : public AbstractWeatherProvider
{
+ Q_OBJECT
+
public:
explicit OWMWeatherProvider(QObject *parent, const int number);
virtual ~OWMWeatherProvider();
diff --git a/sources/awesomewidgets/yahooweatherprovider.h b/sources/awesomewidgets/yahooweatherprovider.h
index d5c997f..d8cfa76 100644
--- a/sources/awesomewidgets/yahooweatherprovider.h
+++ b/sources/awesomewidgets/yahooweatherprovider.h
@@ -28,6 +28,8 @@
class YahooWeatherProvider : public AbstractWeatherProvider
{
+ Q_OBJECT
+
public:
explicit YahooWeatherProvider(QObject *parent, const int number);
virtual ~YahooWeatherProvider();
diff --git a/sources/desktop-panel/package/metadata.desktop b/sources/desktop-panel/package/metadata.desktop
index 93a7731..dddb935 100644
--- a/sources/desktop-panel/package/metadata.desktop
+++ b/sources/desktop-panel/package/metadata.desktop
@@ -20,7 +20,7 @@ X-Plasma-RemoteLocation=
X-KDE-PluginInfo-Author=Evgeniy Alekseev aka arcanis
X-KDE-PluginInfo-Email=esalexeev@gmail.com
X-KDE-PluginInfo-Name=org.kde.plasma.desktoppanel
-X-KDE-PluginInfo-Version=3.1.2
+X-KDE-PluginInfo-Version=3.2.1
X-KDE-PluginInfo-Website=https://arcanis.me/projects/awesome-widgets/
X-KDE-PluginInfo-Category=System Information
X-KDE-PluginInfo-Depends=
diff --git a/sources/extsysmon/extsysmon.cpp b/sources/extsysmon/extsysmon.cpp
index a48b8e7..154289f 100644
--- a/sources/extsysmon/extsysmon.cpp
+++ b/sources/extsysmon/extsysmon.cpp
@@ -41,9 +41,9 @@ ExtendedSysMon::ExtendedSysMon(QObject *parent, const QVariantList &args)
readConfiguration();
// init aggregator
- aggregator = new ExtSysMonAggregator(this, configuration);
- for (auto source : aggregator->sources())
- setData(source, aggregator->initialData(source));
+ m_aggregator = new ExtSysMonAggregator(this, m_configuration);
+ for (auto source : m_aggregator->sources())
+ setData(source, m_aggregator->initialData(source));
}
@@ -51,13 +51,13 @@ ExtendedSysMon::~ExtendedSysMon()
{
qCDebug(LOG_ESM) << __PRETTY_FUNCTION__;
- delete aggregator;
+ delete m_aggregator;
}
QStringList ExtendedSysMon::sources() const
{
- return aggregator->sources();
+ return m_aggregator->sources();
}
@@ -73,8 +73,8 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source)
{
qCDebug(LOG_ESM) << "Source" << source;
- if (aggregator->hasSource(source)) {
- QVariant data = aggregator->data(source);
+ if (m_aggregator->hasSource(source)) {
+ QVariant data = m_aggregator->data(source);
if (data.isNull())
return false;
setData(source, QString("value"), data);
@@ -121,7 +121,7 @@ void ExtendedSysMon::readConfiguration()
= settings.value(QString("PLAYERSYMBOLS"), QString("10")).toString();
settings.endGroup();
- configuration = updateConfiguration(rawConfig);
+ m_configuration = updateConfiguration(rawConfig);
}
diff --git a/sources/extsysmon/extsysmon.h b/sources/extsysmon/extsysmon.h
index 7ec57df..49d48cc 100644
--- a/sources/extsysmon/extsysmon.h
+++ b/sources/extsysmon/extsysmon.h
@@ -38,8 +38,8 @@ protected:
private:
// configuration
- ExtSysMonAggregator *aggregator = nullptr;
- QHash configuration;
+ ExtSysMonAggregator *m_aggregator = nullptr;
+ QHash m_configuration;
// methods
void readConfiguration();
QHash
diff --git a/sources/extsysmonsources/batterysource.h b/sources/extsysmonsources/batterysource.h
index 4779641..2c49b0d 100644
--- a/sources/extsysmonsources/batterysource.h
+++ b/sources/extsysmonsources/batterysource.h
@@ -25,6 +25,8 @@
class BatterySource : public AbstractExtSysMonSource
{
+ Q_OBJECT
+
public:
explicit BatterySource(QObject *parent, const QStringList args);
virtual ~BatterySource();
diff --git a/sources/extsysmonsources/customsource.cpp b/sources/extsysmonsources/customsource.cpp
index 54763f1..2180b14 100644
--- a/sources/extsysmonsources/customsource.cpp
+++ b/sources/extsysmonsources/customsource.cpp
@@ -28,7 +28,8 @@ CustomSource::CustomSource(QObject *parent, const QStringList args)
Q_ASSERT(args.count() == 0);
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
- extScripts = new ExtItemAggregator(nullptr, QString("scripts"));
+ m_extScripts
+ = new ExtItemAggregator(nullptr, QString("scripts"));
m_sources = getSources();
}
@@ -37,7 +38,7 @@ CustomSource::~CustomSource()
{
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
- delete extScripts;
+ delete m_extScripts;
}
@@ -46,7 +47,7 @@ QVariant CustomSource::data(QString source)
qCDebug(LOG_ESS) << "Source" << source;
// there are only one value
- return extScripts->itemByTagNumber(index(source))->run().values().first();
+ return m_extScripts->itemByTagNumber(index(source))->run().values().first();
}
@@ -59,7 +60,7 @@ QVariantMap CustomSource::initialData(QString source) const
data[QString("max")] = QString("");
data[QString("name")]
= QString("Custom command '%1' output")
- .arg(extScripts->itemByTagNumber(index(source))->uniq());
+ .arg(m_extScripts->itemByTagNumber(index(source))->uniq());
data[QString("type")] = QString("QString");
data[QString("units")] = QString("");
@@ -76,7 +77,7 @@ QStringList CustomSource::sources() const
QStringList CustomSource::getSources()
{
QStringList sources;
- for (auto item : extScripts->activeItems())
+ for (auto item : m_extScripts->activeItems())
sources.append(QString("custom/%1").arg(item->tag(QString("custom"))));
return sources;
diff --git a/sources/extsysmonsources/customsource.h b/sources/extsysmonsources/customsource.h
index 3230de2..2243107 100644
--- a/sources/extsysmonsources/customsource.h
+++ b/sources/extsysmonsources/customsource.h
@@ -28,6 +28,8 @@ class ExtScript;
class CustomSource : public AbstractExtSysMonSource
{
+ Q_OBJECT
+
public:
explicit CustomSource(QObject *parent, const QStringList args);
virtual ~CustomSource();
@@ -39,7 +41,7 @@ public:
private:
QStringList getSources();
// configuration and values
- ExtItemAggregator *extScripts = nullptr;
+ ExtItemAggregator *m_extScripts = nullptr;
QStringList m_sources;
};
diff --git a/sources/extsysmonsources/desktopsource.h b/sources/extsysmonsources/desktopsource.h
index d6f3fa4..fb7cf5e 100644
--- a/sources/extsysmonsources/desktopsource.h
+++ b/sources/extsysmonsources/desktopsource.h
@@ -25,6 +25,8 @@
class DesktopSource : public AbstractExtSysMonSource
{
+ Q_OBJECT
+
public:
explicit DesktopSource(QObject *parent, const QStringList args);
virtual ~DesktopSource();
diff --git a/sources/extsysmonsources/gpuloadsource.h b/sources/extsysmonsources/gpuloadsource.h
index 4caa8fa..b0951ca 100644
--- a/sources/extsysmonsources/gpuloadsource.h
+++ b/sources/extsysmonsources/gpuloadsource.h
@@ -27,6 +27,8 @@ class QProcess;
class GPULoadSource : public AbstractExtSysMonSource
{
+ Q_OBJECT
+
public:
explicit GPULoadSource(QObject *parent, const QStringList args);
virtual ~GPULoadSource();
diff --git a/sources/extsysmonsources/gputempsource.h b/sources/extsysmonsources/gputempsource.h
index 0ebfc62..c2c0469 100644
--- a/sources/extsysmonsources/gputempsource.h
+++ b/sources/extsysmonsources/gputempsource.h
@@ -27,6 +27,8 @@ class QProcess;
class GPUTemperatureSource : public AbstractExtSysMonSource
{
+ Q_OBJECT
+
public:
explicit GPUTemperatureSource(QObject *parent, const QStringList args);
virtual ~GPUTemperatureSource();
diff --git a/sources/extsysmonsources/hddtempsource.h b/sources/extsysmonsources/hddtempsource.h
index 2daf711..6e54fe3 100644
--- a/sources/extsysmonsources/hddtempsource.h
+++ b/sources/extsysmonsources/hddtempsource.h
@@ -27,6 +27,8 @@ class QProcess;
class HDDTemperatureSource : public AbstractExtSysMonSource
{
+ Q_OBJECT
+
public:
explicit HDDTemperatureSource(QObject *parent, const QStringList args);
virtual ~HDDTemperatureSource();
diff --git a/sources/extsysmonsources/loadsource.h b/sources/extsysmonsources/loadsource.h
index e31963b..b50a939 100644
--- a/sources/extsysmonsources/loadsource.h
+++ b/sources/extsysmonsources/loadsource.h
@@ -25,6 +25,8 @@
class LoadSource : public AbstractExtSysMonSource
{
+ Q_OBJECT
+
public:
explicit LoadSource(QObject *parent, const QStringList args);
virtual ~LoadSource();
diff --git a/sources/extsysmonsources/networksource.h b/sources/extsysmonsources/networksource.h
index 126fc19..99db545 100644
--- a/sources/extsysmonsources/networksource.h
+++ b/sources/extsysmonsources/networksource.h
@@ -25,6 +25,8 @@
class NetworkSource : public AbstractExtSysMonSource
{
+ Q_OBJECT
+
public:
explicit NetworkSource(QObject *parent, const QStringList args);
virtual ~NetworkSource();
diff --git a/sources/extsysmonsources/playersource.cpp b/sources/extsysmonsources/playersource.cpp
index e082006..9a7b85e 100644
--- a/sources/extsysmonsources/playersource.cpp
+++ b/sources/extsysmonsources/playersource.cpp
@@ -35,17 +35,17 @@ PlayerSource::PlayerSource(QObject *parent, const QStringList args)
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
m_player = args.at(0);
- m_mpdAddress = QString("%1:%2").arg(args.at(1)).arg(args.at(2));
+ m_mpdAddress = args.at(1);
+ m_mpdPort = args.at(2).toInt();
m_mpris = args.at(3);
m_symbols = args.at(4).toInt();
- m_mpdProcess = new QProcess(nullptr);
- // fucking magic from http://doc.qt.io/qt-5/qprocess.html#finished
- connect(m_mpdProcess,
- static_cast(
- &QProcess::finished),
- [this](int, QProcess::ExitStatus) { return updateMpdValue(); });
- m_mpdProcess->waitForFinished(0);
+ connect(&m_mpdSocket, SIGNAL(connected()), this,
+ SLOT(mpdSocketConnected()));
+ connect(&m_mpdSocket, SIGNAL(readyRead()), this,
+ SLOT(mpdSocketReadyRead()));
+ connect(&m_mpdSocket, SIGNAL(bytesWritten(qint64)), this,
+ SLOT(mpdSocketWritten(const qint64)));
m_mpdCached = defaultInfo();
}
@@ -54,8 +54,7 @@ PlayerSource::~PlayerSource()
{
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
- m_mpdProcess->kill();
- m_mpdProcess->deleteLater();
+ m_mpdSocket.close();
}
@@ -182,7 +181,7 @@ void PlayerSource::run()
// initial data
if (m_player == QString("mpd")) {
// mpd
- m_values = getPlayerMpdInfo(m_mpdAddress);
+ m_values = getPlayerMpdInfo();
} else if (m_player == QString("mpris")) {
// players which supports mpris
if (m_dbusMutex.tryLock()) {
@@ -256,18 +255,21 @@ QString PlayerSource::stripString(const QString &value, const int s)
}
-void PlayerSource::updateMpdValue()
+void PlayerSource::mpdSocketConnected()
+{
+ qCDebug(LOG_ESS) << "MPD socket connected to" << m_mpdSocket.peerName()
+ << "with state" << m_mpdSocket.state();
+}
+
+
+void PlayerSource::mpdSocketReadyRead()
{
- qCInfo(LOG_ESS) << "Cmd returns" << m_mpdProcess->exitCode();
- QString qdebug = QTextCodec::codecForMib(106)
- ->toUnicode(m_mpdProcess->readAllStandardError())
- .trimmed();
- qCInfo(LOG_ESS) << "Error" << qdebug;
QString qoutput = QTextCodec::codecForMib(106)
- ->toUnicode(m_mpdProcess->readAllStandardOutput())
+ ->toUnicode(m_mpdSocket.readAll())
.trimmed();
qCInfo(LOG_ESS) << "Output" << qoutput;
+ // parse
for (auto str : qoutput.split(QChar('\n'), QString::SkipEmptyParts)) {
if (str.split(QString(": "), QString::SkipEmptyParts).count() == 2) {
// "Metadata: data"
@@ -292,6 +294,13 @@ void PlayerSource::updateMpdValue()
}
+void PlayerSource::mpdSocketWritten(const qint64 bytes)
+{
+ qCDebug(LOG_ESS) << "Bytes written" << bytes << "to"
+ << m_mpdSocket.peerName();
+}
+
+
QVariantHash PlayerSource::defaultInfo() const
{
QVariantHash info;
@@ -305,16 +314,18 @@ QVariantHash PlayerSource::defaultInfo() const
}
-QVariantHash PlayerSource::getPlayerMpdInfo(const QString mpdAddress) const
+QVariantHash PlayerSource::getPlayerMpdInfo()
{
- qCDebug(LOG_ESS) << "MPD" << mpdAddress;
-
- // build cmd
- QString cmd = QString("bash -c \"echo 'currentsong\nstatus\nclose' | curl "
- "--connect-timeout 1 -fsm 3 telnet://%1\"")
- .arg(mpdAddress);
- qCInfo(LOG_ESS) << "cmd" << cmd;
- m_mpdProcess->start(cmd);
+ if (m_mpdSocket.state() == QAbstractSocket::UnconnectedState) {
+ // connect to host
+ qCInfo(LOG_ESS) << "Connect to" << m_mpdAddress << m_mpdPort;
+ m_mpdSocket.connectToHost(m_mpdAddress, m_mpdPort);
+ } else if (m_mpdSocket.state() == QAbstractSocket::ConnectedState) {
+ // send request
+ if (m_mpdSocket.write(MPD_STATUS_REQUEST) == -1)
+ qCWarning(LOG_ESS) << "Could not write request to"
+ << m_mpdSocket.peerName();
+ }
return m_mpdCached;
}
diff --git a/sources/extsysmonsources/playersource.h b/sources/extsysmonsources/playersource.h
index 39d666b..4474a37 100644
--- a/sources/extsysmonsources/playersource.h
+++ b/sources/extsysmonsources/playersource.h
@@ -20,14 +20,19 @@
#include
#include
+#include
#include "abstractextsysmonsource.h"
+#define MPD_STATUS_REQUEST "currentsong\nstatus\n"
+
class QProcess;
class PlayerSource : public AbstractExtSysMonSource
{
+ Q_OBJECT
+
public:
explicit PlayerSource(QObject *parent, const QStringList args);
virtual ~PlayerSource();
@@ -42,16 +47,19 @@ public:
static QString stripString(const QString &value, const int s);
private slots:
- void updateMpdValue();
+ void mpdSocketConnected();
+ void mpdSocketReadyRead();
+ void mpdSocketWritten(const qint64 bytes);
private:
inline QVariantHash defaultInfo() const;
- QVariantHash getPlayerMpdInfo(const QString mpdAddress) const;
+ QVariantHash getPlayerMpdInfo();
QVariantHash getPlayerMprisInfo(const QString mpris) const;
+ QTcpSocket m_mpdSocket;
// configuration and values
QString m_mpdAddress;
+ int m_mpdPort;
QVariantHash m_mpdCached;
- QProcess *m_mpdProcess = nullptr;
QString m_mpris;
QMutex m_dbusMutex;
QString m_player;
diff --git a/sources/extsysmonsources/processessource.h b/sources/extsysmonsources/processessource.h
index 3d7c3a3..1ad5b38 100644
--- a/sources/extsysmonsources/processessource.h
+++ b/sources/extsysmonsources/processessource.h
@@ -25,6 +25,8 @@
class ProcessesSource : public AbstractExtSysMonSource
{
+ Q_OBJECT
+
public:
explicit ProcessesSource(QObject *parent, const QStringList args);
virtual ~ProcessesSource();
diff --git a/sources/extsysmonsources/quotessource.cpp b/sources/extsysmonsources/quotessource.cpp
index 238136f..2bc8950 100644
--- a/sources/extsysmonsources/quotessource.cpp
+++ b/sources/extsysmonsources/quotessource.cpp
@@ -28,7 +28,7 @@ QuotesSource::QuotesSource(QObject *parent, const QStringList args)
Q_ASSERT(args.count() == 0);
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
- extQuotes = new ExtItemAggregator(nullptr, QString("quotes"));
+ m_extQuotes = new ExtItemAggregator(nullptr, QString("quotes"));
m_sources = getSources();
}
@@ -37,7 +37,7 @@ QuotesSource::~QuotesSource()
{
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
- delete extQuotes;
+ delete m_extQuotes;
}
@@ -48,7 +48,7 @@ QVariant QuotesSource::data(QString source)
int ind = index(source);
source.remove(QString("quotes/"));
if (!m_values.contains(source)) {
- QVariantHash data = extQuotes->itemByTagNumber(ind)->run();
+ QVariantHash data = m_extQuotes->itemByTagNumber(ind)->run();
for (auto key : data.keys())
m_values[key] = data[key];
}
@@ -68,7 +68,7 @@ QVariantMap QuotesSource::initialData(QString source) const
data[QString("max")] = 0.0;
data[QString("name")]
= QString("Absolute ask changes for '%1'")
- .arg(extQuotes->itemByTagNumber(ind)->uniq());
+ .arg(m_extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("double");
data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/ask"))) {
@@ -76,7 +76,7 @@ QVariantMap QuotesSource::initialData(QString source) const
data[QString("max")] = 0.0;
data[QString("name")]
= QString("Ask for '%1'")
- .arg(extQuotes->itemByTagNumber(ind)->uniq());
+ .arg(m_extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("double");
data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/percaskchg"))) {
@@ -84,7 +84,7 @@ QVariantMap QuotesSource::initialData(QString source) const
data[QString("max")] = 100.0;
data[QString("name")]
= QString("Ask changes for '%1'")
- .arg(extQuotes->itemByTagNumber(ind)->uniq());
+ .arg(m_extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("double");
data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/bidchg"))) {
@@ -92,7 +92,7 @@ QVariantMap QuotesSource::initialData(QString source) const
data[QString("max")] = 0.0;
data[QString("name")]
= QString("Absolute bid changes for '%1'")
- .arg(extQuotes->itemByTagNumber(ind)->uniq());
+ .arg(m_extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("double");
data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/bid"))) {
@@ -100,7 +100,7 @@ QVariantMap QuotesSource::initialData(QString source) const
data[QString("max")] = 0.0;
data[QString("name")]
= QString("Bid for '%1'")
- .arg(extQuotes->itemByTagNumber(ind)->uniq());
+ .arg(m_extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("double");
data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/percbidchg"))) {
@@ -108,7 +108,7 @@ QVariantMap QuotesSource::initialData(QString source) const
data[QString("max")] = 100.0;
data[QString("name")]
= QString("Bid changes for '%1'")
- .arg(extQuotes->itemByTagNumber(ind)->uniq());
+ .arg(m_extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("double");
data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/pricechg"))) {
@@ -116,7 +116,7 @@ QVariantMap QuotesSource::initialData(QString source) const
data[QString("max")] = 0.0;
data[QString("name")]
= QString("Absolute prie changes for '%1'")
- .arg(extQuotes->itemByTagNumber(ind)->uniq());
+ .arg(m_extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("double");
data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/price"))) {
@@ -124,7 +124,7 @@ QVariantMap QuotesSource::initialData(QString source) const
data[QString("max")] = 0.0;
data[QString("name")]
= QString("Price for '%1'")
- .arg(extQuotes->itemByTagNumber(ind)->uniq());
+ .arg(m_extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("double");
data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/percpricechg"))) {
@@ -132,7 +132,7 @@ QVariantMap QuotesSource::initialData(QString source) const
data[QString("max")] = 100.0;
data[QString("name")]
= QString("Price changes for '%1'")
- .arg(extQuotes->itemByTagNumber(ind)->uniq());
+ .arg(m_extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("double");
data[QString("units")] = QString("");
}
@@ -150,7 +150,7 @@ QStringList QuotesSource::sources() const
QStringList QuotesSource::getSources()
{
QStringList sources;
- for (auto item : extQuotes->activeItems()) {
+ for (auto item : m_extQuotes->activeItems()) {
sources.append(QString("quotes/%1").arg(item->tag(QString("ask"))));
sources.append(QString("quotes/%1").arg(item->tag(QString("askchg"))));
sources.append(
diff --git a/sources/extsysmonsources/quotessource.h b/sources/extsysmonsources/quotessource.h
index edb3490..28fe709 100644
--- a/sources/extsysmonsources/quotessource.h
+++ b/sources/extsysmonsources/quotessource.h
@@ -28,6 +28,8 @@ class ExtQuotes;
class QuotesSource : public AbstractExtSysMonSource
{
+ Q_OBJECT
+
public:
explicit QuotesSource(QObject *parent, const QStringList args);
virtual ~QuotesSource();
@@ -39,7 +41,7 @@ public:
private:
QStringList getSources();
// configuration and values
- ExtItemAggregator *extQuotes = nullptr;
+ ExtItemAggregator *m_extQuotes = nullptr;
QStringList m_sources;
QVariantHash m_values;
};
diff --git a/sources/extsysmonsources/upgradesource.cpp b/sources/extsysmonsources/upgradesource.cpp
index 0103da8..5d7a3e2 100644
--- a/sources/extsysmonsources/upgradesource.cpp
+++ b/sources/extsysmonsources/upgradesource.cpp
@@ -28,7 +28,8 @@ UpgradeSource::UpgradeSource(QObject *parent, const QStringList args)
Q_ASSERT(args.count() == 0);
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
- extUpgrade = new ExtItemAggregator(nullptr, QString("upgrade"));
+ m_extUpgrade
+ = new ExtItemAggregator(nullptr, QString("upgrade"));
m_sources = getSources();
}
@@ -37,7 +38,7 @@ UpgradeSource::~UpgradeSource()
{
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
- delete extUpgrade;
+ delete m_extUpgrade;
}
@@ -46,7 +47,7 @@ QVariant UpgradeSource::data(QString source)
qCDebug(LOG_ESS) << "Source" << source;
// there are only one value
- return extUpgrade->itemByTagNumber(index(source))->run().values().first();
+ return m_extUpgrade->itemByTagNumber(index(source))->run().values().first();
}
@@ -59,7 +60,7 @@ QVariantMap UpgradeSource::initialData(QString source) const
data[QString("max")] = QString("");
data[QString("name")]
= QString("Package manager '%1' metadata")
- .arg(extUpgrade->itemByTagNumber(index(source))->uniq());
+ .arg(m_extUpgrade->itemByTagNumber(index(source))->uniq());
data[QString("type")] = QString("QString");
data[QString("units")] = QString("");
@@ -76,7 +77,7 @@ QStringList UpgradeSource::sources() const
QStringList UpgradeSource::getSources()
{
QStringList sources;
- for (auto item : extUpgrade->activeItems())
+ for (auto item : m_extUpgrade->activeItems())
sources.append(
QString("upgrade/%1").arg(item->tag(QString("pkgcount"))));
diff --git a/sources/extsysmonsources/upgradesource.h b/sources/extsysmonsources/upgradesource.h
index 8bf6a81..1341f2d 100644
--- a/sources/extsysmonsources/upgradesource.h
+++ b/sources/extsysmonsources/upgradesource.h
@@ -28,6 +28,8 @@ class ExtUpgrade;
class UpgradeSource : public AbstractExtSysMonSource
{
+ Q_OBJECT
+
public:
explicit UpgradeSource(QObject *parent, const QStringList args);
virtual ~UpgradeSource();
@@ -39,7 +41,7 @@ public:
private:
QStringList getSources();
// configuration and values
- ExtItemAggregator *extUpgrade = nullptr;
+ ExtItemAggregator *m_extUpgrade = nullptr;
QStringList m_sources;
};
diff --git a/sources/extsysmonsources/weathersource.cpp b/sources/extsysmonsources/weathersource.cpp
index 1f95a90..9806c2b 100644
--- a/sources/extsysmonsources/weathersource.cpp
+++ b/sources/extsysmonsources/weathersource.cpp
@@ -28,7 +28,8 @@ WeatherSource::WeatherSource(QObject *parent, const QStringList args)
Q_ASSERT(args.count() == 0);
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
- extWeather = new ExtItemAggregator(nullptr, QString("weather"));
+ m_extWeather
+ = new ExtItemAggregator(nullptr, QString("weather"));
m_sources = getSources();
}
@@ -37,7 +38,7 @@ WeatherSource::~WeatherSource()
{
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
- delete extWeather;
+ delete m_extWeather;
}
@@ -48,7 +49,7 @@ QVariant WeatherSource::data(QString source)
int ind = index(source);
source.remove(QString("weather/"));
if (!m_values.contains(source)) {
- QVariantHash data = extWeather->itemByTagNumber(ind)->run();
+ QVariantHash data = m_extWeather->itemByTagNumber(ind)->run();
for (auto key : data.keys())
m_values[key] = data[key];
}
@@ -68,7 +69,7 @@ QVariantMap WeatherSource::initialData(QString source) const
data[QString("max")] = 1000;
data[QString("name")]
= QString("Numeric weather ID for '%1'")
- .arg(extWeather->itemByTagNumber(ind)->uniq());
+ .arg(m_extWeather->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("integer");
data[QString("units")] = QString("");
} else if (source.startsWith(QString("weather/weather"))) {
@@ -76,7 +77,7 @@ QVariantMap WeatherSource::initialData(QString source) const
data[QString("max")] = QString("");
data[QString("name")]
= QString("ID string map for '%1'")
- .arg(extWeather->itemByTagNumber(ind)->uniq());
+ .arg(m_extWeather->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("QString");
data[QString("units")] = QString("");
} else if (source.startsWith(QString("weather/humidity"))) {
@@ -84,7 +85,7 @@ QVariantMap WeatherSource::initialData(QString source) const
data[QString("max")] = 100;
data[QString("name")]
= QString("Humidity for '%1'")
- .arg(extWeather->itemByTagNumber(ind)->uniq());
+ .arg(m_extWeather->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("integer");
data[QString("units")] = QString("%");
} else if (source.startsWith(QString("weather/pressure"))) {
@@ -92,7 +93,7 @@ QVariantMap WeatherSource::initialData(QString source) const
data[QString("max")] = 0;
data[QString("name")]
= QString("Atmospheric pressure for '%1'")
- .arg(extWeather->itemByTagNumber(ind)->uniq());
+ .arg(m_extWeather->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("integer");
data[QString("units")] = QString("mb");
} else if (source.startsWith(QString("weather/temperature"))) {
@@ -100,7 +101,7 @@ QVariantMap WeatherSource::initialData(QString source) const
data[QString("max")] = 0.0;
data[QString("name")]
= QString("Temperature for '%1'")
- .arg(extWeather->itemByTagNumber(ind)->uniq());
+ .arg(m_extWeather->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("float");
data[QString("units")] = QString("°C");
} else if (source.startsWith(QString("weather/timestamp"))) {
@@ -108,7 +109,7 @@ QVariantMap WeatherSource::initialData(QString source) const
data[QString("max")] = QString("");
data[QString("name")]
= QString("Timestamp for '%1'")
- .arg(extWeather->itemByTagNumber(ind)->uniq());
+ .arg(m_extWeather->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("QString");
data[QString("units")] = QString("");
}
@@ -126,7 +127,7 @@ QStringList WeatherSource::sources() const
QStringList WeatherSource::getSources()
{
QStringList sources;
- for (auto item : extWeather->activeItems()) {
+ for (auto item : m_extWeather->activeItems()) {
sources.append(
QString("weather/%1").arg(item->tag(QString("weatherId"))));
sources.append(
diff --git a/sources/extsysmonsources/weathersource.h b/sources/extsysmonsources/weathersource.h
index 88520f6..de35feb 100644
--- a/sources/extsysmonsources/weathersource.h
+++ b/sources/extsysmonsources/weathersource.h
@@ -28,6 +28,8 @@ class ExtWeather;
class WeatherSource : public AbstractExtSysMonSource
{
+ Q_OBJECT
+
public:
explicit WeatherSource(QObject *parent, const QStringList args);
virtual ~WeatherSource();
@@ -39,7 +41,7 @@ public:
private:
QStringList getSources();
// configuration and values
- ExtItemAggregator *extWeather = nullptr;
+ ExtItemAggregator *m_extWeather = nullptr;
QStringList m_sources;
QVariantHash m_values;
};
diff --git a/sources/test/testdatetimeformatter.cpp b/sources/test/testdatetimeformatter.cpp
index 41a1554..c97b570 100644
--- a/sources/test/testdatetimeformatter.cpp
+++ b/sources/test/testdatetimeformatter.cpp
@@ -56,10 +56,12 @@ void TestAWDateTimeFormatter::test_conversion()
void TestAWDateTimeFormatter::test_copy()
{
+ formatter->setTranslateString(false);
AWDateTimeFormatter *newFormatter
= formatter->copy(QString("/dev/null"), 1);
QCOMPARE(newFormatter->format(), formatter->format());
+ QCOMPARE(newFormatter->translateString(), formatter->translateString());
QCOMPARE(newFormatter->number(), 1);
delete newFormatter;
diff --git a/sources/translations/awesome-widgets.pot b/sources/translations/awesome-widgets.pot
index edd4366..aa82a1b 100644
--- a/sources/translations/awesome-widgets.pot
+++ b/sources/translations/awesome-widgets.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
-"POT-Creation-Date: 2016-07-06 19:36+0300\n"
+"POT-Creation-Date: 2016-08-03 16:10+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/sources/translations/es.po b/sources/translations/es.po
index dad0291..447e353 100644
--- a/sources/translations/es.po
+++ b/sources/translations/es.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Ernesto Avilés Vázquez , 2014-2016
# Evgeniy Alekseev , 2014-2015
@@ -10,14 +10,13 @@ msgstr ""
"Project-Id-Version: Awesome widgets\n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2016-07-06 19:36+0300\n"
-"PO-Revision-Date: 2016-05-03 06:47+0000\n"
+"PO-Revision-Date: 2016-08-03 15:30+0000\n"
"Last-Translator: Ernesto Avilés Vázquez \n"
-"Language-Team: Spanish (http://www.transifex.com/arcanis/awesome-widgets/"
-"language/es/)\n"
-"Language: es\n"
+"Language-Team: Spanish (http://www.transifex.com/arcanis/awesome-widgets/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Widget"
@@ -275,10 +274,7 @@ msgstr "Comprobar actualizaciones"
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox checked."
-msgstr ""
-"Las etiquetas para CPU, reloj de CPU, memoria, swap y red soportan ventanas "
-"emergentes. Para habilitarlas, simplemente marca las casillas "
-"correspondientes."
+msgstr "Las etiquetas para CPU, reloj de CPU, memoria, swap y red soportan ventanas emergentes. Para habilitarlas, simplemente marca las casillas correspondientes."
msgid "Number of values for tooltips"
msgstr "Número de valores para las ventanas emergentes"
@@ -332,11 +328,9 @@ msgid "Battery inactive color"
msgstr "Color de la batería inactiva"
msgid ""
-"Detailed information may be found on project homepage"
-msgstr ""
-"Puedes encontrar información detallada en el sitio del proyecto"
+"Detailed information may be found on project homepage"
+msgstr "Puedes encontrar información detallada en el sitio del proyecto"
msgid "Bgcolor"
msgstr "Color de fondo"
@@ -378,7 +372,7 @@ msgid "Edit bars"
msgstr "Editar barras"
msgid "Formatters"
-msgstr ""
+msgstr "Formateadores"
msgid "Preview"
msgstr "Vista previa"
@@ -449,17 +443,14 @@ msgstr "Carga alta de GPU"
msgid "Network device has been changed to %1"
msgstr "El dispositivo de red ha sido cambiado a %1"
-#, fuzzy
msgid "Edit"
-msgstr "Editar barras"
+msgstr "Editar"
-#, fuzzy
msgid "Select type"
-msgstr "Elegir etiqueta"
+msgstr "Elegir tipo"
-#, fuzzy
msgid "Type:"
-msgstr "Tipo"
+msgstr "Tipo:"
msgid "MB/s"
msgstr "MB/s"
@@ -521,47 +512,44 @@ msgstr "Comentario"
msgid "Type"
msgstr "Tipo"
-#, fuzzy
msgid "Format"
-msgstr "normal"
+msgstr "Formato"
msgid "Precision"
-msgstr ""
+msgstr "Precisión"
msgid "Width"
msgstr "Ancho"
msgid "Fill char"
-msgstr ""
+msgstr "Relleno"
msgid "Force width"
-msgstr ""
+msgstr "Fijar ancho"
msgid "Multiplier"
-msgstr ""
+msgstr "Factor"
-#, fuzzy
msgid "Summand"
-msgstr "Orden"
+msgstr "Sumando"
msgid "Filter"
msgstr "Filtro"
msgid "Separator"
-msgstr ""
+msgstr "Separador"
msgid "Sort"
-msgstr ""
+msgstr "Clasificación"
-#, fuzzy
msgid "Append code"
-msgstr "Apariencia"
+msgstr "Agregar código"
msgid "Has return"
-msgstr ""
+msgstr "Contiene return"
msgid "Code"
-msgstr ""
+msgstr "Código"
msgid "Tag"
msgstr "Etiqueta"
@@ -569,13 +557,9 @@ msgstr "Etiqueta"
msgid ""
"
Use YAHOO! finance ticker to get quotes for the "
"instrument. Refer to http://finance.yahoo.com/"
-"span>
"
-msgstr ""
-"Usa el tablero electrónico de YAHOO! para obtener la "
-"cotización del medio. Dirígete a http://finance.yahoo."
-"com/
"
+"text-decoration: underline; "
+"color:#0057ae;\">http://finance.yahoo.com/
"
+msgstr "Usa el tablero electrónico de YAHOO! para obtener la cotización del medio. Dirígete a http://finance.yahoo.com/
"
msgid "Ticker"
msgstr "Tablero"
@@ -608,7 +592,7 @@ msgid "Null"
msgstr "Líneas en blanco"
msgid "Provider"
-msgstr ""
+msgstr "Proveedor"
msgid "City"
msgstr "Ciudad"
diff --git a/sources/translations/nl_NL.po b/sources/translations/nl_NL.po
index 8bf5a6e..9865eb2 100644
--- a/sources/translations/nl_NL.po
+++ b/sources/translations/nl_NL.po
@@ -1,24 +1,24 @@
+# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Heimen Stoffels , 2015.
-# Evgeniy Alekseev , 2015.
+# Evgeniy Alekseev , 2015
+# Heimen Stoffels , 2015-2016
msgid ""
msgstr ""
"Project-Id-Version: Awesome widgets\n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
-"POT-Creation-Date: 2016-07-06 19:36+0300\n"
-"PO-Revision-Date: 2015-08-20 22:52+0300\n"
-"Last-Translator: Evgeniy Alekseev \n"
-"Language-Team: Dutch \n"
+"POT-Creation-Date: 2016-08-03 16:10+0300\n"
+"PO-Revision-Date: 2016-07-09 08:47+0000\n"
+"Last-Translator: Heimen Stoffels \n"
+"Language-Team: Dutch (Netherlands) (http://www.transifex.com/arcanis/awesome-"
+"widgets/language/nl_NL/)\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"widgets/language/nl_NL/)\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 2.0\n"
msgid "Widget"
msgstr "Widget"
@@ -44,37 +44,35 @@ msgstr "Erkenning"
msgid "Enable background"
msgstr "Achtergrond inschakelen"
-#, fuzzy
msgid "Translate strings"
-msgstr "Probleem met de vertaling"
+msgstr "Strings vertalen"
msgid "Wrap new lines"
-msgstr ""
+msgstr "Nieuwe regels omslaan"
msgid "Enable word wrap"
-msgstr ""
+msgstr "Woordomslag inschakelen"
msgid "Enable notifications"
-msgstr ""
+msgstr "Meldingen inschakelen"
-#, fuzzy
msgid "Check updates on startup"
-msgstr "Controleren op updates"
+msgstr "Controleren op updates bij opstarten"
msgid "Optimize subscription"
-msgstr ""
+msgstr "Abonnement optimaliseren"
msgid "Widget height, px"
-msgstr ""
+msgstr "Widget-hoogte, px"
msgid "Widget width, px"
-msgstr ""
+msgstr "Widget-breedte, px"
msgid "Time interval"
msgstr "Tijdstussenpose"
msgid "Messages queue limit"
-msgstr ""
+msgstr "Limiet van berichtenwachtrij"
msgid "Temperature units"
msgstr "Temperatuureenheden"
@@ -113,43 +111,40 @@ msgid "AC offline tag"
msgstr "AC offline-sleutelwoord"
msgid "Drop key cache"
-msgstr ""
+msgstr "Sleutelcache verwerpen"
-#, fuzzy
msgid "Export configuration"
-msgstr "Configuratie"
+msgstr "Configuratie exporteren"
msgid "Export"
-msgstr ""
+msgstr "Exporteren"
msgid "Success"
-msgstr ""
+msgstr "Succesvol"
msgid "Please note that binary files were not copied"
-msgstr ""
+msgstr "Let op: binaire bestanden zijn niet gekopieerd"
msgid "Ooops..."
-msgstr ""
+msgstr "Oeps..."
-#, fuzzy
msgid "Could not save configuration file"
-msgstr "Configuratie"
+msgstr "Het configuratiebestand kon niet worden opgeslagen"
-#, fuzzy
msgid "Import configuration"
-msgstr "Configuratie"
+msgstr "Configuratie importeren"
msgid "Import"
-msgstr ""
+msgstr "Importeren"
msgid "Import plasmoid settings"
-msgstr ""
+msgstr "Plasmoid-instellingen importeren"
msgid "Import extensions"
-msgstr ""
+msgstr "Extensies importeren"
msgid "Import additional files"
-msgstr ""
+msgstr "Extra bestanden importeren"
msgid "Font"
msgstr "Lettertype"
@@ -190,22 +185,20 @@ msgstr "Selecteer een kleur"
msgid "Select a font"
msgstr "Selecteer een lettertype"
-#, fuzzy
msgid "ACPI"
-msgstr "ACPI-pad"
+msgstr "ACPI"
msgid "ACPI path"
msgstr "ACPI-pad"
msgid "GPU"
-msgstr ""
+msgstr "GPU"
msgid "GPU device"
msgstr "GPU-apparaat"
-#, fuzzy
msgid "HDD temperature"
-msgstr "Temperatuureenheden"
+msgstr "HDD-temperatuur"
msgid "HDD"
msgstr "HDD"
@@ -214,10 +207,10 @@ msgid "hddtemp cmd"
msgstr "hddtemp cmd"
msgid "Player"
-msgstr ""
+msgstr "Speler"
msgid "Player data symbols"
-msgstr ""
+msgstr "Speler-gegevenssymbolen"
msgid "Music player"
msgstr "Muziekspeler"
@@ -232,7 +225,7 @@ msgid "MPD port"
msgstr "MPD-poort"
msgid "Extensions"
-msgstr ""
+msgstr "Extensies"
msgid "Custom scripts"
msgstr "Aangepaste scripts"
@@ -241,11 +234,10 @@ msgid "Edit scripts"
msgstr "Scripts bewerken"
msgid "Quotes monitor"
-msgstr ""
+msgstr "Citaten-monitor"
-#, fuzzy
msgid "Edit tickers"
-msgstr "Balken bewerken"
+msgstr "Tickers bewerken"
msgid "Package manager"
msgstr "Pakketbeheerder"
@@ -254,11 +246,10 @@ msgid "Edit command"
msgstr "Commando bewerken"
msgid "Weather"
-msgstr ""
+msgstr "Weer"
-#, fuzzy
msgid "Edit weather"
-msgstr "Balken bewerken"
+msgstr "Weer bewerken"
msgid "Select tag"
msgstr "Sleutelwoord selecteren"
@@ -281,7 +272,6 @@ msgstr "README weergeven"
msgid "Check updates"
msgstr "Controleren op updates"
-#, fuzzy
msgid ""
"CPU, CPU clock, memory, swap and network labels support graphical tooltip. "
"To enable them just make needed checkbox checked."
@@ -295,38 +285,35 @@ msgstr "Aantal waarden voor de opmerkingsballonnen"
msgid "Background"
msgstr "Achtergrond"
-#, fuzzy
msgid "Background color"
-msgstr "Achtergrond"
+msgstr "Achtergrondkleur"
msgid "CPU"
-msgstr ""
+msgstr "CPU"
msgid "CPU color"
msgstr "CPU-kleur"
-#, fuzzy
msgid "CPU clock"
-msgstr "CPU-kleur"
+msgstr "CPU-klok"
msgid "CPU clock color"
msgstr "CPU-klokkleur"
-#, fuzzy
msgid "Memory"
-msgstr "Geheugenkleur"
+msgstr "Geheugen"
msgid "Memory color"
msgstr "Geheugenkleur"
msgid "Swap"
-msgstr ""
+msgstr "SWAP"
msgid "Swap color"
msgstr "Swap-kleur"
msgid "Network"
-msgstr ""
+msgstr "Netwerk"
msgid "Download speed color"
msgstr "Kleur van downloadsnelheid"
@@ -335,7 +322,7 @@ msgid "Upload speed color"
msgstr "Kleur van uploadsnelheid"
msgid "Battery"
-msgstr ""
+msgstr "Accu"
msgid "Battery active color"
msgstr "Kleur van actieve accu"
@@ -350,38 +337,35 @@ msgstr ""
"Gedetailleerde informatie kan worden gevonden op de projectwebsite"
-#, fuzzy
msgid "Bgcolor"
-msgstr "CPU-kleur"
+msgstr "Achtergrondkleur"
msgid "AC"
-msgstr ""
+msgstr "AC"
msgid "Bars"
msgstr "Balken"
msgid "Desktops"
-msgstr ""
+msgstr "Bureaubladen"
-#, fuzzy
msgid "Scripts"
-msgstr "Scripts bewerken"
+msgstr "Scripts"
msgid "Time"
-msgstr ""
+msgstr "Tijd"
msgid "Quotes"
-msgstr ""
+msgstr "Citaten"
msgid "Upgrades"
-msgstr ""
+msgstr "Upgrades"
-#, fuzzy
msgid "Weathers"
-msgstr "Balken bewerken"
+msgstr "Weer"
msgid "Functions"
-msgstr ""
+msgstr "Mogelijkheden"
msgid "Add"
msgstr "Toevoegen"
@@ -393,19 +377,16 @@ msgid "Edit bars"
msgstr "Balken bewerken"
msgid "Formatters"
-msgstr ""
+msgstr "Opmakers"
msgid "Preview"
-msgstr ""
+msgstr "Voorbeeld"
msgid "Run %1"
msgstr "%1 uitvoeren"
-#, fuzzy
msgid "Version %1 (build date %2)"
-msgstr ""
-"Versie %1\n"
-"(bouwdatum %2)"
+msgstr "Versie %1 (bouwdatum %2)"
msgid "A set of minimalistic plasmoid widgets"
msgstr "Een set van minimalistische plasmoid-widgets"
@@ -441,7 +422,7 @@ msgid "This software uses: %1"
msgstr "Deze software gebruikt: %1"
msgid "Special thanks to %1"
-msgstr ""
+msgstr "Veel dank aan %1"
msgid "Select font"
msgstr "Lettertype selecteren"
@@ -461,9 +442,8 @@ msgstr "Hoog geheugenverbruik"
msgid "Swap is used"
msgstr "Swap wordt gebruikt"
-#, fuzzy
msgid "High GPU load"
-msgstr "Hoog CPU-verbruik"
+msgstr "Hoog GPU-verbruik"
msgid "Network device has been changed to %1"
msgstr "Het netwerkapparaat is gewijzigd naar %1"
@@ -471,29 +451,26 @@ msgstr "Het netwerkapparaat is gewijzigd naar %1"
msgid "Edit"
msgstr "Bewerken"
-#, fuzzy
msgid "Select type"
-msgstr "Sleutelwoord selecteren"
+msgstr "Type selecteren"
-#, fuzzy
msgid "Type:"
-msgstr "Type"
+msgstr "Type:"
msgid "MB/s"
-msgstr ""
+msgstr "MB/s"
msgid "KB/s"
-msgstr ""
+msgstr "KB/s"
msgid "Changelog of %1"
-msgstr ""
+msgstr "Wijzigingslog van %1"
msgid "You are using the actual version %1"
-msgstr ""
+msgstr "U gebruikt de actuele versie %1"
-#, fuzzy
msgid "No new version found"
-msgstr "Nieuwe versie: %1"
+msgstr "Geen nieuwe versie gevonden"
msgid "Current version : %1"
msgstr "Huidige versie: %1"
@@ -528,9 +505,8 @@ msgstr "Naam: %1"
msgid "Comment: %1"
msgstr "Commentaar: %1"
-#, fuzzy
msgid "Identity: %1"
-msgstr "Commentaar: %1"
+msgstr "Identiteit: %1"
msgid "Name"
msgstr "Naam"
@@ -541,47 +517,44 @@ msgstr "Commentaar"
msgid "Type"
msgstr "Type"
-#, fuzzy
msgid "Format"
-msgstr "normaal"
+msgstr "Opmaak"
msgid "Precision"
-msgstr ""
+msgstr "Precisie"
msgid "Width"
msgstr "Breedte"
msgid "Fill char"
-msgstr ""
+msgstr "Karakters vullen"
msgid "Force width"
-msgstr ""
+msgstr "Breedte forceren"
msgid "Multiplier"
-msgstr ""
+msgstr "Vermenigvuldiger"
-#, fuzzy
msgid "Summand"
-msgstr "Commentaar"
+msgstr "Lid"
msgid "Filter"
-msgstr ""
+msgstr "Filter"
msgid "Separator"
-msgstr ""
+msgstr "Scheidingslijn"
msgid "Sort"
-msgstr ""
+msgstr "Sorteren"
-#, fuzzy
msgid "Append code"
-msgstr "Uiterlijk"
+msgstr "Code toewijzen"
msgid "Has return"
-msgstr ""
+msgstr "Heeft return"
msgid "Code"
-msgstr ""
+msgstr "Code"
msgid "Tag"
msgstr "Sleutelwoord"
@@ -592,81 +565,76 @@ msgid ""
"text-decoration: underline; color:#0057ae;\">http://finance.yahoo.com/"
"span>