diff --git a/sources/awesome-widget-kf5/package/contents/ui/dataengine.qml b/sources/awesome-widget-kf5/package/contents/ui/dataengine.qml index 46cea63..5fec953 100644 --- a/sources/awesome-widget-kf5/package/contents/ui/dataengine.qml +++ b/sources/awesome-widget-kf5/package/contents/ui/dataengine.qml @@ -70,7 +70,6 @@ Item { text: i18n("ACPI path") } QtControls.TextField { - height: parent.height width: parent.width * 3 / 5 text: cfg_dataengine["ACPIPATH"] } @@ -154,9 +153,8 @@ Item { text: i18n("hddtemp cmd") } QtControls.TextField { - height: parent.height width: parent.width * 3 / 5 - text: cfg_dataengine["HDDTEMP"] + text: cfg_dataengine["HDDTEMPCMD"] } } @@ -171,7 +169,6 @@ Item { text: i18n("MPD address") } QtControls.TextField { - height: parent.height width: parent.width * 3 / 5 text: cfg_dataengine["MPDADDRESS"] } diff --git a/sources/awesome-widget-kf5/package/contents/ui/main.qml b/sources/awesome-widget-kf5/package/contents/ui/main.qml index 17c9961..48929b5 100644 --- a/sources/awesome-widget-kf5/package/contents/ui/main.qml +++ b/sources/awesome-widget-kf5/package/contents/ui/main.qml @@ -62,14 +62,12 @@ Item { // init Plasmoid.icon: "utilities-system-monitor" - Plasmoid.backgroundHints: "DefaultBackground" - Plasmoid.toolTipMainText: "Awesome Widget" + Plasmoid.backgroundHints: plasmoid.configuration.background ? "DefaultBackground" : "NoBackground" Plasmoid.associatedApplication: "ksysguard" PlasmaCore.DataSource { id: systemmonitorDE engine: "systemmonitor" - connectedSources: [] interval: plasmoid.configuration.interval onNewData: { @@ -81,8 +79,7 @@ Item { onSourceAdded: { if (debug) console.log("[main::onSourceAdded] : Source " + source) - systemmonitorDE.connectSource(source) - AWKeys.addDevice(source) + if (AWKeys.addDevice(source)) systemmonitorDE.connectSource(source) } } @@ -96,9 +93,7 @@ Item { onNewData: { if (debug) console.log("[main::onNewData] : Update source " + sourceName) - AWKeys.setDataBySource(sourceName, data, settings) - // update - if (sourceName == "update") needUpdate() + if (AWKeys.setDataBySource(sourceName, data, settings)) needUpdate() } } @@ -130,6 +125,13 @@ Item { horizontalAlignment: general.align[plasmoid.configuration.textAlign] textFormat: Text.RichText text: plasmoid.configuration.text + + PlasmaCore.ToolTipArea { + id: tooltip + height: 100 + width: 500 + mainText: "Awesome Widget" + } } } @@ -148,6 +150,8 @@ Item { if (debug) console.log("[main::onNeedUpdate]") text.text = AWKeys.parsePattern(plasmoid.configuration.text) + // FIXME change to pixmap/image/etc + tooltip.mainText = AWKeys.toolTipImage() // update geometry text.update() height = text.contentHeight diff --git a/sources/awesome-widget-kf5/package/contents/ui/tooltip.qml b/sources/awesome-widget-kf5/package/contents/ui/tooltip.qml index db1c74c..879e88c 100644 --- a/sources/awesome-widget-kf5/package/contents/ui/tooltip.qml +++ b/sources/awesome-widget-kf5/package/contents/ui/tooltip.qml @@ -59,6 +59,7 @@ Item { width: parent.width horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter + wrapMode: Text.WordWrap text: i18n("CPU, CPU clock, memory, swap and network labels support graphical tooltip. To enable them just make needed checkbox fully checked.") } diff --git a/sources/awesome-widget-kf5/package/contents/ui/widget.qml b/sources/awesome-widget-kf5/package/contents/ui/widget.qml index aae6bae..f174ec0 100644 --- a/sources/awesome-widget-kf5/package/contents/ui/widget.qml +++ b/sources/awesome-widget-kf5/package/contents/ui/widget.qml @@ -69,6 +69,7 @@ Item { width: parent.width horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter + wrapMode: Text.WordWrap text: i18n("Detailed information may be found on project homepage") } diff --git a/sources/awesome-widget-kf5/plugin/awkeys.cpp b/sources/awesome-widget-kf5/plugin/awkeys.cpp index 24c7fc2..b183ac7 100644 --- a/sources/awesome-widget-kf5/plugin/awkeys.cpp +++ b/sources/awesome-widget-kf5/plugin/awkeys.cpp @@ -19,6 +19,7 @@ #include +#include #include #include #include @@ -140,15 +141,21 @@ QString AWKeys::parsePattern(const QString pattern) } -QPixmap AWKeys::toolTipImage() +QString AWKeys::toolTipImage() { if(debug) qDebug() << PDEBUG; - return toolTip->image(); + if (!ready) return QString(); + + QPixmap tooltip = toolTip->image(); + QByteArray byteArray; + QBuffer buffer(&byteArray); + tooltip.save(&buffer, "PNG"); + return QString("").arg(QString(byteArray.toBase64())); } -void AWKeys::addDevice(const QString source) +bool AWKeys::addDevice(const QString source) { if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG << ":" << "Source" << source; @@ -170,6 +177,40 @@ void AWKeys::addDevice(const QString source) mountDevices.append(device); } else if (tempRegexp.indexIn(source) > -1) tempDevices.append(source); + + // check sources to be connected + if ((source.endsWith(QString("/TotalLoad"))) || + (source.endsWith(QString("/clock"))) || + (source.endsWith(QString("/AverageClock"))) || + (source.endsWith(QString("/Rate/rblk"))) || + (source.endsWith(QString("/Rate/wblk"))) || + (source.endsWith(QString("/filllevel"))) || + (source.endsWith(QString("/freespace"))) || + (source.endsWith(QString("/usedspace"))) || + (source.endsWith(QString("/receiver/data"))) || + (source.endsWith(QString("/receiver/data"))) || + (source.endsWith(QString("/transmitter/data"))) || + (source.startsWith(QString("lmsensors/"))) || + (source.startsWith(QString("mem/physical/"))) || + (source.startsWith(QString("mem/swap/"))) || + (source == QString("system/uptime")) || + (source == QString("Local")) || + (source == QString("battery")) || + (source == QString("custom")) || + (source == QString("desktop")) || + (source == QString("netdev")) || + (source == QString("gpu")) || + (source == QString("gputemp")) || + (source == QString("hddtemp")) || + (source == QString("pkg")) || + (source == QString("player")) || + (source == QString("ps")) || + (source == QString("update"))) + return true; + else { + if (debug) qDebug() << PDEBUG << ":" << "Source" << source << "not found"; + return false; + } } @@ -279,8 +320,12 @@ QStringList AWKeys::dictKeys() allKeys.append(QString("ndesktop")); allKeys.append(QString("tdesktops")); // bars + QStringList graphicalItemsKeys; for (int i=0; iname() + graphicalItems[i]->bar()); + graphicalItemsKeys.append(graphicalItems[i]->name() + graphicalItems[i]->bar()); + graphicalItemsKeys.sort(); + for (int i=graphicalItemsKeys.count()-1; i>=0; i--) + allKeys.append(graphicalItemsKeys[i]); return allKeys; } @@ -366,6 +411,8 @@ bool AWKeys::setDataBySource(const QString sourceName, if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG << ":" << "Source" << sourceName; + if (sourceName == QString("update")) return true; + // checking if (!checkKeys(data)) return false; if (!ready) return false; @@ -625,12 +672,9 @@ bool AWKeys::setDataBySource(const QString sourceName, values[QString("cuptime")].replace(QString("$h"), QString("%1").arg(hours)); values[QString("cuptime")].replace(QString("$mm"), QString("%1").arg(minutes, 2, 10, QChar('0'))); values[QString("cuptime")].replace(QString("$m"), QString("%1").arg(minutes)); - } else { - if (debug) qDebug() << PDEBUG << ":" << "Source not found"; - return false; } - return true; + return false; } @@ -984,11 +1028,13 @@ QStringList AWKeys::findGraphicalItems(const QString pattern) QStringList AWKeys::findKeys(const QString pattern) { QStringList selectedKeys; - for (int i=0; i tooltipParams); Q_INVOKABLE bool isDebugEnabled(); Q_INVOKABLE QString parsePattern(const QString pattern); - Q_INVOKABLE QPixmap toolTipImage(); +// Q_INVOKABLE QPixmap toolTipImage(); + Q_INVOKABLE QString toolTipImage(); // keys - Q_INVOKABLE void addDevice(const QString source); + Q_INVOKABLE bool addDevice(const QString source); Q_INVOKABLE QStringList dictKeys(); Q_INVOKABLE QStringList getDiskDevices(); Q_INVOKABLE QStringList getFanDevices(); diff --git a/sources/awesome-widget-kf5/plugin/awtooltip.cpp b/sources/awesome-widget-kf5/plugin/awtooltip.cpp index 1e7f77c..8e5580c 100644 --- a/sources/awesome-widget-kf5/plugin/awtooltip.cpp +++ b/sources/awesome-widget-kf5/plugin/awtooltip.cpp @@ -26,7 +26,7 @@ AWToolTip::AWToolTip(QObject *parent, QMap settings) : QObject(parent), - m_settings(settings) + configuration(settings) { // debug QProcessEnvironment environment = QProcessEnvironment::systemEnvironment(); @@ -41,12 +41,12 @@ AWToolTip::AWToolTip(QObject *parent, toolTipView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); toolTipView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - m_counts += m_settings[QString("cpuTooltip")].toInt(); - m_counts += m_settings[QString("cpuclTooltip")].toInt(); - m_counts += m_settings[QString("memTooltip")].toInt(); - m_counts += m_settings[QString("swapTooltip")].toInt(); - m_counts += m_settings[QString("downTooltip")].toInt(); - m_counts += m_settings[QString("batteryTooltip")].toInt(); + counts += configuration[QString("cpuTooltip")].toInt(); + counts += configuration[QString("cpuclTooltip")].toInt(); + counts += configuration[QString("memTooltip")].toInt(); + counts += configuration[QString("swapTooltip")].toInt(); + counts += configuration[QString("downTooltip")].toInt(); + counts += configuration[QString("batteryTooltip")].toInt(); boundaries[QString("cpu")] = 100.0; boundaries[QString("cpucl")] = 4000.0; @@ -56,13 +56,13 @@ AWToolTip::AWToolTip(QObject *parent, boundaries[QString("up")] = 1.0; boundaries[QString("bat")] = 100.0; - if (m_settings[QString("cpuTooltip")].toBool()) requiredKeys.append(QString("cpu")); - if (m_settings[QString("cpuclTooltip")].toBool()) requiredKeys.append(QString("cpucl")); - if (m_settings[QString("memTooltip")].toBool()) requiredKeys.append(QString("mem")); - if (m_settings[QString("swapTooltip")].toBool()) requiredKeys.append(QString("swap")); - if (m_settings[QString("downTooltip")].toBool()) requiredKeys.append(QString("down")); - if (m_settings[QString("upTooltip")].toBool()) requiredKeys.append(QString("up")); - if (m_settings[QString("batTooltip")].toBool()) requiredKeys.append(QString("bat")); + if (configuration[QString("cpuTooltip")].toBool()) requiredKeys.append(QString("cpu")); + if (configuration[QString("cpuclTooltip")].toBool()) requiredKeys.append(QString("cpucl")); + if (configuration[QString("memTooltip")].toBool()) requiredKeys.append(QString("mem")); + if (configuration[QString("swapTooltip")].toBool()) requiredKeys.append(QString("swap")); + if (configuration[QString("downTooltip")].toBool()) requiredKeys.append(QString("down")); + if (configuration[QString("upTooltip")].toBool()) requiredKeys.append(QString("up")); + if (configuration[QString("batTooltip")].toBool()) requiredKeys.append(QString("bat")); } @@ -79,13 +79,13 @@ QPixmap AWToolTip::image() { if (debug) qDebug() << PDEBUG; - toolTipView->resize(100.0 * m_counts, 105.0); + toolTipView->resize(100.0 * counts, 105.0); // create image toolTipScene->clear(); QPen pen = QPen(); // background - if (m_settings[QString("useTooltipBackground")].toBool()) - toolTipScene->setBackgroundBrush(QColor(m_settings[QString("tooltipBackground")].toString())); + if (configuration[QString("useTooltipBackground")].toBool()) + toolTipScene->setBackgroundBrush(QColor(configuration[QString("tooltipBackground")].toString())); else toolTipScene->setBackgroundBrush(QBrush(Qt::NoBrush)); bool down = false; @@ -97,7 +97,7 @@ QPixmap AWToolTip::image() isBattery = true; else isBattery = false; - if (!isBattery) pen.setColor(QColor(m_settings[requiredKeys[i] + QString("Color")].toString())); + if (!isBattery) pen.setColor(QColor(configuration[requiredKeys[i] + QString("Color")].toString())); float shift = i * 100.0; if (down) shift -= 100.0; for (int j=0; j 0) - pen.setColor(QColor(m_settings[QString("batteryColor")].toString())); + pen.setColor(QColor(configuration[QString("batteryColor")].toString())); else - pen.setColor(QColor(m_settings[QString("batteryInColor")].toString())); + pen.setColor(QColor(configuration[QString("batteryInColor")].toString())); } toolTipScene->addLine(x1, y1, x2, y2, pen); } @@ -126,7 +126,7 @@ void AWToolTip::setData (const QString source, const float value, const bool ac) if (data[source].count() == 0) data[source].append(0.0); - else if (data[source].count() > m_settings[QString("tooltipNumber")].toInt()) + else if (data[source].count() > configuration[QString("tooltipNumber")].toInt()) data[source].takeFirst(); if (ac) diff --git a/sources/awesome-widget-kf5/plugin/awtooltip.h b/sources/awesome-widget-kf5/plugin/awtooltip.h index 970df45..0725659 100644 --- a/sources/awesome-widget-kf5/plugin/awtooltip.h +++ b/sources/awesome-widget-kf5/plugin/awtooltip.h @@ -33,7 +33,7 @@ class AWToolTip : public QObject public: AWToolTip(QObject *parent = 0, - QMap m_settings = QMap()); + QMap settings = QMap()); ~AWToolTip(); QPixmap image(); @@ -46,8 +46,8 @@ private: QGraphicsView *toolTipView = nullptr; // variables bool debug = false; - int m_counts = 0; - QMap m_settings; + int counts = 0; + QMap configuration; QMap boundaries; QMap> data; QStringList requiredKeys;