some fixes

This commit is contained in:
arcan1s 2015-02-03 02:01:43 +03:00
parent 27fd4e8f1e
commit 86d4bd76ea
8 changed files with 97 additions and 47 deletions

View File

@ -70,7 +70,6 @@ Item {
text: i18n("ACPI path") text: i18n("ACPI path")
} }
QtControls.TextField { QtControls.TextField {
height: parent.height
width: parent.width * 3 / 5 width: parent.width * 3 / 5
text: cfg_dataengine["ACPIPATH"] text: cfg_dataengine["ACPIPATH"]
} }
@ -154,9 +153,8 @@ Item {
text: i18n("hddtemp cmd") text: i18n("hddtemp cmd")
} }
QtControls.TextField { QtControls.TextField {
height: parent.height
width: parent.width * 3 / 5 width: parent.width * 3 / 5
text: cfg_dataengine["HDDTEMP"] text: cfg_dataengine["HDDTEMPCMD"]
} }
} }
@ -171,7 +169,6 @@ Item {
text: i18n("MPD address") text: i18n("MPD address")
} }
QtControls.TextField { QtControls.TextField {
height: parent.height
width: parent.width * 3 / 5 width: parent.width * 3 / 5
text: cfg_dataengine["MPDADDRESS"] text: cfg_dataengine["MPDADDRESS"]
} }

View File

@ -62,14 +62,12 @@ Item {
// init // init
Plasmoid.icon: "utilities-system-monitor" Plasmoid.icon: "utilities-system-monitor"
Plasmoid.backgroundHints: "DefaultBackground" Plasmoid.backgroundHints: plasmoid.configuration.background ? "DefaultBackground" : "NoBackground"
Plasmoid.toolTipMainText: "Awesome Widget"
Plasmoid.associatedApplication: "ksysguard" Plasmoid.associatedApplication: "ksysguard"
PlasmaCore.DataSource { PlasmaCore.DataSource {
id: systemmonitorDE id: systemmonitorDE
engine: "systemmonitor" engine: "systemmonitor"
connectedSources: []
interval: plasmoid.configuration.interval interval: plasmoid.configuration.interval
onNewData: { onNewData: {
@ -81,8 +79,7 @@ Item {
onSourceAdded: { onSourceAdded: {
if (debug) console.log("[main::onSourceAdded] : Source " + source) if (debug) console.log("[main::onSourceAdded] : Source " + source)
systemmonitorDE.connectSource(source) if (AWKeys.addDevice(source)) systemmonitorDE.connectSource(source)
AWKeys.addDevice(source)
} }
} }
@ -96,9 +93,7 @@ Item {
onNewData: { onNewData: {
if (debug) console.log("[main::onNewData] : Update source " + sourceName) if (debug) console.log("[main::onNewData] : Update source " + sourceName)
AWKeys.setDataBySource(sourceName, data, settings) if (AWKeys.setDataBySource(sourceName, data, settings)) needUpdate()
// update
if (sourceName == "update") needUpdate()
} }
} }
@ -130,6 +125,13 @@ Item {
horizontalAlignment: general.align[plasmoid.configuration.textAlign] horizontalAlignment: general.align[plasmoid.configuration.textAlign]
textFormat: Text.RichText textFormat: Text.RichText
text: plasmoid.configuration.text 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]") if (debug) console.log("[main::onNeedUpdate]")
text.text = AWKeys.parsePattern(plasmoid.configuration.text) text.text = AWKeys.parsePattern(plasmoid.configuration.text)
// FIXME change to pixmap/image/etc
tooltip.mainText = AWKeys.toolTipImage()
// update geometry // update geometry
text.update() text.update()
height = text.contentHeight height = text.contentHeight

View File

@ -59,6 +59,7 @@ Item {
width: parent.width width: parent.width
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter 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.") text: i18n("CPU, CPU clock, memory, swap and network labels support graphical tooltip. To enable them just make needed checkbox fully checked.")
} }

View File

@ -69,6 +69,7 @@ Item {
width: parent.width width: parent.width
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
wrapMode: Text.WordWrap
text: i18n("Detailed information may be found on <a href=\"http://arcanis.name/projects/awesome-widgets/\">project homepage</a>") text: i18n("Detailed information may be found on <a href=\"http://arcanis.name/projects/awesome-widgets/\">project homepage</a>")
} }

View File

@ -19,6 +19,7 @@
#include <KI18n/KLocalizedString> #include <KI18n/KLocalizedString>
#include <QBuffer>
#include <QDateTime> #include <QDateTime>
#include <QDebug> #include <QDebug>
#include <QDir> #include <QDir>
@ -140,15 +141,21 @@ QString AWKeys::parsePattern(const QString pattern)
} }
QPixmap AWKeys::toolTipImage() QString AWKeys::toolTipImage()
{ {
if(debug) qDebug() << PDEBUG; 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("<img src=\"data:image/png;base64,%1\"/>").arg(QString(byteArray.toBase64()));
} }
void AWKeys::addDevice(const QString source) bool AWKeys::addDevice(const QString source)
{ {
if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Source" << source; if (debug) qDebug() << PDEBUG << ":" << "Source" << source;
@ -170,6 +177,40 @@ void AWKeys::addDevice(const QString source)
mountDevices.append(device); mountDevices.append(device);
} else if (tempRegexp.indexIn(source) > -1) } else if (tempRegexp.indexIn(source) > -1)
tempDevices.append(source); 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("ndesktop"));
allKeys.append(QString("tdesktops")); allKeys.append(QString("tdesktops"));
// bars // bars
QStringList graphicalItemsKeys;
for (int i=0; i<graphicalItems.count(); i++) for (int i=0; i<graphicalItems.count(); i++)
allKeys.append(graphicalItems[i]->name() + 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; return allKeys;
} }
@ -366,6 +411,8 @@ bool AWKeys::setDataBySource(const QString sourceName,
if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Source" << sourceName; if (debug) qDebug() << PDEBUG << ":" << "Source" << sourceName;
if (sourceName == QString("update")) return true;
// checking // checking
if (!checkKeys(data)) return false; if (!checkKeys(data)) return false;
if (!ready) 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("$h"), QString("%1").arg(hours));
values[QString("cuptime")].replace(QString("$mm"), QString("%1").arg(minutes, 2, 10, QChar('0'))); values[QString("cuptime")].replace(QString("$mm"), QString("%1").arg(minutes, 2, 10, QChar('0')));
values[QString("cuptime")].replace(QString("$m"), QString("%1").arg(minutes)); 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 AWKeys::findKeys(const QString pattern)
{ {
QStringList selectedKeys; QStringList selectedKeys;
for (int i=0; i<keys.count(); i++) for (int i=0; i<keys.count(); i++) {
if (keys[i].startsWith(QString("bar"))) continue;
if (pattern.contains(QString("$") + keys[i])) { if (pattern.contains(QString("$") + keys[i])) {
if (debug) qDebug() << PDEBUG << ":" << "Found key" << keys[i]; if (debug) qDebug() << PDEBUG << ":" << "Found key" << keys[i];
selectedKeys.append(keys[i]); selectedKeys.append(keys[i]);
} }
}
return selectedKeys; return selectedKeys;
} }

