mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-04-24 23:47:20 +00:00
possible fix #75
I've added 'optimize' option (by default true). If it options is set then sources will be checked if they are required (with dependencies if any). And if they are not required they will be dropped by using common mechanism. Please note that if this option enabled the following features (at the moment) will be unavailable: * key request from context menu (from configuration interface it still works) * notifications event if sources on which notification is not connected I suppose this commit will increase performance in about 4-5 times.
This commit is contained in:
parent
54e1545bb1
commit
d856fa8e97
@ -32,6 +32,9 @@
|
||||
<entry name="checkUpdates" type="bool">
|
||||
<default>true</default>
|
||||
</entry>
|
||||
<entry name="optimize" type="bool">
|
||||
<default>true</default>
|
||||
</entry>
|
||||
<entry name="height" type="int">
|
||||
<default>0</default>
|
||||
</entry>
|
||||
@ -95,13 +98,13 @@
|
||||
<entry name="swapTooltipColor" type="string">
|
||||
<default>#ffff00</default>
|
||||
</entry>
|
||||
<entry name="downTooltip" type="bool">
|
||||
<entry name="downkbTooltip" type="bool">
|
||||
<default>true</default>
|
||||
</entry>
|
||||
<entry name="downTooltipColor" type="string">
|
||||
<entry name="downkbTooltipColor" type="string">
|
||||
<default>#00ffff</default>
|
||||
</entry>
|
||||
<entry name="upTooltipColor" type="string">
|
||||
<entry name="upkbTooltipColor" type="string">
|
||||
<default>#ff00ff</default>
|
||||
</entry>
|
||||
<entry name="batTooltip" type="bool">
|
||||
|
@ -45,6 +45,7 @@ Item {
|
||||
property alias cfg_wrapText: wordWrap.checked
|
||||
property alias cfg_notify: notify.checked
|
||||
property alias cfg_checkUpdates: updates.checked
|
||||
property alias cfg_optimize: optimize.checked
|
||||
property alias cfg_height: widgetHeight.value
|
||||
property alias cfg_width: widgetWidth.value
|
||||
property alias cfg_interval: update.value
|
||||
@ -143,6 +144,20 @@ Item {
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
height: implicitHeight
|
||||
width: parent.width
|
||||
QtControls.Label {
|
||||
height: parent.heigth
|
||||
width: parent.width * 2 / 5
|
||||
}
|
||||
QtControls.CheckBox {
|
||||
id: optimize
|
||||
width: parent.width * 3 / 5
|
||||
text: i18n("Optimize subscription")
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
height: implicitHeight
|
||||
width: parent.width
|
||||
|
@ -46,15 +46,15 @@ Item {
|
||||
"cpuclTooltip": plasmoid.configuration.cpuclTooltip,
|
||||
"memTooltip": plasmoid.configuration.memTooltip,
|
||||
"swapTooltip": plasmoid.configuration.swapTooltip,
|
||||
"downTooltip": plasmoid.configuration.downTooltip,
|
||||
"upTooltip": plasmoid.configuration.downTooltip,
|
||||
"downkbTooltip": plasmoid.configuration.downkbTooltip,
|
||||
"upkbTooltip": plasmoid.configuration.downkbTooltip,
|
||||
"batTooltip": plasmoid.configuration.batTooltip,
|
||||
"cpuTooltipColor": plasmoid.configuration.cpuTooltipColor,
|
||||
"cpuclTooltipColor": plasmoid.configuration.cpuclTooltipColor,
|
||||
"memTooltipColor": plasmoid.configuration.memTooltipColor,
|
||||
"swapTooltipColor": plasmoid.configuration.swapTooltipColor,
|
||||
"downTooltipColor": plasmoid.configuration.downTooltipColor,
|
||||
"upTooltipColor": plasmoid.configuration.upTooltipColor,
|
||||
"downkbTooltipColor": plasmoid.configuration.downkbTooltipColor,
|
||||
"upkbTooltipColor": plasmoid.configuration.upkbTooltipColor,
|
||||
"batTooltipColor": plasmoid.configuration.batTooltipColor,
|
||||
"batInTooltipColor": plasmoid.configuration.batInTooltipColor,
|
||||
// additional field to parse AC status
|
||||
@ -136,7 +136,9 @@ Item {
|
||||
if (debug) console.debug()
|
||||
|
||||
// actions
|
||||
plasmoid.setAction("requestKey", i18n("Request key"), "utilities-system-monitor")
|
||||
// it makes no sense to use this field with optimization enable
|
||||
if (!plasmoid.configuration.optimize)
|
||||
plasmoid.setAction("requestKey", i18n("Request key"), "utilities-system-monitor")
|
||||
plasmoid.setAction("showReadme", i18n("Show README"), "text-x-readme")
|
||||
plasmoid.setAction("checkUpdates", i18n("Check updates"), "system-software-update")
|
||||
// init submodule
|
||||
@ -187,9 +189,9 @@ Item {
|
||||
if (debug) console.debug()
|
||||
|
||||
// init submodule
|
||||
awKeys.initKeys(plasmoid.configuration.text, plasmoid.configuration.interval,
|
||||
plasmoid.configuration.queueLimit)
|
||||
awKeys.initDataAggregator(tooltipSettings)
|
||||
awKeys.initKeys(plasmoid.configuration.text, plasmoid.configuration.interval,
|
||||
plasmoid.configuration.queueLimit, plasmoid.configuration.optimize)
|
||||
awKeys.setWrapNewLines(plasmoid.configuration.wrapNewLines)
|
||||
// configure aggregator
|
||||
awKeys.setAggregatorProperty("acOffline", plasmoid.configuration.acOffline)
|
||||
|
@ -48,9 +48,9 @@ Item {
|
||||
property alias cfg_memTooltipColor: memTooltipColor.text
|
||||
property alias cfg_swapTooltip: swapTooltip.checked
|
||||
property alias cfg_swapTooltipColor: swapTooltipColor.text
|
||||
property alias cfg_downTooltip: downTooltip.checked
|
||||
property alias cfg_downTooltipColor: downTooltipColor.text
|
||||
property alias cfg_upTooltipColor: upTooltipColor.text
|
||||
property alias cfg_downkbTooltip: downkbTooltip.checked
|
||||
property alias cfg_downkbTooltipColor: downkbTooltipColor.text
|
||||
property alias cfg_upkbTooltipColor: upkbTooltipColor.text
|
||||
property alias cfg_batTooltip: batTooltip.checked
|
||||
property alias cfg_batTooltipColor: batTooltipColor.text
|
||||
property alias cfg_batInTooltipColor: batInTooltipColor.text
|
||||
@ -273,7 +273,7 @@ Item {
|
||||
}
|
||||
|
||||
QtControls.GroupBox {
|
||||
id: downTooltip
|
||||
id: downkbTooltip
|
||||
height: implicitHeight
|
||||
width: parent.width
|
||||
checkable: true
|
||||
@ -292,22 +292,22 @@ Item {
|
||||
text: i18n("Download speed color")
|
||||
}
|
||||
QtControls.Button {
|
||||
id: downTooltipColor
|
||||
id: downkbTooltipColor
|
||||
width: parent.width * 3 / 5
|
||||
style: QtStyles.ButtonStyle {
|
||||
background: Rectangle {
|
||||
color: plasmoid.configuration.downTooltipColor
|
||||
color: plasmoid.configuration.downkbTooltipColor
|
||||
}
|
||||
}
|
||||
text: plasmoid.configuration.downTooltipColor
|
||||
onClicked: downTooltipColorDialog.visible = true
|
||||
text: plasmoid.configuration.downkbTooltipColor
|
||||
onClicked: downkbTooltipColorDialog.visible = true
|
||||
}
|
||||
|
||||
QtDialogs.ColorDialog {
|
||||
id: downTooltipColorDialog
|
||||
id: downkbTooltipColorDialog
|
||||
title: i18n("Select a color")
|
||||
color: downTooltipColor.text
|
||||
onAccepted: downTooltipColor.text = downTooltipColorDialog.color
|
||||
color: downkbTooltipColor.text
|
||||
onAccepted: downkbTooltipColor.text = downkbTooltipColorDialog.color
|
||||
}
|
||||
}
|
||||
Row {
|
||||
@ -321,22 +321,22 @@ Item {
|
||||
text: i18n("Upload speed color")
|
||||
}
|
||||
QtControls.Button {
|
||||
id: upTooltipColor
|
||||
id: upkbTooltipColor
|
||||
width: parent.width * 3 / 5
|
||||
style: QtStyles.ButtonStyle {
|
||||
background: Rectangle {
|
||||
color: plasmoid.configuration.upTooltipColor
|
||||
color: plasmoid.configuration.upkbTooltipColor
|
||||
}
|
||||
}
|
||||
text: plasmoid.configuration.upTooltipColor
|
||||
onClicked: upTooltipColorDialog.visible = true
|
||||
text: plasmoid.configuration.upkbTooltipColor
|
||||
onClicked: upkbTooltipColorDialog.visible = true
|
||||
}
|
||||
|
||||
QtDialogs.ColorDialog {
|
||||
id: upTooltipColorDialog
|
||||
id: upkbTooltipColorDialog
|
||||
title: i18n("Select a color")
|
||||
color: upTooltipColor.text
|
||||
onAccepted: upTooltipColor.text = upTooltipColorDialog.color
|
||||
color: upkbTooltipColor.text
|
||||
onAccepted: upkbTooltipColor.text = upkbTooltipColorDialog.color
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -318,7 +318,7 @@ Item {
|
||||
onClicked: {
|
||||
lock = false
|
||||
awKeys.initKeys(textPattern.text, plasmoid.configuration.interval,
|
||||
plasmoid.configuration.queueLimit)
|
||||
plasmoid.configuration.queueLimit, false)
|
||||
awKeys.needToBeUpdated()
|
||||
}
|
||||
}
|
||||
@ -346,7 +346,7 @@ Item {
|
||||
awKeys.needTextToBeUpdated.connect(needTextUpdate)
|
||||
// init submodule
|
||||
awKeys.initKeys(plasmoid.configuration.text, plasmoid.configuration.interval,
|
||||
plasmoid.configuration.queueLimit)
|
||||
plasmoid.configuration.queueLimit, false)
|
||||
awKeys.setAggregatorProperty("acOffline", plasmoid.configuration.acOffline)
|
||||
awKeys.setAggregatorProperty("acOnline", plasmoid.configuration.acOnline)
|
||||
awKeys.setAggregatorProperty("customTime", plasmoid.configuration.customTime)
|
||||
|
@ -87,7 +87,7 @@ void AWDataAggregator::setParameters(QVariantMap settings)
|
||||
counts += configuration[QString("cpuclTooltip")].toInt();
|
||||
counts += configuration[QString("memTooltip")].toInt();
|
||||
counts += configuration[QString("swapTooltip")].toInt();
|
||||
counts += configuration[QString("downTooltip")].toInt();
|
||||
counts += configuration[QString("downkbTooltip")].toInt();
|
||||
counts += configuration[QString("batTooltip")].toInt();
|
||||
// resize tooltip image
|
||||
toolTipView->resize(100 * counts, 105);
|
||||
@ -96,8 +96,8 @@ void AWDataAggregator::setParameters(QVariantMap settings)
|
||||
boundaries[QString("cpuclTooltip")] = 4000.0;
|
||||
boundaries[QString("memTooltip")] = 100.0;
|
||||
boundaries[QString("swapTooltip")] = 100.0;
|
||||
boundaries[QString("downTooltip")] = 1.0;
|
||||
boundaries[QString("upTooltip")] = 1.0;
|
||||
boundaries[QString("downkbTooltip")] = 1.0;
|
||||
boundaries[QString("upkbTooltip")] = 1.0;
|
||||
boundaries[QString("batTooltip")] = 100.0;
|
||||
|
||||
requiredKeys.clear();
|
||||
@ -109,10 +109,10 @@ void AWDataAggregator::setParameters(QVariantMap settings)
|
||||
requiredKeys.append(QString("memTooltip"));
|
||||
if (configuration[QString("swapTooltip")].toBool())
|
||||
requiredKeys.append(QString("swapTooltip"));
|
||||
if (configuration[QString("downTooltip")].toBool())
|
||||
requiredKeys.append(QString("downTooltip"));
|
||||
if (configuration[QString("upTooltip")].toBool())
|
||||
requiredKeys.append(QString("upTooltip"));
|
||||
if (configuration[QString("downkbTooltip")].toBool())
|
||||
requiredKeys.append(QString("downkbTooltip"));
|
||||
if (configuration[QString("upkbTooltip")].toBool())
|
||||
requiredKeys.append(QString("upkbTooltip"));
|
||||
if (configuration[QString("batTooltip")].toBool())
|
||||
requiredKeys.append(QString("batTooltip"));
|
||||
|
||||
@ -133,9 +133,9 @@ QPixmap AWDataAggregator::tooltipImage()
|
||||
bool down = false;
|
||||
for (auto key : requiredKeys) {
|
||||
// create frame
|
||||
float normX = 100.0 / static_cast<float>(data[key].count());
|
||||
float normY = 100.0 / (1.5 * boundaries[key]);
|
||||
float shift = requiredKeys.indexOf(key) * 100.0;
|
||||
float normX = 100.0f / static_cast<float>(data[key].count());
|
||||
float normY = 100.0f / (1.5f * boundaries[key]);
|
||||
float shift = requiredKeys.indexOf(key) * 100.0f;
|
||||
if (down)
|
||||
shift -= 100.0;
|
||||
// apply pen color
|
||||
@ -146,9 +146,9 @@ QPixmap AWDataAggregator::tooltipImage()
|
||||
for (int j = 0; j < data[key].count() - 1; j++) {
|
||||
// some magic here
|
||||
float x1 = j * normX + shift;
|
||||
float y1 = -fabs(data[key].at(j)) * normY + 5.0;
|
||||
float y1 = -fabs(data[key].at(j)) * normY + 5.0f;
|
||||
float x2 = (j + 1) * normX + shift;
|
||||
float y2 = -fabs(data[key].at(j + 1)) * normY + 5.0;
|
||||
float y2 = -fabs(data[key].at(j + 1)) * normY + 5.0f;
|
||||
if (key == QString("batTooltip")) {
|
||||
if (data[key].at(j + 1) > 0)
|
||||
pen.setColor(QColor(
|
||||
@ -160,7 +160,7 @@ QPixmap AWDataAggregator::tooltipImage()
|
||||
}
|
||||
toolTipScene->addLine(x1, y1, x2, y2, pen);
|
||||
}
|
||||
if (key == QString("downTooltip"))
|
||||
if (key == QString("downkbTooltip"))
|
||||
down = true;
|
||||
}
|
||||
|
||||
@ -265,8 +265,8 @@ void AWDataAggregator::setData(const QHash<QString, QString> &values)
|
||||
setData(QString("cpuclTooltip"), values[QString("cpucl")].toFloat());
|
||||
setData(QString("memTooltip"), values[QString("mem")].toFloat(), 90.0);
|
||||
setData(QString("swapTooltip"), values[QString("swap")].toFloat(), 0.0);
|
||||
setData(QString("downTooltip"), values[QString("downkb")].toFloat());
|
||||
setData(QString("upTooltip"), values[QString("upkb")].toFloat());
|
||||
setData(QString("downkbTooltip"), values[QString("downkb")].toFloat());
|
||||
setData(QString("upkbTooltip"), values[QString("upkb")].toFloat());
|
||||
// additional check for network device
|
||||
[this](const QString value) {
|
||||
checkValue(QString("netdev"), currentNetworkDevice, value);
|
||||
@ -298,12 +298,13 @@ void AWDataAggregator::setData(const QString &source, float value,
|
||||
checkValue(source, value, extremum);
|
||||
|
||||
data[source].append(value);
|
||||
if (source == QString("downTooltip")) {
|
||||
if (source == QString("downkbTooltip")) {
|
||||
QList<float> netValues
|
||||
= data[QString("downTooltip")] + data[QString("upTooltip")];
|
||||
boundaries[QString("downTooltip")]
|
||||
= data[QString("downkbTooltip")] + data[QString("upkbTooltip")];
|
||||
boundaries[QString("downkbTooltip")]
|
||||
= 1.2 * *std::max_element(netValues.cbegin(), netValues.cend());
|
||||
boundaries[QString("upTooltip")] = boundaries[QString("downTooltip")];
|
||||
boundaries[QString("upkbTooltip")]
|
||||
= boundaries[QString("downkbTooltip")];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -21,14 +21,10 @@
|
||||
#include "awkeys.h"
|
||||
|
||||
|
||||
AWDataEngineAggregator::AWDataEngineAggregator(QObject *parent,
|
||||
const int interval)
|
||||
AWDataEngineAggregator::AWDataEngineAggregator(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
qCDebug(LOG_AW) << __PRETTY_FUNCTION__;
|
||||
|
||||
setInterval(interval);
|
||||
initDataEngines();
|
||||
}
|
||||
|
||||
|
||||
@ -36,10 +32,17 @@ AWDataEngineAggregator::~AWDataEngineAggregator()
|
||||
{
|
||||
qCDebug(LOG_AW) << __PRETTY_FUNCTION__;
|
||||
|
||||
clear();
|
||||
}
|
||||
|
||||
|
||||
void AWDataEngineAggregator::clear()
|
||||
{
|
||||
// disconnect sources first
|
||||
disconnectSources();
|
||||
m_dataEngines.clear();
|
||||
delete m_consumer;
|
||||
m_consumer = nullptr;
|
||||
}
|
||||
|
||||
|
||||
@ -51,11 +54,27 @@ void AWDataEngineAggregator::disconnectSources()
|
||||
}
|
||||
|
||||
|
||||
void AWDataEngineAggregator::setInterval(const int _interval)
|
||||
void AWDataEngineAggregator::initDataEngines(const int interval)
|
||||
{
|
||||
qCDebug(LOG_AW) << "Interval" << _interval;
|
||||
qCDebug(LOG_AW) << "Init dataengines with interval" << interval;
|
||||
|
||||
m_interval = _interval;
|
||||
m_consumer = new Plasma::DataEngineConsumer();
|
||||
m_dataEngines[QString("systemmonitor")]
|
||||
= m_consumer->dataEngine(QString("systemmonitor"));
|
||||
m_dataEngines[QString("extsysmon")]
|
||||
= m_consumer->dataEngine(QString("extsysmon"));
|
||||
m_dataEngines[QString("time")] = m_consumer->dataEngine(QString("time"));
|
||||
|
||||
// additional method required by systemmonitor structure
|
||||
connect(m_dataEngines[QString("systemmonitor")],
|
||||
&Plasma::DataEngine::sourceAdded,
|
||||
[this, interval](const QString source) {
|
||||
emit(deviceAdded(source));
|
||||
m_dataEngines[QString("systemmonitor")]->connectSource(
|
||||
source, parent(), interval);
|
||||
});
|
||||
|
||||
return reconnectSources(interval);
|
||||
}
|
||||
|
||||
|
||||
@ -70,31 +89,13 @@ void AWDataEngineAggregator::dropSource(const QString source)
|
||||
}
|
||||
|
||||
|
||||
void AWDataEngineAggregator::reconnectSources()
|
||||
void AWDataEngineAggregator::reconnectSources(const int interval)
|
||||
{
|
||||
qCDebug(LOG_AW) << "Reconnect sources with interval" << interval;
|
||||
|
||||
m_dataEngines[QString("systemmonitor")]->connectAllSources(parent(),
|
||||
m_interval);
|
||||
m_dataEngines[QString("extsysmon")]->connectAllSources(parent(),
|
||||
m_interval);
|
||||
interval);
|
||||
m_dataEngines[QString("extsysmon")]->connectAllSources(parent(), interval);
|
||||
m_dataEngines[QString("time")]->connectSource(QString("Local"), parent(),
|
||||
1000);
|
||||
}
|
||||
|
||||
|
||||
void AWDataEngineAggregator::initDataEngines()
|
||||
{
|
||||
m_consumer = new Plasma::DataEngineConsumer();
|
||||
m_dataEngines[QString("systemmonitor")]
|
||||
= m_consumer->dataEngine(QString("systemmonitor"));
|
||||
m_dataEngines[QString("extsysmon")]
|
||||
= m_consumer->dataEngine(QString("extsysmon"));
|
||||
m_dataEngines[QString("time")] = m_consumer->dataEngine(QString("time"));
|
||||
|
||||
// additional method required by systemmonitor structure
|
||||
connect(m_dataEngines[QString("systemmonitor")],
|
||||
&Plasma::DataEngine::sourceAdded, [this](const QString source) {
|
||||
emit(deviceAdded(source));
|
||||
m_dataEngines[QString("systemmonitor")]->connectSource(
|
||||
source, parent(), m_interval);
|
||||
});
|
||||
}
|
||||
|
@ -28,28 +28,24 @@
|
||||
class AWDataEngineAggregator : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(int interval MEMBER m_interval WRITE setInterval);
|
||||
|
||||
public:
|
||||
explicit AWDataEngineAggregator(QObject *parent = nullptr,
|
||||
const int interval = 1000);
|
||||
explicit AWDataEngineAggregator(QObject *parent = nullptr);
|
||||
virtual ~AWDataEngineAggregator();
|
||||
void clear();
|
||||
void disconnectSources();
|
||||
// properties
|
||||
void setInterval(const int _interval);
|
||||
void initDataEngines(const int interval);
|
||||
|
||||
signals:
|
||||
void deviceAdded(const QString &source);
|
||||
|
||||
public slots:
|
||||
void dropSource(const QString source);
|
||||
void reconnectSources();
|
||||
void reconnectSources(const int interval);
|
||||
|
||||
private:
|
||||
void initDataEngines();
|
||||
Plasma::DataEngineConsumer *m_consumer = nullptr;
|
||||
QHash<QString, Plasma::DataEngine *> m_dataEngines;
|
||||
int m_interval;
|
||||
};
|
||||
|
||||
|
||||
|
@ -81,6 +81,93 @@ bool AWKeyCache::addKeyToCache(const QString type, const QString key)
|
||||
}
|
||||
|
||||
|
||||
QStringList AWKeyCache::getRequiredKeys(const QStringList &keys,
|
||||
const QStringList &bars,
|
||||
const QVariantMap &tooltip,
|
||||
const QStringList &allKeys)
|
||||
{
|
||||
qCDebug(LOG_AW) << "Looking for required keys in" << keys << bars
|
||||
<< "using tooltip settings" << tooltip;
|
||||
|
||||
// initial copy
|
||||
QSet<QString> used = QSet<QString>::fromList(keys);
|
||||
// insert bars
|
||||
for (auto bar : bars) {
|
||||
bar.remove(QRegExp(QString("^bar[0-9]{1,}")));
|
||||
used << bar;
|
||||
}
|
||||
// insert keys from tooltip
|
||||
for (auto key : tooltip.keys()) {
|
||||
if ((key.endsWith(QString("Tooltip"))) && (tooltip[key].toBool())) {
|
||||
key.remove(QString("Tooltip"));
|
||||
used << key;
|
||||
}
|
||||
}
|
||||
|
||||
// insert depending keys, refer to AWKeys::calculateValues()
|
||||
// hddtotmb*
|
||||
for (auto key : allKeys.filter(QRegExp(QString("^hddtotmb")))) {
|
||||
if (!used.contains(key))
|
||||
continue;
|
||||
key.remove(QString("hddtotmb"));
|
||||
int index = key.toInt();
|
||||
used << QString("hddfreemb%1").arg(index)
|
||||
<< QString("hddmb%1").arg(index);
|
||||
}
|
||||
// hddtotgb*
|
||||
for (auto key : allKeys.filter(QRegExp(QString("^hddtotgb")))) {
|
||||
if (!used.contains(key))
|
||||
continue;
|
||||
key.remove(QString("hddtotgb"));
|
||||
int index = key.toInt();
|
||||
used << QString("hddfreegb%1").arg(index)
|
||||
<< QString("hddgb%1").arg(index);
|
||||
}
|
||||
// mem
|
||||
if (used.contains(QString("mem")))
|
||||
used << QString("memmb") << QString("memtotmb");
|
||||
// memtotmb
|
||||
if (used.contains(QString("memtotmb")))
|
||||
used << QString("memusedmb") << QString("memfreemb");
|
||||
// memtotgb
|
||||
if (used.contains(QString("memtotgb")))
|
||||
used << QString("memusedgb") << QString("memfreegb");
|
||||
// swap
|
||||
if (used.contains(QString("swap")))
|
||||
used << QString("swapmb") << QString("swaptotmb");
|
||||
// swaptotmb
|
||||
if (used.contains(QString("swaptotmb")))
|
||||
used << QString("swapmb") << QString("swapfreemb");
|
||||
// memtotgb
|
||||
if (used.contains(QString("swaptotgb")))
|
||||
used << QString("swapgb") << QString("swapfreegb");
|
||||
// network keys
|
||||
QStringList netKeys(QStringList() << QString("up") << QString("upkb")
|
||||
<< QString("upunits") << QString("down")
|
||||
<< QString("downkb")
|
||||
<< QString("downunits"));
|
||||
for (auto key : netKeys) {
|
||||
if (!used.contains(key))
|
||||
continue;
|
||||
QStringList filt
|
||||
= allKeys.filter(QRegExp(QString("^%1[0-9]{1,}").arg(key)));
|
||||
for (auto filtered : filt)
|
||||
used << filtered;
|
||||
}
|
||||
// netdev key
|
||||
if (std::any_of(netKeys.cbegin(), netKeys.cend(),
|
||||
[&used](const QString &key) { return used.contains(key); }))
|
||||
used << QString("netdev");
|
||||
|
||||
// HACK append dummy if there are no other keys. This hack is required
|
||||
// because empty list leads to the same behaviour as skip checking
|
||||
if (used.isEmpty())
|
||||
used << QString("dummy");
|
||||
|
||||
return used.toList();
|
||||
}
|
||||
|
||||
|
||||
QHash<QString, QStringList> AWKeyCache::loadKeysFromCache()
|
||||
{
|
||||
QString fileName = QString("%1/awesomewidgets.ndx")
|
||||
|
@ -21,11 +21,15 @@
|
||||
|
||||
#include <QHash>
|
||||
#include <QString>
|
||||
#include <QVariant>
|
||||
|
||||
|
||||
namespace AWKeyCache
|
||||
{
|
||||
bool addKeyToCache(const QString type, const QString key = QString(""));
|
||||
QStringList getRequiredKeys(const QStringList &keys, const QStringList &bars,
|
||||
const QVariantMap &tooltip,
|
||||
const QStringList &allKeys);
|
||||
QHash<QString, QStringList> loadKeysFromCache();
|
||||
};
|
||||
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "awdataaggregator.h"
|
||||
#include "awdataengineaggregator.h"
|
||||
#include "awdebug.h"
|
||||
#include "awkeycache.h"
|
||||
#include "awkeyoperations.h"
|
||||
#include "awkeysaggregator.h"
|
||||
#include "awpatternfunctions.h"
|
||||
@ -45,7 +46,9 @@ AWKeys::AWKeys(QObject *parent)
|
||||
|
||||
aggregator = new AWKeysAggregator(this);
|
||||
dataAggregator = new AWDataAggregator(this);
|
||||
dataEngineAggregator = new AWDataEngineAggregator(this);
|
||||
keyOperator = new AWKeyOperations(this);
|
||||
|
||||
// update key data if required
|
||||
connect(keyOperator, SIGNAL(updateKeys(QStringList)), this,
|
||||
SLOT(reinitKeys(QStringList)));
|
||||
@ -53,6 +56,11 @@ AWKeys::AWKeys(QObject *parent)
|
||||
connect(dataAggregator, SIGNAL(toolTipPainted(const QString)), this,
|
||||
SIGNAL(needToolTipToBeUpdated(const QString)));
|
||||
connect(this, SIGNAL(needToBeUpdated()), this, SLOT(updateTextData()));
|
||||
connect(this, SIGNAL(dropSourceFromDataengine(QString)),
|
||||
dataEngineAggregator, SLOT(dropSource(QString)));
|
||||
// transfer signal from dataengine to update source list
|
||||
connect(dataEngineAggregator, SIGNAL(deviceAdded(const QString &)),
|
||||
keyOperator, SLOT(addDevice(const QString &)));
|
||||
}
|
||||
|
||||
|
||||
@ -73,32 +81,29 @@ void AWKeys::initDataAggregator(const QVariantMap tooltipParams)
|
||||
{
|
||||
qCDebug(LOG_AW) << "Tooltip parameters" << tooltipParams;
|
||||
|
||||
dataAggregator->setParameters(tooltipParams);
|
||||
// store parameters to generate m_requiredKeys
|
||||
m_tooltipParams = tooltipParams;
|
||||
dataAggregator->setParameters(m_tooltipParams);
|
||||
}
|
||||
|
||||
|
||||
void AWKeys::initKeys(const QString currentPattern, const int interval,
|
||||
const int limit)
|
||||
const int limit, const bool optimize)
|
||||
{
|
||||
qCDebug(LOG_AW) << "Pattern" << currentPattern << "with interval"
|
||||
<< interval << "and queue limit" << limit;
|
||||
<< interval << "and queue limit" << limit
|
||||
<< "with optimization" << optimize;
|
||||
|
||||
// init
|
||||
keyOperator->setPattern(currentPattern);
|
||||
if (dataEngineAggregator == nullptr) {
|
||||
dataEngineAggregator = new AWDataEngineAggregator(this, interval);
|
||||
connect(this, SIGNAL(dropSourceFromDataengine(QString)),
|
||||
dataEngineAggregator, SLOT(dropSource(QString)));
|
||||
// transfer signal from dataengine to update source list
|
||||
connect(dataEngineAggregator, SIGNAL(deviceAdded(const QString &)),
|
||||
keyOperator, SLOT(addDevice(const QString &)));
|
||||
} else
|
||||
dataEngineAggregator->setInterval(interval);
|
||||
m_optimize = optimize;
|
||||
m_threadPool->setMaxThreadCount(limit == 0 ? QThread::idealThreadCount()
|
||||
: limit);
|
||||
// child objects
|
||||
keyOperator->setPattern(currentPattern);
|
||||
keyOperator->updateCache();
|
||||
dataEngineAggregator->clear();
|
||||
|
||||
return dataEngineAggregator->reconnectSources();
|
||||
return dataEngineAggregator->initDataEngines(interval);
|
||||
}
|
||||
|
||||
|
||||
@ -200,6 +205,11 @@ void AWKeys::reinitKeys(const QStringList currentKeys)
|
||||
m_foundKeys
|
||||
= AWPatternFunctions::findKeys(keyOperator->pattern(), currentKeys);
|
||||
m_foundLambdas = AWPatternFunctions::findLambdas(keyOperator->pattern());
|
||||
// get required keys
|
||||
m_requiredKeys
|
||||
= m_optimize ? AWKeyCache::getRequiredKeys(m_foundKeys, m_foundBars,
|
||||
m_tooltipParams, currentKeys)
|
||||
: QStringList();
|
||||
|
||||
// set key data to aggregator
|
||||
aggregator->setDevices(keyOperator->devices());
|
||||
@ -347,8 +357,8 @@ void AWKeys::setDataBySource(const QString &sourceName, const QVariantMap &data)
|
||||
// first list init
|
||||
QStringList tags = aggregator->keysFromSource(sourceName);
|
||||
if (tags.isEmpty())
|
||||
tags = aggregator->registerSource(sourceName,
|
||||
data[QString("units")].toString());
|
||||
tags = aggregator->registerSource(
|
||||
sourceName, data[QString("units")].toString(), m_requiredKeys);
|
||||
|
||||
// update data or drop source if there are no matches and exit
|
||||
if (tags.isEmpty()) {
|
||||
|
@ -40,7 +40,7 @@ public:
|
||||
virtual ~AWKeys();
|
||||
Q_INVOKABLE void initDataAggregator(const QVariantMap tooltipParams);
|
||||
Q_INVOKABLE void initKeys(const QString currentPattern, const int interval,
|
||||
const int limit);
|
||||
const int limit, const bool optimize);
|
||||
Q_INVOKABLE void setAggregatorProperty(const QString key,
|
||||
const QVariant value);
|
||||
Q_INVOKABLE void setWrapNewLines(const bool wrap = false);
|
||||
@ -84,8 +84,10 @@ private:
|
||||
AWKeysAggregator *aggregator = nullptr;
|
||||
AWKeyOperations *keyOperator = nullptr;
|
||||
// variables
|
||||
QStringList m_foundBars, m_foundKeys, m_foundLambdas;
|
||||
QVariantMap m_tooltipParams;
|
||||
QStringList m_foundBars, m_foundKeys, m_foundLambdas, m_requiredKeys;
|
||||
QHash<QString, QString> values;
|
||||
bool m_optimize = false;
|
||||
bool m_wrapNewLines = false;
|
||||
// multithread features
|
||||
QThreadPool *m_threadPool = nullptr;
|
||||
|
@ -154,15 +154,6 @@ QStringList AWKeysAggregator::keysFromSource(const QString &source) const
|
||||
}
|
||||
|
||||
|
||||
QStringList
|
||||
AWKeysAggregator::requiredByKeysFromSource(const QString &source) const
|
||||
{
|
||||
qCDebug(LOG_AW) << "Search for source" << source;
|
||||
|
||||
return m_requiredByMap.values(source);
|
||||
}
|
||||
|
||||
|
||||
void AWKeysAggregator::setAcOffline(const QString inactive)
|
||||
{
|
||||
qCDebug(LOG_AW) << "Inactive AC string" << inactive;
|
||||
@ -222,7 +213,8 @@ void AWKeysAggregator::setTranslate(const bool translate)
|
||||
// HACK units required to define should the value be calculated as temperature
|
||||
// or fan data
|
||||
QStringList AWKeysAggregator::registerSource(const QString &source,
|
||||
const QString &units)
|
||||
const QString &units,
|
||||
const QStringList &keys)
|
||||
{
|
||||
qCDebug(LOG_AW) << "Source" << source << "with units" << units;
|
||||
|
||||
@ -338,11 +330,6 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
|
||||
key = QString("hddfreegb%1").arg(index);
|
||||
m_map.insertMulti(source, key);
|
||||
m_formater[key] = MemGBFormat;
|
||||
// fill required by list
|
||||
m_requiredByMap.insertMulti(source,
|
||||
QString("hddtotmb%1").arg(index));
|
||||
m_requiredByMap.insertMulti(source,
|
||||
QString("hddtotgb%1").arg(index));
|
||||
}
|
||||
} else if (source.contains(mountUsedRegExp)) {
|
||||
// used
|
||||
@ -358,11 +345,6 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
|
||||
key = QString("hddgb%1").arg(index);
|
||||
m_map.insertMulti(source, key);
|
||||
m_formater[key] = MemGBFormat;
|
||||
// fill required by list
|
||||
m_requiredByMap.insertMulti(source,
|
||||
QString("hddtotmb%1").arg(index));
|
||||
m_requiredByMap.insertMulti(source,
|
||||
QString("hddtotgb%1").arg(index));
|
||||
}
|
||||
} else if (source.startsWith(QString("hdd/temperature"))) {
|
||||
// hdd temperature
|
||||
@ -389,8 +371,6 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
|
||||
// gb
|
||||
m_map.insertMulti(source, QString("memgb"));
|
||||
m_formater[QString("memgb")] = MemGBFormat;
|
||||
// fill required by list
|
||||
m_requiredByMap.insertMulti(source, QString("mem"));
|
||||
} else if (source == QString("mem/physical/free")) {
|
||||
// free memory
|
||||
// mb
|
||||
@ -399,10 +379,6 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
|
||||
// gb
|
||||
m_map.insertMulti(source, QString("memfreegb"));
|
||||
m_formater[QString("memfreegb")] = MemGBFormat;
|
||||
// fill required by list
|
||||
m_requiredByMap.insertMulti(source, QString("memtotmb"));
|
||||
m_requiredByMap.insertMulti(source, QString("memtotgb"));
|
||||
m_requiredByMap.insertMulti(source, QString("mem"));
|
||||
} else if (source == QString("mem/physical/used")) {
|
||||
// used memory
|
||||
// mb
|
||||
@ -411,21 +387,10 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
|
||||
// gb
|
||||
m_map.insertMulti(source, QString("memusedgb"));
|
||||
m_formater[QString("memusedgb")] = MemGBFormat;
|
||||
// fill required by list
|
||||
m_requiredByMap.insertMulti(source, QString("memtotmb"));
|
||||
m_requiredByMap.insertMulti(source, QString("memtotgb"));
|
||||
m_requiredByMap.insertMulti(source, QString("mem"));
|
||||
} else if (source == QString("network/current/name")) {
|
||||
// network device
|
||||
m_map[source] = QString("netdev");
|
||||
m_formater[QString("netdev")] = NoFormat;
|
||||
// fill required by list
|
||||
m_requiredByMap.insertMulti(source, QString("down"));
|
||||
m_requiredByMap.insertMulti(source, QString("downkb"));
|
||||
m_requiredByMap.insertMulti(source, QString("downunits"));
|
||||
m_requiredByMap.insertMulti(source, QString("up"));
|
||||
m_requiredByMap.insertMulti(source, QString("upkb"));
|
||||
m_requiredByMap.insertMulti(source, QString("upunits"));
|
||||
} else if (source.contains(netRegExp)) {
|
||||
// network speed
|
||||
QString type = source.contains(QString("receiver")) ? QString("down")
|
||||
@ -446,13 +411,6 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
|
||||
m_map.insertMulti(source, key);
|
||||
m_formater[key] = NetSmartUnits;
|
||||
}
|
||||
// fill required by list
|
||||
m_requiredByMap.insertMulti(source, QString("%1").arg(type));
|
||||
m_requiredByMap.insertMulti(source, QString("%1kb").arg(type));
|
||||
m_requiredByMap.insertMulti(source, QString("%1units").arg(type));
|
||||
m_requiredByMap.insertMulti(source, QString("%1").arg(type));
|
||||
m_requiredByMap.insertMulti(source, QString("%1kb").arg(type));
|
||||
m_requiredByMap.insertMulti(source, QString("%1units").arg(type));
|
||||
} else if (source.startsWith(QString("upgrade"))) {
|
||||
// package manager
|
||||
QString key = source;
|
||||
@ -491,10 +449,6 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
|
||||
// gb
|
||||
m_map.insertMulti(source, QString("swapfreegb"));
|
||||
m_formater[QString("swapfreegb")] = MemGBFormat;
|
||||
// fill required by list
|
||||
m_requiredByMap.insertMulti(source, QString("swaptotmb"));
|
||||
m_requiredByMap.insertMulti(source, QString("swaptotgb"));
|
||||
m_requiredByMap.insertMulti(source, QString("swap"));
|
||||
} else if (source == QString("mem/swap/used")) {
|
||||
// used swap
|
||||
// mb
|
||||
@ -503,10 +457,6 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
|
||||
// gb
|
||||
m_map.insertMulti(source, QString("swapgb"));
|
||||
m_formater[QString("swapgb")] = MemGBFormat;
|
||||
// fill required by list
|
||||
m_requiredByMap.insertMulti(source, QString("swaptotmb"));
|
||||
m_requiredByMap.insertMulti(source, QString("swaptotgb"));
|
||||
m_requiredByMap.insertMulti(source, QString("swap"));
|
||||
} else if (source.startsWith(QString("lmsensors/"))) {
|
||||
// temperature
|
||||
int index = m_devices[QString("temp")].indexOf(source);
|
||||
@ -561,6 +511,18 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
|
||||
m_formater[key] = Temperature;
|
||||
}
|
||||
|
||||
// drop key from dictionary if no one user requested key required it
|
||||
QStringList foundKeys = keysFromSource(source);
|
||||
qCInfo(LOG_AW) << "Looking for keys" << foundKeys << "in" << keys;
|
||||
// let required if key list is empty no one use it
|
||||
bool required
|
||||
= keys.isEmpty() || std::any_of(foundKeys.cbegin(), foundKeys.cend(),
|
||||
[&keys](const QString &key) {
|
||||
return keys.contains(key);
|
||||
});
|
||||
if (!required)
|
||||
m_map.remove(source);
|
||||
|
||||
return keysFromSource(source);
|
||||
}
|
||||
|
||||
@ -572,17 +534,17 @@ float AWKeysAggregator::temperature(const float temp) const
|
||||
float converted = temp;
|
||||
if (m_tempUnits == QString("Celsius")) {
|
||||
} else if (m_tempUnits == QString("Fahrenheit")) {
|
||||
converted = temp * 9.0 / 5.0 + 32.0;
|
||||
converted = temp * 9.0f / 5.0f + 32.0f;
|
||||
} else if (m_tempUnits == QString("Kelvin")) {
|
||||
converted = temp + 273.15;
|
||||
converted = temp + 273.15f;
|
||||
} else if (m_tempUnits == QString("Reaumur")) {
|
||||
converted = temp * 0.8;
|
||||
converted = temp * 0.8f;
|
||||
} else if (m_tempUnits == QString("cm^-1")) {
|
||||
converted = (temp + 273.15) * 0.695;
|
||||
converted = (temp + 273.15f) * 0.695f;
|
||||
} else if (m_tempUnits == QString("kJ/mol")) {
|
||||
converted = (temp + 273.15) * 8.31;
|
||||
converted = (temp + 273.15f) * 8.31f;
|
||||
} else if (m_tempUnits == QString("kcal/mol")) {
|
||||
converted = (temp + 273.15) * 1.98;
|
||||
converted = (temp + 273.15f) * 1.98f;
|
||||
} else {
|
||||
qCWarning(LOG_AW) << "Invalid units" << m_tempUnits;
|
||||
}
|
||||
|
@ -67,7 +67,6 @@ public:
|
||||
// get methods
|
||||
QString formater(const QVariant &data, const QString &key) const;
|
||||
QStringList keysFromSource(const QString &source) const;
|
||||
QStringList requiredByKeysFromSource(const QString &source) const;
|
||||
// set methods
|
||||
void setAcOffline(const QString inactive);
|
||||
void setAcOnline(const QString active);
|
||||
@ -78,7 +77,8 @@ public:
|
||||
void setTranslate(const bool translate);
|
||||
|
||||
public slots:
|
||||
QStringList registerSource(const QString &source, const QString &units);
|
||||
QStringList registerSource(const QString &source, const QString &units,
|
||||
const QStringList &keys = QStringList());
|
||||
|
||||
private:
|
||||
float temperature(const float temp) const;
|
||||
@ -91,7 +91,6 @@ private:
|
||||
QHash<QString, QStringList> m_devices;
|
||||
QHash<QString, FormaterType> m_formater;
|
||||
QHash<QString, QString> m_map;
|
||||
QHash<QString, QString> m_requiredByMap;
|
||||
QString m_tempUnits;
|
||||
bool m_translate = false;
|
||||
};
|
||||
|
@ -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-01-26 21:48+0300\n"
|
||||
"POT-Creation-Date: 2016-02-03 23:02+0700\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -56,6 +56,9 @@ msgstr ""
|
||||
msgid "Check updates on startup"
|
||||
msgstr ""
|
||||
|
||||
msgid "Optimize subscription"
|
||||
msgstr ""
|
||||
|
||||
msgid "Widget height, px"
|
||||
msgstr ""
|
||||
|
||||
@ -351,15 +354,15 @@ msgstr ""
|
||||
msgid "Weathers"
|
||||
msgstr ""
|
||||
|
||||
msgid "Functions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show value"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add lambda"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit bars"
|
||||
msgstr ""
|
||||
|
||||
@ -411,24 +414,6 @@ msgstr ""
|
||||
msgid "Select font"
|
||||
msgstr ""
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "No new version found"
|
||||
msgstr ""
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr ""
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr ""
|
||||
|
||||
msgid "AC online"
|
||||
msgstr ""
|
||||
|
||||
@ -456,6 +441,27 @@ msgstr ""
|
||||
msgid "KB/s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Changelog of %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "No new version found"
|
||||
msgstr ""
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr ""
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
|
||||
"POT-Creation-Date: 2016-01-26 21:48+0300\n"
|
||||
"PO-Revision-Date: 2016-01-26 21:48+0300\n"
|
||||
"POT-Creation-Date: 2016-02-03 23:02+0700\n"
|
||||
"PO-Revision-Date: 2016-02-03 23:03+0700\n"
|
||||
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
|
||||
"Language-Team: English <kde-russian@lists.kde.ru>\n"
|
||||
"Language: ru\n"
|
||||
@ -57,6 +57,9 @@ msgstr "Enable notifications"
|
||||
msgid "Check updates on startup"
|
||||
msgstr "Check updates on startup"
|
||||
|
||||
msgid "Optimize subscription"
|
||||
msgstr "Optimize subscription"
|
||||
|
||||
msgid "Widget height, px"
|
||||
msgstr "Widget height, px"
|
||||
|
||||
@ -356,15 +359,15 @@ msgstr "Upgrades"
|
||||
msgid "Weathers"
|
||||
msgstr "Weathers"
|
||||
|
||||
msgid "Functions"
|
||||
msgstr "Functions"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Add"
|
||||
|
||||
msgid "Show value"
|
||||
msgstr "Show value"
|
||||
|
||||
msgid "Add lambda"
|
||||
msgstr "Add lambda"
|
||||
|
||||
msgid "Edit bars"
|
||||
msgstr "Edit bars"
|
||||
|
||||
@ -416,24 +419,6 @@ msgstr "Special thanks to %1"
|
||||
msgid "Select font"
|
||||
msgstr "Select font"
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr "You are using the actual version %1"
|
||||
|
||||
msgid "No new version found"
|
||||
msgstr "No new version found"
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr "Current version : %1"
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr "New version : %1"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Click \"Ok\" to download"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "There are updates"
|
||||
|
||||
msgid "AC online"
|
||||
msgstr "AC online"
|
||||
|
||||
@ -461,6 +446,27 @@ msgstr "MB/s"
|
||||
msgid "KB/s"
|
||||
msgstr "KB/s"
|
||||
|
||||
msgid "Changelog of %1"
|
||||
msgstr "Changelog of %1"
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr "You are using the actual version %1"
|
||||
|
||||
msgid "No new version found"
|
||||
msgstr "No new version found"
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr "Current version : %1"
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr "New version : %1"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Click \"Ok\" to download"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "There are updates"
|
||||
|
||||
msgid "Copy"
|
||||
msgstr "Copy"
|
||||
|
||||
@ -612,6 +618,9 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "esalexeev@gmail.com"
|
||||
|
||||
#~ msgid "Add lambda"
|
||||
#~ msgstr "Add lambda"
|
||||
|
||||
#~ msgid "Free space on %1 less than 10%"
|
||||
#~ msgstr "Free space on %1 less than 10%"
|
||||
|
||||
|
@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Awesome widgets\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
|
||||
"POT-Creation-Date: 2016-01-26 21:48+0300\n"
|
||||
"POT-Creation-Date: 2016-02-03 23:02+0700\n"
|
||||
"PO-Revision-Date: 2015-09-26 22:07+0000\n"
|
||||
"Last-Translator: Ernesto Avilés Vázquez <whippiii@gmail.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/arcanis/awesome-widgets/"
|
||||
@ -59,6 +59,9 @@ msgstr "Habilitar notificaciones"
|
||||
msgid "Check updates on startup"
|
||||
msgstr "Comprobar actualizaciones al inicio"
|
||||
|
||||
msgid "Optimize subscription"
|
||||
msgstr ""
|
||||
|
||||
msgid "Widget height, px"
|
||||
msgstr "Alto del widget, px"
|
||||
|
||||
@ -361,15 +364,15 @@ msgstr "Actualizaciones"
|
||||
msgid "Weathers"
|
||||
msgstr "Tiempo"
|
||||
|
||||
msgid "Functions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Añadir"
|
||||
|
||||
msgid "Show value"
|
||||
msgstr "Mostrar valor"
|
||||
|
||||
msgid "Add lambda"
|
||||
msgstr "Añadir lambda"
|
||||
|
||||
msgid "Edit bars"
|
||||
msgstr "Editar barras"
|
||||
|
||||
@ -421,24 +424,6 @@ msgstr ""
|
||||
msgid "Select font"
|
||||
msgstr "Elegir tipo de letra"
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr "Estás usando al versión actual %1"
|
||||
|
||||
msgid "No new version found"
|
||||
msgstr "No se encontraron nuevas versiones"
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr "Versión actual: %1"
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr "Nueva versión: %1"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Haz clic en «Ok» para descargar"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "Hay actualizaciones disponibles"
|
||||
|
||||
msgid "AC online"
|
||||
msgstr "Alimentación conectada"
|
||||
|
||||
@ -466,6 +451,27 @@ msgstr "MB/s"
|
||||
msgid "KB/s"
|
||||
msgstr "KB/s"
|
||||
|
||||
msgid "Changelog of %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr "Estás usando al versión actual %1"
|
||||
|
||||
msgid "No new version found"
|
||||
msgstr "No se encontraron nuevas versiones"
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr "Versión actual: %1"
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr "Nueva versión: %1"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Haz clic en «Ok» para descargar"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "Hay actualizaciones disponibles"
|
||||
|
||||
msgid "Copy"
|
||||
msgstr "Copiar"
|
||||
|
||||
@ -616,3 +622,6 @@ msgstr "Tu nombre"
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "Tu correo electrónico"
|
||||
|
||||
#~ msgid "Add lambda"
|
||||
#~ msgstr "Añadir lambda"
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
|
||||
"POT-Creation-Date: 2016-01-26 21:48+0300\n"
|
||||
"POT-Creation-Date: 2016-02-03 23:02+0700\n"
|
||||
"PO-Revision-Date: 2015-07-31 22:16+0300\n"
|
||||
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
|
||||
"Language-Team: French <kde-russian@lists.kde.ru>\n"
|
||||
@ -61,6 +61,9 @@ msgstr "Activer les notifications"
|
||||
msgid "Check updates on startup"
|
||||
msgstr "Vérifier les mises à jour"
|
||||
|
||||
msgid "Optimize subscription"
|
||||
msgstr ""
|
||||
|
||||
msgid "Widget height, px"
|
||||
msgstr "Paramètres du composant"
|
||||
|
||||
@ -371,15 +374,15 @@ msgstr ""
|
||||
msgid "Weathers"
|
||||
msgstr "Modifier les tickers"
|
||||
|
||||
msgid "Functions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Ajouter"
|
||||
|
||||
msgid "Show value"
|
||||
msgstr "Afficher la valeur"
|
||||
|
||||
msgid "Add lambda"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit bars"
|
||||
msgstr "Modifier les barres"
|
||||
|
||||
@ -431,27 +434,6 @@ msgstr ""
|
||||
msgid "Select font"
|
||||
msgstr "Sélectionner une couleur"
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "No new version found"
|
||||
msgstr "Nouvelle version"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Current version : %1"
|
||||
msgstr "Version actuelle"
|
||||
|
||||
#, fuzzy
|
||||
msgid "New version : %1"
|
||||
msgstr "Nouvelle version"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Cliquer sur \"Valider\" pour télécharger"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "Des mises à jour sont disponibles"
|
||||
|
||||
msgid "AC online"
|
||||
msgstr "Alimentation branchée"
|
||||
|
||||
@ -479,6 +461,30 @@ msgstr ""
|
||||
msgid "KB/s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Changelog of %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "No new version found"
|
||||
msgstr "Nouvelle version"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Current version : %1"
|
||||
msgstr "Version actuelle"
|
||||
|
||||
#, fuzzy
|
||||
msgid "New version : %1"
|
||||
msgstr "Nouvelle version"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Cliquer sur \"Valider\" pour télécharger"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "Des mises à jour sont disponibles"
|
||||
|
||||
msgid "Copy"
|
||||
msgstr "Copier"
|
||||
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Awesome widgets\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
|
||||
"POT-Creation-Date: 2016-01-26 21:48+0300\n"
|
||||
"POT-Creation-Date: 2016-02-03 23:02+0700\n"
|
||||
"PO-Revision-Date: 2015-08-20 22:52+0300\n"
|
||||
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
|
||||
"Language-Team: Dutch <kde-i18n-nl@kde.org>\n"
|
||||
@ -61,6 +61,9 @@ msgstr ""
|
||||
msgid "Check updates on startup"
|
||||
msgstr "Controleren op updates"
|
||||
|
||||
msgid "Optimize subscription"
|
||||
msgstr ""
|
||||
|
||||
msgid "Widget height, px"
|
||||
msgstr ""
|
||||
|
||||
@ -373,15 +376,15 @@ msgstr ""
|
||||
msgid "Weathers"
|
||||
msgstr "Balken bewerken"
|
||||
|
||||
msgid "Functions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Toevoegen"
|
||||
|
||||
msgid "Show value"
|
||||
msgstr "Waarde weergeven"
|
||||
|
||||
msgid "Add lambda"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit bars"
|
||||
msgstr "Balken bewerken"
|
||||
|
||||
@ -436,25 +439,6 @@ msgstr ""
|
||||
msgid "Select font"
|
||||
msgstr "Lettertype selecteren"
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "No new version found"
|
||||
msgstr "Nieuwe versie: %1"
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr "Huidige versie: %1"
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr "Nieuwe versie: %1"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Klik op \"OK\" om te downloaden"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "Er zijn updates"
|
||||
|
||||
msgid "AC online"
|
||||
msgstr "AC online"
|
||||
|
||||
@ -483,6 +467,28 @@ msgstr ""
|
||||
msgid "KB/s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Changelog of %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "No new version found"
|
||||
msgstr "Nieuwe versie: %1"
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr "Huidige versie: %1"
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr "Nieuwe versie: %1"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Klik op \"OK\" om te downloaden"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "Er zijn updates"
|
||||
|
||||
msgid "Copy"
|
||||
msgstr "Kopiëren"
|
||||
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
|
||||
"POT-Creation-Date: 2016-01-26 21:48+0300\n"
|
||||
"POT-Creation-Date: 2016-02-03 23:02+0700\n"
|
||||
"PO-Revision-Date: 2015-07-31 22:21+0300\n"
|
||||
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
|
||||
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
|
||||
@ -60,6 +60,9 @@ msgstr "Ativar notificações"
|
||||
msgid "Check updates on startup"
|
||||
msgstr "Checar por atualizações"
|
||||
|
||||
msgid "Optimize subscription"
|
||||
msgstr ""
|
||||
|
||||
msgid "Widget height, px"
|
||||
msgstr "Altura do widget, px"
|
||||
|
||||
@ -372,15 +375,15 @@ msgstr ""
|
||||
msgid "Weathers"
|
||||
msgstr "Editar relógios"
|
||||
|
||||
msgid "Functions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Adicionar"
|
||||
|
||||
msgid "Show value"
|
||||
msgstr "Mostrar valor"
|
||||
|
||||
msgid "Add lambda"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit bars"
|
||||
msgstr "Editar barras"
|
||||
|
||||
@ -432,25 +435,6 @@ msgstr ""
|
||||
msgid "Select font"
|
||||
msgstr "Selecionar fonte"
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "No new version found"
|
||||
msgstr "Nova versão: %1"
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr "Versão atual: %1"
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr "Nova versão: %1"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Clique \"Ok\" para baixar"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "Há atualizações disponíveis"
|
||||
|
||||
msgid "AC online"
|
||||
msgstr "Carregador conectado"
|
||||
|
||||
@ -478,6 +462,28 @@ msgstr ""
|
||||
msgid "KB/s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Changelog of %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "No new version found"
|
||||
msgstr "Nova versão: %1"
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr "Versão atual: %1"
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr "Nova versão: %1"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Clique \"Ok\" para baixar"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "Há atualizações disponíveis"
|
||||
|
||||
msgid "Copy"
|
||||
msgstr "Copiar"
|
||||
|
||||
|
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
|
||||
"POT-Creation-Date: 2016-01-26 21:48+0300\n"
|
||||
"PO-Revision-Date: 2016-01-26 21:49+0300\n"
|
||||
"POT-Creation-Date: 2016-02-03 23:02+0700\n"
|
||||
"PO-Revision-Date: 2016-02-03 23:04+0700\n"
|
||||
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
|
||||
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
|
||||
"Language: ru\n"
|
||||
@ -57,6 +57,9 @@ msgstr "Включить уведомления "
|
||||
msgid "Check updates on startup"
|
||||
msgstr "Проверять обновления при запуске"
|
||||
|
||||
msgid "Optimize subscription"
|
||||
msgstr "Оптимизировать подписку"
|
||||
|
||||
msgid "Widget height, px"
|
||||
msgstr "Высота виджета, пиксели"
|
||||
|
||||
@ -356,15 +359,15 @@ msgstr "Обновления"
|
||||
msgid "Weathers"
|
||||
msgstr "Погода"
|
||||
|
||||
msgid "Functions"
|
||||
msgstr "Функции"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Добавить"
|
||||
|
||||
msgid "Show value"
|
||||
msgstr "Показать значение"
|
||||
|
||||
msgid "Add lambda"
|
||||
msgstr "Добавить лямбду"
|
||||
|
||||
msgid "Edit bars"
|
||||
msgstr "Редактировать бары"
|
||||
|
||||
@ -411,29 +414,11 @@ msgid "This software uses: %1"
|
||||
msgstr "Данное приложение использует: %1"
|
||||
|
||||
msgid "Special thanks to %1"
|
||||
msgstr "Отдельно спасибо %1"
|
||||
msgstr "Отдельное спасибо %1"
|
||||
|
||||
msgid "Select font"
|
||||
msgstr "Выберете шрифт"
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr "Вы используете актуальную версию %1"
|
||||
|
||||
msgid "No new version found"
|
||||
msgstr "Обновления не найдены"
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr "Текущая версия : %1"
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr "Новая версия : %1"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Нажмите \"Ok\" для загрузки"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "Найдены обновления"
|
||||
|
||||
msgid "AC online"
|
||||
msgstr "AC подключен"
|
||||
|
||||
@ -461,6 +446,27 @@ msgstr "МБ/с"
|
||||
msgid "KB/s"
|
||||
msgstr "КБ/с"
|
||||
|
||||
msgid "Changelog of %1"
|
||||
msgstr "Список изменений %1"
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr "Вы используете актуальную версию %1"
|
||||
|
||||
msgid "No new version found"
|
||||
msgstr "Обновления не найдены"
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr "Текущая версия : %1"
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr "Новая версия : %1"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Нажмите \"Ok\" для загрузки"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "Найдены обновления"
|
||||
|
||||
msgid "Copy"
|
||||
msgstr "Копировать"
|
||||
|
||||
@ -612,6 +618,9 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "esalexeev@gmail.com"
|
||||
|
||||
#~ msgid "Add lambda"
|
||||
#~ msgstr "Добавить лямбду"
|
||||
|
||||
#~ msgid "Free space on %1 less than 10%"
|
||||
#~ msgstr "Свободное место на диске %1 меньше 10%"
|
||||
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
|
||||
"POT-Creation-Date: 2016-01-26 21:48+0300\n"
|
||||
"POT-Creation-Date: 2016-02-03 23:02+0700\n"
|
||||
"PO-Revision-Date: 2015-09-27 12:37+0300\n"
|
||||
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
|
||||
"Language-Team: Ukrainian <kde-russian@lists.kde.ru>\n"
|
||||
@ -59,6 +59,9 @@ msgstr "Включити повідомлення"
|
||||
msgid "Check updates on startup"
|
||||
msgstr "Перевіряти оновлення при запуску"
|
||||
|
||||
msgid "Optimize subscription"
|
||||
msgstr ""
|
||||
|
||||
msgid "Widget height, px"
|
||||
msgstr "Висота віджету, пікселі"
|
||||
|
||||
@ -374,15 +377,15 @@ msgstr "Оновлення"
|
||||
msgid "Weathers"
|
||||
msgstr "Погода"
|
||||
|
||||
msgid "Functions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Додати"
|
||||
|
||||
msgid "Show value"
|
||||
msgstr "Показати значення"
|
||||
|
||||
msgid "Add lambda"
|
||||
msgstr "Додати лямбду"
|
||||
|
||||
msgid "Edit bars"
|
||||
msgstr "Редагувати бари"
|
||||
|
||||
@ -434,25 +437,6 @@ msgstr ""
|
||||
msgid "Select font"
|
||||
msgstr "Оберіть шрифт"
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr "Ви використовуєте актуальну версію %1"
|
||||
|
||||
#, fuzzy
|
||||
msgid "No new version found"
|
||||
msgstr "Оновлень не знайдено"
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr "Поточна версія : %1"
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr "Нова версія : %1"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Натисніть \"Ok\" для завантаження"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "Знайдені оновлення"
|
||||
|
||||
msgid "AC online"
|
||||
msgstr "AC підключений"
|
||||
|
||||
@ -480,6 +464,28 @@ msgstr "МБ/с"
|
||||
msgid "KB/s"
|
||||
msgstr "КБ/с"
|
||||
|
||||
msgid "Changelog of %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr "Ви використовуєте актуальну версію %1"
|
||||
|
||||
#, fuzzy
|
||||
msgid "No new version found"
|
||||
msgstr "Оновлень не знайдено"
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr "Поточна версія : %1"
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr "Нова версія : %1"
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr "Натисніть \"Ok\" для завантаження"
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr "Знайдені оновлення"
|
||||
|
||||
msgid "Copy"
|
||||
msgstr "Копіювати"
|
||||
|
||||
@ -640,6 +646,9 @@ msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "sarumyan@i.ua"
|
||||
|
||||
#~ msgid "Add lambda"
|
||||
#~ msgstr "Додати лямбду"
|
||||
|
||||
#~ msgid "Free space on %1 less than 10%"
|
||||
#~ msgstr "Вільний простір на диску %1 меньше ніж 10%"
|
||||
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
|
||||
"POT-Creation-Date: 2016-01-26 21:48+0300\n"
|
||||
"POT-Creation-Date: 2016-02-03 23:02+0700\n"
|
||||
"PO-Revision-Date: 2015-07-31 22:24+0300\n"
|
||||
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
|
||||
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
|
||||
@ -57,6 +57,9 @@ msgstr ""
|
||||
msgid "Check updates on startup"
|
||||
msgstr ""
|
||||
|
||||
msgid "Optimize subscription"
|
||||
msgstr ""
|
||||
|
||||
msgid "Widget height, px"
|
||||
msgstr ""
|
||||
|
||||
@ -369,15 +372,15 @@ msgstr ""
|
||||
msgid "Weathers"
|
||||
msgstr "可编辑的"
|
||||
|
||||
msgid "Functions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add"
|
||||
msgstr "添加"
|
||||
|
||||
msgid "Show value"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add lambda"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Edit bars"
|
||||
msgstr "可编辑的"
|
||||
@ -430,24 +433,6 @@ msgstr ""
|
||||
msgid "Select font"
|
||||
msgstr "选择字体"
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "No new version found"
|
||||
msgstr ""
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr ""
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "AC online"
|
||||
msgstr "外接电源使用中标签"
|
||||
@ -477,6 +462,27 @@ msgstr ""
|
||||
msgid "KB/s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Changelog of %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "You are using the actual version %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "No new version found"
|
||||
msgstr ""
|
||||
|
||||
msgid "Current version : %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "New version : %1"
|
||||
msgstr ""
|
||||
|
||||
msgid "Click \"Ok\" to download"
|
||||
msgstr ""
|
||||
|
||||
msgid "There are updates"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user