From 38c4d3bfafcfc9e57214f42e42fbd8f38a97ed8e Mon Sep 17 00:00:00 2001 From: arcan1s Date: Sun, 31 Aug 2014 20:21:06 +0400 Subject: [PATCH] work on data update --- sources/awesome-widget/awesome-widget.cpp | 20 +-- sources/awesome-widget/awesome-widget.h | 3 + sources/awesome-widget/configuration.cpp | 10 ++ sources/awesome-widget/deinteraction.cpp | 153 +++++++++++++++++++--- sources/awesome-widget/reinit.cpp | 7 + 5 files changed, 162 insertions(+), 31 deletions(-) diff --git a/sources/awesome-widget/awesome-widget.cpp b/sources/awesome-widget/awesome-widget.cpp index 14e3d6a..8f4d485 100644 --- a/sources/awesome-widget/awesome-widget.cpp +++ b/sources/awesome-widget/awesome-widget.cpp @@ -130,8 +130,6 @@ QStringList AwesomeWidget::getKeys() if (debug) qDebug() << PDEBUG; QStringList allKeys; - int numCpus = getNumberCpus(); - QMap deSettings = readDataEngineConfiguration(); // time allKeys.append(QString("time")); allKeys.append(QString("isotime")); @@ -143,14 +141,14 @@ QStringList AwesomeWidget::getKeys() allKeys.append(QString("cuptime")); // cpu allKeys.append(QString("cpu")); - for (int i=0; i counts; + QMap> tooltipValues; QMap values; // debug bool debug; diff --git a/sources/awesome-widget/configuration.cpp b/sources/awesome-widget/configuration.cpp index 56a842c..8645867 100644 --- a/sources/awesome-widget/configuration.cpp +++ b/sources/awesome-widget/configuration.cpp @@ -537,5 +537,15 @@ void AwesomeWidget::configChanged() .arg(fontColor); formatLine[1] = QString("