View File

@ -55,9 +55,10 @@ public:
const QMap<QString, QVariant> tooltipParams); const QMap<QString, QVariant> tooltipParams);
Q_INVOKABLE bool isDebugEnabled(); Q_INVOKABLE bool isDebugEnabled();
Q_INVOKABLE QString parsePattern(const QString pattern); Q_INVOKABLE QString parsePattern(const QString pattern);
Q_INVOKABLE QPixmap toolTipImage(); // Q_INVOKABLE QPixmap toolTipImage();
Q_INVOKABLE QString toolTipImage();
// keys // keys
Q_INVOKABLE void addDevice(const QString source); Q_INVOKABLE bool addDevice(const QString source);
Q_INVOKABLE QStringList dictKeys(); Q_INVOKABLE QStringList dictKeys();
Q_INVOKABLE QStringList getDiskDevices(); Q_INVOKABLE QStringList getDiskDevices();
Q_INVOKABLE QStringList getFanDevices(); Q_INVOKABLE QStringList getFanDevices();

View File

@ -26,7 +26,7 @@
AWToolTip::AWToolTip(QObject *parent, AWToolTip::AWToolTip(QObject *parent,
QMap<QString, QVariant> settings) QMap<QString, QVariant> settings)
: QObject(parent), : QObject(parent),
m_settings(settings) configuration(settings)
{ {
// debug // debug
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment(); QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
@ -41,12 +41,12 @@ AWToolTip::AWToolTip(QObject *parent,
toolTipView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); toolTipView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
toolTipView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); toolTipView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_counts += m_settings[QString("cpuTooltip")].toInt(); counts += configuration[QString("cpuTooltip")].toInt();
m_counts += m_settings[QString("cpuclTooltip")].toInt(); counts += configuration[QString("cpuclTooltip")].toInt();
m_counts += m_settings[QString("memTooltip")].toInt(); counts += configuration[QString("memTooltip")].toInt();
m_counts += m_settings[QString("swapTooltip")].toInt(); counts += configuration[QString("swapTooltip")].toInt();
m_counts += m_settings[QString("downTooltip")].toInt(); counts += configuration[QString("downTooltip")].toInt();
m_counts += m_settings[QString("batteryTooltip")].toInt(); counts += configuration[QString("batteryTooltip")].toInt();
boundaries[QString("cpu")] = 100.0; boundaries[QString("cpu")] = 100.0;
boundaries[QString("cpucl")] = 4000.0; boundaries[QString("cpucl")] = 4000.0;
@ -56,13 +56,13 @@ AWToolTip::AWToolTip(QObject *parent,
boundaries[QString("up")] = 1.0; boundaries[QString("up")] = 1.0;
boundaries[QString("bat")] = 100.0; boundaries[QString("bat")] = 100.0;
if (m_settings[QString("cpuTooltip")].toBool()) requiredKeys.append(QString("cpu")); if (configuration[QString("cpuTooltip")].toBool()) requiredKeys.append(QString("cpu"));
if (m_settings[QString("cpuclTooltip")].toBool()) requiredKeys.append(QString("cpucl")); if (configuration[QString("cpuclTooltip")].toBool()) requiredKeys.append(QString("cpucl"));
if (m_settings[QString("memTooltip")].toBool()) requiredKeys.append(QString("mem")); if (configuration[QString("memTooltip")].toBool()) requiredKeys.append(QString("mem"));
if (m_settings[QString("swapTooltip")].toBool()) requiredKeys.append(QString("swap")); if (configuration[QString("swapTooltip")].toBool()) requiredKeys.append(QString("swap"));
if (m_settings[QString("downTooltip")].toBool()) requiredKeys.append(QString("down")); if (configuration[QString("downTooltip")].toBool()) requiredKeys.append(QString("down"));
if (m_settings[QString("upTooltip")].toBool()) requiredKeys.append(QString("up")); if (configuration[QString("upTooltip")].toBool()) requiredKeys.append(QString("up"));
if (m_settings[QString("batTooltip")].toBool()) requiredKeys.append(QString("bat")); if (configuration[QString("batTooltip")].toBool()) requiredKeys.append(QString("bat"));
} }
@ -79,13 +79,13 @@ QPixmap AWToolTip::image()
{ {
if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG;
toolTipView->resize(100.0 * m_counts, 105.0); toolTipView->resize(100.0 * counts, 105.0);
// create image // create image
toolTipScene->clear(); toolTipScene->clear();
QPen pen = QPen(); QPen pen = QPen();
// background // background
if (m_settings[QString("useTooltipBackground")].toBool()) if (configuration[QString("useTooltipBackground")].toBool())
toolTipScene->setBackgroundBrush(QColor(m_settings[QString("tooltipBackground")].toString())); toolTipScene->setBackgroundBrush(QColor(configuration[QString("tooltipBackground")].toString()));
else else
toolTipScene->setBackgroundBrush(QBrush(Qt::NoBrush)); toolTipScene->setBackgroundBrush(QBrush(Qt::NoBrush));
bool down = false; bool down = false;
@ -97,7 +97,7 @@ QPixmap AWToolTip::image()
isBattery = true; isBattery = true;
else else
isBattery = false; 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; float shift = i * 100.0;
if (down) shift -= 100.0; if (down) shift -= 100.0;
for (int j=0; j<data[requiredKeys[i]].count()-1; j++) { for (int j=0; j<data[requiredKeys[i]].count()-1; j++) {
@ -107,9 +107,9 @@ QPixmap AWToolTip::image()
float y2 = - fabs(data[requiredKeys[i]][j+1]) * normY + 5.0; float y2 = - fabs(data[requiredKeys[i]][j+1]) * normY + 5.0;
if (isBattery) { if (isBattery) {
if (data[requiredKeys[i]][j+1] > 0) if (data[requiredKeys[i]][j+1] > 0)
pen.setColor(QColor(m_settings[QString("batteryColor")].toString())); pen.setColor(QColor(configuration[QString("batteryColor")].toString()));
else else
pen.setColor(QColor(m_settings[QString("batteryInColor")].toString())); pen.setColor(QColor(configuration[QString("batteryInColor")].toString()));
} }
toolTipScene->addLine(x1, y1, x2, y2, pen); 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) if (data[source].count() == 0)
data[source].append(0.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(); data[source].takeFirst();
if (ac) if (ac)

View File

@ -33,7 +33,7 @@ class AWToolTip : public QObject
public: public:
AWToolTip(QObject *parent = 0, AWToolTip(QObject *parent = 0,
QMap<QString, QVariant> m_settings = QMap<QString, QVariant>()); QMap<QString, QVariant> settings = QMap<QString, QVariant>());
~AWToolTip(); ~AWToolTip();
QPixmap image(); QPixmap image();
@ -46,8 +46,8 @@ private:
QGraphicsView *toolTipView = nullptr; QGraphicsView *toolTipView = nullptr;
// variables // variables
bool debug = false; bool debug = false;
int m_counts = 0; int counts = 0;
QMap<QString, QVariant> m_settings; QMap<QString, QVariant> configuration;
QMap<QString, float> boundaries; QMap<QString, float> boundaries;
QMap<QString, QList<float>> data; QMap<QString, QList<float>> data;
QStringList requiredKeys; QStringList requiredKeys;