implement dynamic tags

This commit is contained in:
arcan1s 2015-09-02 00:05:11 +03:00
parent 5940ec4531
commit 6689bea9a7
18 changed files with 348 additions and 259 deletions

View File

@ -40,26 +40,6 @@ Item {
implicitHeight: pageColumn.implicitHeight implicitHeight: pageColumn.implicitHeight
property bool debug: awActions.isDebugEnabled() property bool debug: awActions.isDebugEnabled()
property variant tooltipSettings: {
"tooltipNumber": plasmoid.configuration.tooltipNumber,
"useTooltipBackground": plasmoid.configuration.useTooltipBackground,
"tooltipBackgroung": plasmoid.configuration.tooltipBackgroung,
"cpuTooltip": plasmoid.configuration.cpuTooltip,
"cpuclTooltip": plasmoid.configuration.cpuclTooltip,
"memTooltip": plasmoid.configuration.memTooltip,
"swapTooltip": plasmoid.configuration.swapTooltip,
"downTooltip": plasmoid.configuration.downTooltip,
"upTooltip": plasmoid.configuration.downTooltip,
"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,
"batTooltipColor": plasmoid.configuration.batTooltipColor,
"batInTooltipColor": plasmoid.configuration.batInTooltipColor
}
property variant cfg_dataengine: awActions.readDataEngineConfiguration() property variant cfg_dataengine: awActions.readDataEngineConfiguration()
@ -79,23 +59,7 @@ Item {
QtControls.TextField { QtControls.TextField {
width: parent.width * 3 / 5 width: parent.width * 3 / 5
text: cfg_dataengine["ACPIPATH"] text: cfg_dataengine["ACPIPATH"]
} onEditingFinished: cfg_dataengine["ACPIPATH"] = text
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Custom scripts")
}
QtControls.Button {
width: parent.width * 3 / 5
text: i18n("Edit scripts")
onClicked: awKeys.editItem("extscript")
} }
} }
@ -164,6 +128,7 @@ Item {
QtControls.TextField { QtControls.TextField {
width: parent.width * 3 / 5 width: parent.width * 3 / 5
text: cfg_dataengine["HDDTEMPCMD"] text: cfg_dataengine["HDDTEMPCMD"]
onEditingFinished: cfg_dataengine["HDDTEMPCMD"] = text
} }
} }
@ -180,6 +145,7 @@ Item {
QtControls.TextField { QtControls.TextField {
width: parent.width * 3 / 5 width: parent.width * 3 / 5
text: cfg_dataengine["MPDADDRESS"] text: cfg_dataengine["MPDADDRESS"]
onEditingFinished: cfg_dataengine["MPDADDRESS"] = text
} }
} }
@ -199,6 +165,7 @@ Item {
maximumValue: 65535 maximumValue: 65535
stepSize: 1 stepSize: 1
value: cfg_dataengine["MPDPORT"] value: cfg_dataengine["MPDPORT"]
onEditingFinished: cfg_dataengine["MPDPORT"] = value
} }
} }
@ -248,6 +215,43 @@ Item {
} }
} }
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Player data symbols")
}
QtControls.SpinBox {
width: parent.width * 3 / 5
minimumValue: 1
maximumValue: 100
stepSize: 1
value: cfg_dataengine["PLAYERSYMBOLS"]
onEditingFinished: cfg_dataengine["PLAYERSYMBOLS"] = value
}
}
Row {
height: implicitHeight
width: parent.width
QtControls.Label {
height: parent.height
width: parent.width * 2 / 5
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
text: i18n("Custom scripts")
}
QtControls.Button {
width: parent.width * 3 / 5
text: i18n("Edit scripts")
onClicked: awKeys.editItem("extscript")
}
}
Row { Row {
height: implicitHeight height: implicitHeight
width: parent.width width: parent.width

View File

@ -204,16 +204,18 @@ Item {
onSizeUpdate: { onSizeUpdate: {
if (debug) console.debug() if (debug) console.debug()
// 16 is a magic number
// in other case plasmoid will increase own size on each update
if (plasmoid.configuration.height == 0) { if (plasmoid.configuration.height == 0) {
Layout.minimumHeight = text.contentHeight Layout.minimumHeight = text.contentHeight - 16
Layout.maximumHeight = -1 Layout.maximumHeight = -1
} else { } else {
Layout.minimumHeight = plasmoid.configuration.height Layout.minimumHeight = plasmoid.configuration.height
Layout.maximumHeight = plasmoid.configuration.height Layout.maximumHeight = plasmoid.configuration.height
} }
if (plasmoid.configuration.width == 0) { if (plasmoid.configuration.width == 0) {
Layout.minimumWidth = text.contentWidth Layout.minimumWidth = text.contentWidth - 16
Layout.maximumWidth = -1 Layout.maximumWidth = -1
} else { } else {
Layout.minimumWidth = plasmoid.configuration.width Layout.minimumWidth = plasmoid.configuration.width

View File

@ -255,7 +255,7 @@ Item {
}, },
{ {
'label': i18n("Music player"), 'label': i18n("Music player"),
'regexp': "^(album|artist|duration|progress|title)" 'regexp': "(^|d|s)(album|artist|duration|progress|title)"
}, },
{ {
'label': i18n("Scripts"), 'label': i18n("Scripts"),

View File

@ -184,6 +184,7 @@ QVariantMap AWActions::readDataEngineConfiguration() const
configuration[QString("MPDPORT")] = settings.value(QString("MPDPORT"), QString("6600")); configuration[QString("MPDPORT")] = settings.value(QString("MPDPORT"), QString("6600"));
configuration[QString("MPRIS")] = settings.value(QString("MPRIS"), QString("auto")); configuration[QString("MPRIS")] = settings.value(QString("MPRIS"), QString("auto"));
configuration[QString("PLAYER")] = settings.value(QString("PLAYER"), QString("mpris")); configuration[QString("PLAYER")] = settings.value(QString("PLAYER"), QString("mpris"));
configuration[QString("PLAYERSYMBOLS")] = settings.value(QString("PLAYERSYMBOLS"), QString("10"));
settings.endGroup(); settings.endGroup();
return configuration; return configuration;
@ -207,6 +208,7 @@ void AWActions::writeDataEngineConfiguration(const QVariantMap configuration) co
settings.setValue(QString("MPDPORT"), configuration[QString("MPDPORT")]); settings.setValue(QString("MPDPORT"), configuration[QString("MPDPORT")]);
settings.setValue(QString("MPRIS"), configuration[QString("MPRIS")]); settings.setValue(QString("MPRIS"), configuration[QString("MPRIS")]);
settings.setValue(QString("PLAYER"), configuration[QString("PLAYER")]); settings.setValue(QString("PLAYER"), configuration[QString("PLAYER")]);
settings.setValue(QString("PLAYERSYMBOLS"), configuration[QString("PLAYERSYMBOLS")]);
settings.endGroup(); settings.endGroup();
settings.sync(); settings.sync();

View File

@ -268,6 +268,12 @@ QStringList AWKeys::dictKeys(const bool sorted, const QString regexp) const
allKeys.append(QString("duration")); allKeys.append(QString("duration"));
allKeys.append(QString("progress")); allKeys.append(QString("progress"));
allKeys.append(QString("title")); allKeys.append(QString("title"));
allKeys.append(QString("dalbum"));
allKeys.append(QString("dartist"));
allKeys.append(QString("dtitle"));
allKeys.append(QString("salbum"));
allKeys.append(QString("sartist"));
allKeys.append(QString("stitle"));
// ps // ps
allKeys.append(QString("pscount")); allKeys.append(QString("pscount"));
allKeys.append(QString("pstotal")); allKeys.append(QString("pstotal"));
@ -549,11 +555,7 @@ void AWKeys::setDataBySource(const QString sourceName, const QVariantMap data,
foreach(QString key, data.keys()) values[key] = QString("%1").arg(data[key].toInt(), 2); foreach(QString key, data.keys()) values[key] = QString("%1").arg(data[key].toInt(), 2);
} else if (sourceName == QString("player")) { } else if (sourceName == QString("player")) {
// player // player
values[QString("album")] = data[QString("album")].toString(); foreach(QString key, data.keys()) values[key] = data[key].toString();
values[QString("artist")] = data[QString("artist")].toString();
values[QString("duration")] = data[QString("duration")].toString();
values[QString("progress")] = data[QString("progress")].toString();
values[QString("title")] = data[QString("title")].toString();
} else if (sourceName == QString("ps")) { } else if (sourceName == QString("ps")) {
// ps // ps
values[QString("ps")] = data[QString("ps")].toString(); values[QString("ps")] = data[QString("ps")].toString();

View File

@ -72,151 +72,6 @@ ExtendedSysMon::~ExtendedSysMon()
} }
QStringList ExtendedSysMon::getAllHdd() const
{
qCDebug(LOG_ESM);
QStringList allDevices = QDir(QString("/dev")).entryList(QDir::System, QDir::Name);
QStringList devices = allDevices.filter(QRegExp(QString("^[hms]d[a-z]$")));
for (int i=0; i<devices.count(); i++)
devices[i] = QString("/dev/%1").arg(devices.at(i));
qCInfo(LOG_ESM) << "Device list" << devices;
return devices;
}
QString ExtendedSysMon::getAutoGpu() const
{
qCDebug(LOG_ESM);
QString gpu = QString("disable");
QFile moduleFile(QString("/proc/modules"));
if (!moduleFile.open(QIODevice::ReadOnly)) return gpu;
QString output = moduleFile.readAll();
if (output.contains(QString("fglrx")))
gpu = QString("ati");
else if (output.contains(QString("nvidia")))
gpu = QString("nvidia");
qCInfo(LOG_ESM) << "Device" << gpu;
return gpu;
}
QString ExtendedSysMon::getAutoMpris() const
{
qCDebug(LOG_ESM);
QDBusMessage listServices = QDBusConnection::sessionBus().interface()->call(QDBus::BlockWithGui, QString("ListNames"));
if (listServices.arguments().isEmpty()) return QString();
QStringList arguments = listServices.arguments().first().toStringList();
foreach(QString arg, arguments) {
qCInfo(LOG_ESM) << "Service found" << arg;
if (!arg.startsWith(QString("org.mpris.MediaPlayer2."))) continue;
QString service = arg;
service.remove(QString("org.mpris.MediaPlayer2."));
return service;
}
return QString();
}
QStringList ExtendedSysMon::sources() const
{
qCDebug(LOG_ESM);
QStringList source;
source.append(QString("battery"));
source.append(QString("custom"));
source.append(QString("desktop"));
source.append(QString("netdev"));
source.append(QString("gpu"));
source.append(QString("gputemp"));
source.append(QString("hddtemp"));
source.append(QString("pkg"));
source.append(QString("player"));
source.append(QString("ps"));
source.append(QString("quotes"));
source.append(QString("update"));
source.append(QString("weather"));
qCInfo(LOG_ESM) << "Sources" << source;
return source;
}
void ExtendedSysMon::readConfiguration()
{
qCDebug(LOG_ESM);
QString fileName = QStandardPaths::locate(QStandardPaths::ConfigLocation,
QString("plasma-dataengine-extsysmon.conf"));
qCInfo(LOG_ESM) << "Configuration file" << fileName;
QSettings settings(fileName, QSettings::IniFormat);
QHash<QString, QString> rawConfig;
settings.beginGroup(QString("Configuration"));
rawConfig[QString("ACPIPATH")] = settings.value(QString("ACPIPATH"), QString("/sys/class/power_supply/")).toString();
rawConfig[QString("GPUDEV")] = settings.value(QString("GPUDEV"), QString("auto")).toString();
rawConfig[QString("HDDDEV")] = settings.value(QString("HDDDEV"), QString("all")).toString();
rawConfig[QString("HDDTEMPCMD")] = settings.value(QString("HDDTEMPCMD"), QString("sudo smartctl -a")).toString();
rawConfig[QString("MPDADDRESS")] = settings.value(QString("MPDADDRESS"), QString("localhost")).toString();
rawConfig[QString("MPDPORT")] = settings.value(QString("MPDPORT"), QString("6600")).toString();
rawConfig[QString("MPRIS")] = settings.value(QString("MPRIS"), QString("auto")).toString();
rawConfig[QString("PLAYER")] = settings.value(QString("PLAYER"), QString("mpris")).toString();
settings.endGroup();
configuration = updateConfiguration(rawConfig);
}
QHash<QString, QString> ExtendedSysMon::updateConfiguration(QHash<QString, QString> rawConfig) const
{
qCDebug(LOG_ESM);
qCDebug(LOG_ESM) << "Raw configuration" << rawConfig;
// gpudev
if (rawConfig[QString("GPUDEV")] == QString("disable"))
rawConfig[QString("GPUDEV")] = QString("disable");
else if (rawConfig[QString("GPUDEV")] == QString("auto"))
rawConfig[QString("GPUDEV")] = getAutoGpu();
else if ((rawConfig[QString("GPUDEV")] != QString("ati")) &&
(rawConfig[QString("GPUDEV")] != QString("nvidia")))
rawConfig[QString("GPUDEV")] = getAutoGpu();
// hdddev
QStringList allHddDevices = getAllHdd();
if (rawConfig[QString("HDDDEV")] == QString("all"))
rawConfig[QString("HDDDEV")] = allHddDevices.join(QChar(','));
else if (rawConfig[QString("HDDDEV")] == QString("disable"))
rawConfig[QString("HDDDEV")] = QString("");
else {
QStringList deviceList = rawConfig[QString("HDDDEV")].split(QChar(','), QString::SkipEmptyParts);
QStringList devices;
QRegExp diskRegexp = QRegExp("^/dev/[hms]d[a-z]$");
foreach(QString device, deviceList)
if ((QFile::exists(device)) && (device.contains(diskRegexp)))
devices.append(device);
if (devices.isEmpty())
rawConfig[QString("HDDDEV")] = allHddDevices.join(QChar(','));
else
rawConfig[QString("HDDDEV")] = devices.join(QChar(','));
}
// player
if ((rawConfig[QString("PLAYER")] != QString("mpd")) &&
(rawConfig[QString("PLAYER")] != QString("mpris")) &&
(rawConfig[QString("PLAYER")] != QString("disable")))
rawConfig[QString("PLAYER")] = QString("mpris");
foreach(QString key, rawConfig.keys())
qCInfo(LOG_ESM) << key << "=" << rawConfig[key];
return rawConfig;
}
QVariantHash ExtendedSysMon::getBattery(const QString acpiPath) const QVariantHash ExtendedSysMon::getBattery(const QString acpiPath) const
{ {
qCDebug(LOG_ESM); qCDebug(LOG_ESM);
@ -426,14 +281,29 @@ QVariantHash ExtendedSysMon::getPlayerInfo(const QString playerName, const QStri
if (playerName == QString("mpd")) if (playerName == QString("mpd"))
// mpd // mpd
return getPlayerMpdInfo(mpdAddress, mpdPort); info = getPlayerMpdInfo(mpdAddress, mpdPort);
else if (playerName == QString("mpris")) { else if (playerName == QString("mpris")) {
// players which supports mpris // players which supports mpris
if (mpris == QString("auto")) mpris = getAutoMpris(); if (mpris == QString("auto")) mpris = getAutoMpris();
if (mpris.isEmpty()) return info; if (mpris.isEmpty()) return info;
return getPlayerMprisInfo(mpris); info = getPlayerMprisInfo(mpris);
} }
// dymanic properties
// solid
info[QString("salbum")] = stripString(info[QString("album")].toString(), symbols);
info[QString("sartist")] = stripString(info[QString("artist")].toString(), symbols);
info[QString("stitle")] = stripString(info[QString("title")].toString(), symbols);
// dynamic
Plasma::DataContainer *playerDC = containerDict()["player"];
QVariantHash data = playerDC == nullptr ? info : qvariant_cast<QVariantHash>(playerDC->data());
info[QString("dalbum")] = buildString(data[QString("dalbum")].toString(),
info[QString("album")].toString(), symbols);
info[QString("dartist")] = buildString(data[QString("dartist")].toString(),
info[QString("artist")].toString(), symbols);
info[QString("dtitle")] = buildString(data[QString("dtitle")].toString(),
info[QString("title")].toString(), symbols);
return info; return info;
} }
@ -558,6 +428,30 @@ QVariantHash ExtendedSysMon::getPsStats() const
} }
QStringList ExtendedSysMon::sources() const
{
qCDebug(LOG_ESM);
QStringList source;
source.append(QString("battery"));
source.append(QString("custom"));
source.append(QString("desktop"));
source.append(QString("netdev"));
source.append(QString("gpu"));
source.append(QString("gputemp"));
source.append(QString("hddtemp"));
source.append(QString("pkg"));
source.append(QString("player"));
source.append(QString("ps"));
source.append(QString("quotes"));
source.append(QString("update"));
source.append(QString("weather"));
qCInfo(LOG_ESM) << "Sources" << source;
return source;
}
bool ExtendedSysMon::sourceRequestEvent(const QString &source) bool ExtendedSysMon::sourceRequestEvent(const QString &source)
{ {
qCDebug(LOG_ESM); qCDebug(LOG_ESM);
@ -630,6 +524,159 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source)
} }
QString ExtendedSysMon::buildString(const QString current, const QString value,
const int s) const
{
qCDebug(LOG_ESM);
qCDebug(LOG_ESM) << "Current value" << current;
qCDebug(LOG_ESM) << "New value" << value;
qCDebug(LOG_ESM) << "Strip after" << s;
int index = value.indexOf(current);
if ((index == -1) || ((index + s + 1) > value.count()))
return QString("%1").arg(value.left(s), s, QLatin1Char(' '));
else
return QString("%1").arg(value.mid(index + 1, s), s, QLatin1Char(' '));
}
QStringList ExtendedSysMon::getAllHdd() const
{
qCDebug(LOG_ESM);
QStringList allDevices = QDir(QString("/dev")).entryList(QDir::System, QDir::Name);
QStringList devices = allDevices.filter(QRegExp(QString("^[hms]d[a-z]$")));
for (int i=0; i<devices.count(); i++)
devices[i] = QString("/dev/%1").arg(devices.at(i));
qCInfo(LOG_ESM) << "Device list" << devices;
return devices;
}
QString ExtendedSysMon::getAutoGpu() const
{
qCDebug(LOG_ESM);
QString gpu = QString("disable");
QFile moduleFile(QString("/proc/modules"));
if (!moduleFile.open(QIODevice::ReadOnly)) return gpu;
QString output = moduleFile.readAll();
if (output.contains(QString("fglrx")))
gpu = QString("ati");
else if (output.contains(QString("nvidia")))
gpu = QString("nvidia");
qCInfo(LOG_ESM) << "Device" << gpu;
return gpu;
}
QString ExtendedSysMon::getAutoMpris() const
{
qCDebug(LOG_ESM);
QDBusMessage listServices = QDBusConnection::sessionBus().interface()->call(QDBus::BlockWithGui, QString("ListNames"));
if (listServices.arguments().isEmpty()) return QString();
QStringList arguments = listServices.arguments().first().toStringList();
foreach(QString arg, arguments) {
qCInfo(LOG_ESM) << "Service found" << arg;
if (!arg.startsWith(QString("org.mpris.MediaPlayer2."))) continue;
QString service = arg;
service.remove(QString("org.mpris.MediaPlayer2."));
return service;
}
return QString();
}
void ExtendedSysMon::readConfiguration()
{
qCDebug(LOG_ESM);
QString fileName = QStandardPaths::locate(QStandardPaths::ConfigLocation,
QString("plasma-dataengine-extsysmon.conf"));
qCInfo(LOG_ESM) << "Configuration file" << fileName;
QSettings settings(fileName, QSettings::IniFormat);
QHash<QString, QString> rawConfig;
settings.beginGroup(QString("Configuration"));
rawConfig[QString("ACPIPATH")] = settings.value(QString("ACPIPATH"), QString("/sys/class/power_supply/")).toString();
rawConfig[QString("GPUDEV")] = settings.value(QString("GPUDEV"), QString("auto")).toString();
rawConfig[QString("HDDDEV")] = settings.value(QString("HDDDEV"), QString("all")).toString();
rawConfig[QString("HDDTEMPCMD")] = settings.value(QString("HDDTEMPCMD"), QString("sudo smartctl -a")).toString();
rawConfig[QString("MPDADDRESS")] = settings.value(QString("MPDADDRESS"), QString("localhost")).toString();
rawConfig[QString("MPDPORT")] = settings.value(QString("MPDPORT"), QString("6600")).toString();
rawConfig[QString("MPRIS")] = settings.value(QString("MPRIS"), QString("auto")).toString();
rawConfig[QString("PLAYER")] = settings.value(QString("PLAYER"), QString("mpris")).toString();
rawConfig[QString("PLAYERSYMBOLS")] = settings.value(QString("PLAYERSYMBOLS"), QString("10")).toString();
settings.endGroup();
configuration = updateConfiguration(rawConfig);
symbols = configuration[QString("PLAYERSYMBOLS")].toInt();
}
QString ExtendedSysMon::stripString(const QString value, const int s) const
{
qCDebug(LOG_ESM);
qCDebug(LOG_ESM) << "New value" << value;
qCDebug(LOG_ESM) << "Strip after" << s;
return value.count() > s ? QString("%1\u2026").arg(value.left(s - 1)) :
QString("%1").arg(value, s, QLatin1Char(' '));
}
QHash<QString, QString> ExtendedSysMon::updateConfiguration(QHash<QString, QString> rawConfig) const
{
qCDebug(LOG_ESM);
qCDebug(LOG_ESM) << "Raw configuration" << rawConfig;
// gpudev
if (rawConfig[QString("GPUDEV")] == QString("disable"))
rawConfig[QString("GPUDEV")] = QString("disable");
else if (rawConfig[QString("GPUDEV")] == QString("auto"))
rawConfig[QString("GPUDEV")] = getAutoGpu();
else if ((rawConfig[QString("GPUDEV")] != QString("ati")) &&
(rawConfig[QString("GPUDEV")] != QString("nvidia")))
rawConfig[QString("GPUDEV")] = getAutoGpu();
// hdddev
QStringList allHddDevices = getAllHdd();
if (rawConfig[QString("HDDDEV")] == QString("all"))
rawConfig[QString("HDDDEV")] = allHddDevices.join(QChar(','));
else if (rawConfig[QString("HDDDEV")] == QString("disable"))
rawConfig[QString("HDDDEV")] = QString("");
else {
QStringList deviceList = rawConfig[QString("HDDDEV")].split(QChar(','), QString::SkipEmptyParts);
QStringList devices;
QRegExp diskRegexp = QRegExp("^/dev/[hms]d[a-z]$");
foreach(QString device, deviceList)
if ((QFile::exists(device)) && (device.contains(diskRegexp)))
devices.append(device);
if (devices.isEmpty())
rawConfig[QString("HDDDEV")] = allHddDevices.join(QChar(','));
else
rawConfig[QString("HDDDEV")] = devices.join(QChar(','));
}
// player
if ((rawConfig[QString("PLAYER")] != QString("mpd")) &&
(rawConfig[QString("PLAYER")] != QString("mpris")) &&
(rawConfig[QString("PLAYER")] != QString("disable")))
rawConfig[QString("PLAYER")] = QString("mpris");
// player symbols
if (rawConfig[QString("PLAYERSYMBOLS")].toInt() <= 0)
rawConfig[QString("PLAYERSYMBOLS")] = QString("10");
foreach(QString key, rawConfig.keys())
qCInfo(LOG_ESM) << key << "=" << rawConfig[key];
return rawConfig;
}
K_EXPORT_PLASMA_DATAENGINE_WITH_JSON(extsysmon, ExtendedSysMon, "plasma-dataengine-extsysmon.json") K_EXPORT_PLASMA_DATAENGINE_WITH_JSON(extsysmon, ExtendedSysMon, "plasma-dataengine-extsysmon.json")
#include "extsysmon.moc" #include "extsysmon.moc"

View File

@ -52,22 +52,25 @@ public:
QVariantHash getPsStats() const; QVariantHash getPsStats() const;
protected: protected:
QStringList sources() const;
bool sourceRequestEvent(const QString &source); bool sourceRequestEvent(const QString &source);
bool updateSourceEvent(const QString &source); bool updateSourceEvent(const QString &source);
QStringList sources() const;
private: private:
// configuration // configuration
QHash<QString, QString> configuration; QHash<QString, QString> configuration;
int symbols = 10;
ExtItemAggregator<ExtQuotes> *extQuotes; ExtItemAggregator<ExtQuotes> *extQuotes;
ExtItemAggregator<ExtScript> *extScripts; ExtItemAggregator<ExtScript> *extScripts;
ExtItemAggregator<ExtUpgrade> *extUpgrade; ExtItemAggregator<ExtUpgrade> *extUpgrade;
ExtItemAggregator<ExtWeather> *extWeather; ExtItemAggregator<ExtWeather> *extWeather;
// reread configuration // methods
QString buildString(const QString current, const QString value, const int s) const;
QStringList getAllHdd() const; QStringList getAllHdd() const;
QString getAutoGpu() const; QString getAutoGpu() const;
QString getAutoMpris() const; QString getAutoMpris() const;
void readConfiguration(); void readConfiguration();
QString stripString(const QString value, const int s) const;
QHash<QString, QString> updateConfiguration(QHash<QString, QString> rawConfig) const; QHash<QString, QString> updateConfiguration(QHash<QString, QString> rawConfig) const;
}; };

View File

@ -16,3 +16,5 @@ MPDPORT=6600
MPRIS=auto MPRIS=auto
# Player name. Supported players are 'mpd', 'mpris', 'disable' # Player name. Supported players are 'mpd', 'mpris', 'disable'
PLAYER=mpris PLAYER=mpris
# Show only this symbols count for dynamic player tags
PLAYERSYMBOLS=10

View File

@ -1,6 +1,6 @@
[Desktop Entry] [Desktop Entry]
Encoding=UTF-8 Encoding=UTF-8
Name=Extended SystemMonitor DataEngine Name=Extended SystemMonitor
Comment=Adds some additional functions to System DataEngine Comment=Adds some additional functions to System DataEngine
ServiceTypes=Plasma/DataEngine ServiceTypes=Plasma/DataEngine
Type=Service Type=Service

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-31 21:39+0300\n" "POT-Creation-Date: 2015-09-02 00:03+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -143,12 +143,6 @@ msgstr ""
msgid "ACPI path" msgid "ACPI path"
msgstr "" msgstr ""
msgid "Custom scripts"
msgstr ""
msgid "Edit scripts"
msgstr ""
msgid "GPU device" msgid "GPU device"
msgstr "" msgstr ""
@ -170,6 +164,15 @@ msgstr ""
msgid "Music player" msgid "Music player"
msgstr "" msgstr ""
msgid "Player data symbols"
msgstr ""
msgid "Custom scripts"
msgstr ""
msgid "Edit scripts"
msgstr ""
msgid "Quotes monitor" msgid "Quotes monitor"
msgstr "" msgstr ""

View File

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-31 21:39+0300\n" "POT-Creation-Date: 2015-09-02 00:03+0300\n"
"PO-Revision-Date: 2015-08-30 16:30+0300\n" "PO-Revision-Date: 2015-08-30 16:30+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: English <kde-russian@lists.kde.ru>\n" "Language-Team: English <kde-russian@lists.kde.ru>\n"
@ -144,12 +144,6 @@ msgstr "Select a font"
msgid "ACPI path" msgid "ACPI path"
msgstr "ACPI path" msgstr "ACPI path"
msgid "Custom scripts"
msgstr "Custom scripts"
msgid "Edit scripts"
msgstr "Edit scripts"
msgid "GPU device" msgid "GPU device"
msgstr "GPU device" msgstr "GPU device"
@ -171,6 +165,15 @@ msgstr "MPRIS player name"
msgid "Music player" msgid "Music player"
msgstr "Music player" msgstr "Music player"
msgid "Player data symbols"
msgstr ""
msgid "Custom scripts"
msgstr "Custom scripts"
msgid "Edit scripts"
msgstr "Edit scripts"
msgid "Quotes monitor" msgid "Quotes monitor"
msgstr "Quotes monitor" msgstr "Quotes monitor"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-31 21:39+0300\n" "POT-Creation-Date: 2015-09-02 00:03+0300\n"
"PO-Revision-Date: 2015-07-31 22:13+0300\n" "PO-Revision-Date: 2015-07-31 22:13+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Spanish <kde-russian@lists.kde.ru>\n" "Language-Team: Spanish <kde-russian@lists.kde.ru>\n"
@ -146,12 +146,6 @@ msgstr "Elige un tipo de letra"
msgid "ACPI path" msgid "ACPI path"
msgstr "Ruta ACPI" msgstr "Ruta ACPI"
msgid "Custom scripts"
msgstr "Scripts personalizados"
msgid "Edit scripts"
msgstr "Editar scripts"
msgid "GPU device" msgid "GPU device"
msgstr "Dispositivo de GPU" msgstr "Dispositivo de GPU"
@ -173,6 +167,15 @@ msgstr "Nombre del reproductor MPRIS"
msgid "Music player" msgid "Music player"
msgstr "Reproductor de música" msgstr "Reproductor de música"
msgid "Player data symbols"
msgstr ""
msgid "Custom scripts"
msgstr "Scripts personalizados"
msgid "Edit scripts"
msgstr "Editar scripts"
msgid "Quotes monitor" msgid "Quotes monitor"
msgstr "Monitor de citas" msgstr "Monitor de citas"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-31 21:39+0300\n" "POT-Creation-Date: 2015-09-02 00:03+0300\n"
"PO-Revision-Date: 2015-07-31 22:16+0300\n" "PO-Revision-Date: 2015-07-31 22:16+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: French <kde-russian@lists.kde.ru>\n" "Language-Team: French <kde-russian@lists.kde.ru>\n"
@ -148,12 +148,6 @@ msgstr "Sélectionner une police"
msgid "ACPI path" msgid "ACPI path"
msgstr "chemin ACPI" msgstr "chemin ACPI"
msgid "Custom scripts"
msgstr "Scripts personnalisés"
msgid "Edit scripts"
msgstr "Modifier les scripts"
msgid "GPU device" msgid "GPU device"
msgstr "Périphérique graphique" msgstr "Périphérique graphique"
@ -175,6 +169,15 @@ msgstr "Nom du lecteur MPRIS"
msgid "Music player" msgid "Music player"
msgstr "Lecteur audio" msgstr "Lecteur audio"
msgid "Player data symbols"
msgstr ""
msgid "Custom scripts"
msgstr "Scripts personnalisés"
msgid "Edit scripts"
msgstr "Modifier les scripts"
msgid "Quotes monitor" msgid "Quotes monitor"
msgstr "Moniteur de citations" msgstr "Moniteur de citations"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Awesome widgets\n" "Project-Id-Version: Awesome widgets\n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-31 21:39+0300\n" "POT-Creation-Date: 2015-09-02 00:03+0300\n"
"PO-Revision-Date: 2015-08-20 22:52+0300\n" "PO-Revision-Date: 2015-08-20 22:52+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Dutch <kde-i18n-nl@kde.org>\n" "Language-Team: Dutch <kde-i18n-nl@kde.org>\n"
@ -148,12 +148,6 @@ msgstr "Selecteer een lettertype"
msgid "ACPI path" msgid "ACPI path"
msgstr "ACPI-pad" msgstr "ACPI-pad"
msgid "Custom scripts"
msgstr "Aangepaste scripts"
msgid "Edit scripts"
msgstr "Scripts bewerken"
msgid "GPU device" msgid "GPU device"
msgstr "GPU-apparaat" msgstr "GPU-apparaat"
@ -175,6 +169,15 @@ msgstr "MPRIS-mediaspelernaam"
msgid "Music player" msgid "Music player"
msgstr "Muziekspeler" msgstr "Muziekspeler"
msgid "Player data symbols"
msgstr ""
msgid "Custom scripts"
msgstr "Aangepaste scripts"
msgid "Edit scripts"
msgstr "Scripts bewerken"
msgid "Quotes monitor" msgid "Quotes monitor"
msgstr "" msgstr ""

View File

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-31 21:39+0300\n" "POT-Creation-Date: 2015-09-02 00:03+0300\n"
"PO-Revision-Date: 2015-07-31 22:21+0300\n" "PO-Revision-Date: 2015-07-31 22:21+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n" "Language-Team: Russian <kde-russian@lists.kde.ru>\n"
@ -147,12 +147,6 @@ msgstr "Selecionar uma fonte"
msgid "ACPI path" msgid "ACPI path"
msgstr "Caminho ACPI" msgstr "Caminho ACPI"
msgid "Custom scripts"
msgstr "Scripts customizados"
msgid "Edit scripts"
msgstr "Editar scripts"
msgid "GPU device" msgid "GPU device"
msgstr "Dispositivo GPU" msgstr "Dispositivo GPU"
@ -174,6 +168,15 @@ msgstr "Nome do player MPRIS"
msgid "Music player" msgid "Music player"
msgstr "Reprodutor de áudio" msgstr "Reprodutor de áudio"
msgid "Player data symbols"
msgstr ""
msgid "Custom scripts"
msgstr "Scripts customizados"
msgid "Edit scripts"
msgstr "Editar scripts"
msgid "Quotes monitor" msgid "Quotes monitor"
msgstr "Monitor de citações" msgstr "Monitor de citações"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-31 21:39+0300\n" "POT-Creation-Date: 2015-09-02 00:03+0300\n"
"PO-Revision-Date: 2015-08-30 16:31+0300\n" "PO-Revision-Date: 2015-08-30 16:31+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n" "Language-Team: Russian <kde-russian@lists.kde.ru>\n"
@ -144,12 +144,6 @@ msgstr "Выберете шрифт"
msgid "ACPI path" msgid "ACPI path"
msgstr "Пусть к ACPI" msgstr "Пусть к ACPI"
msgid "Custom scripts"
msgstr "Свои скрипты"
msgid "Edit scripts"
msgstr "Редактировать скрипты"
msgid "GPU device" msgid "GPU device"
msgstr "Устройство GPU" msgstr "Устройство GPU"
@ -171,6 +165,15 @@ msgstr "Имя плеера в MPRIS"
msgid "Music player" msgid "Music player"
msgstr "Музыкальный плеер" msgstr "Музыкальный плеер"
msgid "Player data symbols"
msgstr ""
msgid "Custom scripts"
msgstr "Свои скрипты"
msgid "Edit scripts"
msgstr "Редактировать скрипты"
msgid "Quotes monitor" msgid "Quotes monitor"
msgstr "Монитор котировок" msgstr "Монитор котировок"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-31 21:39+0300\n" "POT-Creation-Date: 2015-09-02 00:03+0300\n"
"PO-Revision-Date: 2015-07-31 22:23+0300\n" "PO-Revision-Date: 2015-07-31 22:23+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Ukrainian <kde-russian@lists.kde.ru>\n" "Language-Team: Ukrainian <kde-russian@lists.kde.ru>\n"
@ -146,12 +146,6 @@ msgstr "Оберіть шрифт"
msgid "ACPI path" msgid "ACPI path"
msgstr "Шлях до ICPI" msgstr "Шлях до ICPI"
msgid "Custom scripts"
msgstr "Свої скрипти"
msgid "Edit scripts"
msgstr "Редагувати скрипти"
msgid "GPU device" msgid "GPU device"
msgstr "Пристій GPU" msgstr "Пристій GPU"
@ -173,6 +167,15 @@ msgstr "Ім’я плеєру в MPRIS"
msgid "Music player" msgid "Music player"
msgstr "Музичний плеєр" msgstr "Музичний плеєр"
msgid "Player data symbols"
msgstr ""
msgid "Custom scripts"
msgstr "Свої скрипти"
msgid "Edit scripts"
msgstr "Редагувати скрипти"
msgid "Quotes monitor" msgid "Quotes monitor"
msgstr "Монітор котирувань" msgstr "Монітор котирувань"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-31 21:39+0300\n" "POT-Creation-Date: 2015-09-02 00:03+0300\n"
"PO-Revision-Date: 2015-07-31 22:24+0300\n" "PO-Revision-Date: 2015-07-31 22:24+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n" "Language-Team: Russian <kde-russian@lists.kde.ru>\n"
@ -146,12 +146,6 @@ msgstr "选择字体"
msgid "ACPI path" msgid "ACPI path"
msgstr "" msgstr ""
msgid "Custom scripts"
msgstr ""
msgid "Edit scripts"
msgstr ""
msgid "GPU device" msgid "GPU device"
msgstr "GPU 设备" msgstr "GPU 设备"
@ -173,6 +167,15 @@ msgstr "MPRIS 播放器名"
msgid "Music player" msgid "Music player"
msgstr "音乐播放器" msgstr "音乐播放器"
msgid "Player data symbols"
msgstr ""
msgid "Custom scripts"
msgstr ""
msgid "Edit scripts"
msgstr ""
msgid "Quotes monitor" msgid "Quotes monitor"
msgstr "" msgstr ""