"); + // counts + QMap deSettings = readDataEngineConfiguration(); + counts[QString("cpu")] = getNumberCpus(); + counts[QString("custom")] = deSettings[QString("CUSTOM")].split(QString("@@")).count(); + counts[QString("disk")] = configuration[QString("disk")].split(QString("@@")).count(); + counts[QString("hddtemp")] = configuration[QString("hdd")].split(QString("@@")).count(); + counts[QString("mount")] = configuration[QString("mount")].split(QString("@@")).count(); + counts[QString("pkg")] = deSettings[QString("PKGCMD")].split(QChar(',')).count(); + counts[QString("temp")] = configuration[QString("tempDevice")].split(QString("@@")).count(); + reinit(); } diff --git a/sources/awesome-widget/deinteraction.cpp b/sources/awesome-widget/deinteraction.cpp index 8e7acaa..ac41717 100644 --- a/sources/awesome-widget/deinteraction.cpp +++ b/sources/awesome-widget/deinteraction.cpp @@ -37,8 +37,7 @@ void AwesomeWidget::connectToEngine() if (foundKeys.indexOf(regExp) > -1) { sysmonEngine->connectSource(QString("cpu/system/TotalLoad"), this, configuration[QString("interval")].toInt()); - int numCpus = getNumberCpus(); - for (int i=0; iconnectSource(QString("cpu/cpu") + QString::number(i) + QString("/TotalLoad"), this, configuration[QString("interval")].toInt()); } @@ -47,8 +46,7 @@ void AwesomeWidget::connectToEngine() if (foundKeys.indexOf(regExp) > -1) { sysmonEngine->connectSource(QString("cpu/system/AverageClock"), this, configuration[QString("interval")].toInt()); - int numCpus = getNumberCpus(); - for (int i=0; iconnectSource(QString("cpu/cpu") + QString::number(i) + QString("/clock"), this, configuration[QString("interval")].toInt()); } @@ -82,7 +80,7 @@ void AwesomeWidget::connectToEngine() extsysmonEngine->connectSource(QString("gputemp"), this, configuration[QString("interval")].toInt()); // mount - regExp = QRegExp(QString("hdd([0-9]|mb|gb|totmb|totgb).*")); + regExp = QRegExp(QString("hdd([0-9]|mb|gb|freemb|freegb|totmb|totgb).*")); if (foundKeys.indexOf(regExp) > -1) for (int i=0; iconnectSource(QString("partitions") + configuration[QString("mount")].split(QString("@@"))[i] + QString("/filllevel"), @@ -160,18 +158,133 @@ void AwesomeWidget::connectToEngine() void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEngine::Data &data) { if (debug) qDebug() << PDEBUG; - if (debug) qDebug() << PDEBUG << ":" << "Run function with source name" << sourceName; + if (debug) qDebug() << PDEBUG << ":" << "Source" << sourceName; - if (data.keys().count() == 0) - return; -// if (sourceName == QString("desktop")) { -// currentDesktop = data[QString("currentNumber")].toInt(); -// if (desktopNames.isEmpty()) { -// desktopNames = data[QString("list")].toString().split(QString(";;")); -// reinit(); -// } -// updateText(); -// } + // regular expressions + QRegExp cpuRegExp = QRegExp(QString("cpu/cpu.*/TotalLoad")); + QRegExp cpuclRegExp = QRegExp(QString("cpu/cpu.*/clock")); + QRegExp hddrRegExp = QRegExp(QString("disk/.*/Rate/rblk")); + QRegExp hddwRegExp = QRegExp(QString("disk/.*/Rate/wblk")); + QRegExp mountFillRegExp = QRegExp(QString("partitions/.*/filllevel")); + QRegExp mountFreeRegExp = QRegExp(QString("partitions/.*/freespace")); + QRegExp mountUsedRegExp = QRegExp(QString("partitions/.*/usedspace")); + + if (data.keys().isEmpty()) return; + if (sourceName == QString("battery")) { + if (data[QString("ac")].toBool()) + values[QString("ac")] = configuration[QString("acOnline")]; + else + values[QString("ac")] = configuration[QString("acOffline")]; + values[QString("bat")] = QString("%3i").arg(data[QString("bat")].toInt()); + } else if (sourceName == QString("cpu/system/TotalLoad")) { + values[QString("cpu")] = QString("%5.1f").arg(data[QString("value")].toFloat()); + if (configuration[QString("cpuTooltip")].toInt() == 2) + tooltipValues[QString("cpu")].append(data[QString("value")].toFloat()); + } else if (sourceName.indexOf(cpuRegExp) > -1) { + QString number = sourceName; + number.remove(QString("cpu/cpu")); + number.remove(QString("/TotalLoad")); + values[QString("cpu") + number] = QString("%5.1f").arg(data[QString("value")].toFloat()); + } else if (sourceName == QString("cpu/system/AverageClock")) { + values[QString("cpucl")] = QString("%5.1f").arg(data[QString("value")].toFloat()); + if (configuration[QString("cpuclockTooltip")].toInt() == 2) + tooltipValues[QString("cpucl")].append(data[QString("value")].toFloat()); + } else if (sourceName.indexOf(cpuclRegExp) > -1) { + QString number = sourceName; + number.remove(QString("cpu/cpu")); + number.remove(QString("/clock")); + values[QString("cpucl") + number] = QString("%5.1f").arg(data[QString("value")].toFloat()); + } else if (sourceName == QString("custom")) { + for (int i=0; i -1) { + QString device = sourceName; + device.remove(QString("/Rate/rblk")); + for (int i=0; i -1) { + QString device = sourceName; + device.remove(QString("/Rate/wblk")); + for (int i=0; i -1) { + QString mount = sourceName; + mount.remove(QString("partitions")); + mount.remove(QString("/filllevel")); + for (int i=0; i -1) { + QString mount = sourceName; + mount.remove(QString("partitions")); + mount.remove(QString("/freespace")); + for (int i=0; i -1) { + QString mount = sourceName; + mount.remove(QString("partitions")); + mount.remove(QString("/usedspace")); + for (int i=0; i -1) { sysmonEngine->disconnectSource(QString("cpu/system/TotalLoad"), this); - int numCpus = getNumberCpus(); - for (int i=0; idisconnectSource(QString("cpu/cpu") + QString::number(i) + QString("/TotalLoad"), this); } // cpuclock regExp = QRegExp(QString("cpucl.*")); if (foundKeys.indexOf(regExp) > -1) { sysmonEngine->disconnectSource(QString("cpu/system/AverageClock"), this); - int numCpus = getNumberCpus(); - for (int i=0; idisconnectSource(QString("cpu/cpu") + QString::number(i) + QString("/clock"), this); } // custom command @@ -224,7 +335,7 @@ void AwesomeWidget::disconnectFromEngine() if (foundKeys.indexOf(regExp) > -1) extsysmonEngine->disconnectSource(QString("gputemp"), this); // mount - regExp = QRegExp(QString("hdd([0-9]|mb|gb|totmb|totgb).*")); + regExp = QRegExp(QString("hdd([0-9]|mb|gb|freemb|freegb|totmb|totgb).*")); if (foundKeys.indexOf(regExp) > -1) for (int i=0; idisconnectSource(QString("partitions") + configuration[QString("mount")].split(QString("@@"))[i] + QString("/filllevel"), this); diff --git a/sources/awesome-widget/reinit.cpp b/sources/awesome-widget/reinit.cpp index ade0909..d37b756 100644 --- a/sources/awesome-widget/reinit.cpp +++ b/sources/awesome-widget/reinit.cpp @@ -24,6 +24,12 @@ #include +void AwesomeWidget::initValues() +{ + if (debug) qDebug() << PDEBUG; +} + + void AwesomeWidget::reinit() { if (debug) qDebug() << PDEBUG; @@ -50,6 +56,7 @@ void AwesomeWidget::reinit() keys = getKeys(); foundKeys = findKeys(); + initValues(); values[QString("netdev")] = getNetworkDevice(); // thread()->wait(60000); connectToEngine();