mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-07-14 22:35:49 +00:00
end work on awesomewidget
edit setdatabysource method
This commit is contained in:
@ -153,48 +153,6 @@ QMap<QString, QVariant> AWActions::getFont(const QMap<QString, QVariant> default
|
||||
}
|
||||
|
||||
|
||||
QString AWActions::selectDevices(const QStringList source, const QStringList current)
|
||||
{
|
||||
if (debug) qDebug() << PDEBUG;
|
||||
|
||||
// paint
|
||||
QDialog *dialog = new QDialog(0);
|
||||
QListWidget *widget = new QListWidget(dialog);
|
||||
QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel,
|
||||
Qt::Vertical, dialog);
|
||||
QHBoxLayout *layout = new QHBoxLayout(dialog);
|
||||
layout->addWidget(widget);
|
||||
layout->addWidget(buttons);
|
||||
dialog->setLayout(layout);
|
||||
connect(buttons, SIGNAL(accepted()), dialog, SLOT(accept()));
|
||||
connect(buttons, SIGNAL(rejected()), dialog, SLOT(reject()));
|
||||
|
||||
// fill
|
||||
for (int i=0; i<source.count(); i++) {
|
||||
QListWidgetItem *item = new QListWidgetItem(source[i]);
|
||||
if (current.contains(source[i]))
|
||||
item->setCheckState(Qt::Checked);
|
||||
else
|
||||
item->setCheckState(Qt::Unchecked);
|
||||
widget->addItem(item);
|
||||
}
|
||||
|
||||
// exec
|
||||
QStringList selected;
|
||||
int ret = dialog->exec();
|
||||
if (debug) qDebug() << PDEBUG << ":" << "Dialog returns" << ret;
|
||||
if (ret == QDialog::Accepted) {
|
||||
for (int i=0; i<widget->count(); i++)
|
||||
if (widget->item(i)->checkState() == Qt::Checked)
|
||||
selected.append(widget->item(i)->text());
|
||||
} else
|
||||
selected = current;
|
||||
delete dialog;
|
||||
|
||||
return selected.join(QString("@@"));
|
||||
}
|
||||
|
||||
|
||||
QMap<QString, QVariant> AWActions::readDataEngineConfiguration()
|
||||
{
|
||||
if (debug) qDebug() << PDEBUG;
|
||||
|
@ -238,11 +238,15 @@ QStringList AWKeys::dictKeys()
|
||||
allKeys.append(QString("hddw") + QString::number(i));
|
||||
}
|
||||
// hdd temp
|
||||
for (int i=getHddDevices.count()-1; i>=0; i--) {
|
||||
for (int i=getHddDevices().count()-1; i>=0; i--) {
|
||||
allKeys.append(QString("hddtemp") + QString::number(i));
|
||||
allKeys.append(QString("hddtemp") + QString::number(i));
|
||||
}
|
||||
// network
|
||||
for (int i=getNetworkDevices().count()-1; i>=0; i--) {
|
||||
allKeys.append(QString("down") + QString::number(i));
|
||||
allKeys.append(QString("up") + QString::number(i));
|
||||
}
|
||||
allKeys.append(QString("down"));
|
||||
allKeys.append(QString("up"));
|
||||
allKeys.append(QString("netdev"));
|
||||
@ -274,6 +278,9 @@ QStringList AWKeys::dictKeys()
|
||||
allKeys.append(QString("desktop"));
|
||||
allKeys.append(QString("ndesktop"));
|
||||
allKeys.append(QString("tdesktops"));
|
||||
// bars
|
||||
for (int i=0; i<graphicalItems.count(); i++)
|
||||
allKeys.append(graphicalItems[i]->name() + graphicalItems[i]->bar());
|
||||
|
||||
return allKeys;
|
||||
}
|
||||
@ -299,7 +306,7 @@ QStringList AWKeys::getFanDevices()
|
||||
}
|
||||
|
||||
|
||||
QStringList AWKeys::getHddDevices()
|
||||
QStringList AWKeys::getHddDevices(const bool needAbstract)
|
||||
{
|
||||
if (debug) qDebug() << PDEBUG;
|
||||
|
||||
@ -309,6 +316,11 @@ QStringList AWKeys::getHddDevices()
|
||||
devices[i] = QString("/dev/") + devices[i];
|
||||
devices.sort();
|
||||
|
||||
if (needAbstract) {
|
||||
devices.insert(0, QString("disable"));
|
||||
devices.insert(0, QString("auto"));
|
||||
}
|
||||
|
||||
return devices;
|
||||
}
|
||||
|
||||
@ -347,7 +359,7 @@ QStringList AWKeys::getTempDevices()
|
||||
}
|
||||
|
||||
|
||||
void AWKeys::setDataBySource(const QString sourceName,
|
||||
bool AWKeys::setDataBySource(const QString sourceName,
|
||||
const QMap<QString, QVariant> data,
|
||||
const QMap<QString, QVariant> params)
|
||||
{
|
||||
@ -355,8 +367,8 @@ void AWKeys::setDataBySource(const QString sourceName,
|
||||
if (debug) qDebug() << PDEBUG << ":" << "Source" << sourceName;
|
||||
|
||||
// checking
|
||||
if (!checkKeys(data)) return;
|
||||
if (!ready) return;
|
||||
if (!checkKeys(data)) return false;
|
||||
if (!ready) return false;
|
||||
|
||||
// regular expressions
|
||||
QRegExp cpuRegExp = QRegExp(QString("cpu/cpu.*/TotalLoad"));
|
||||
@ -416,7 +428,7 @@ void AWKeys::setDataBySource(const QString sourceName,
|
||||
QString device = sourceName;
|
||||
device.remove(QString("/Rate/rblk"));
|
||||
for (int i=0; i<diskDevices.count(); i++)
|
||||
if (params[QString("disk")].toString().split(QString("@@"))[i] == device) {
|
||||
if (diskDevices[i] == device) {
|
||||
values[QString("hddr") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 0);
|
||||
break;
|
||||
}
|
||||
@ -425,7 +437,7 @@ void AWKeys::setDataBySource(const QString sourceName,
|
||||
QString device = sourceName;
|
||||
device.remove(QString("/Rate/wblk"));
|
||||
for (int i=0; i<diskDevices.count(); i++)
|
||||
if (params[QString("disk")].toString().split(QString("@@"))[i] == device) {
|
||||
if (diskDevices[i] == device) {
|
||||
values[QString("hddw") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 0);
|
||||
break;
|
||||
}
|
||||
@ -441,7 +453,7 @@ void AWKeys::setDataBySource(const QString sourceName,
|
||||
QString mount = sourceName;
|
||||
mount.remove(QString("partitions")).remove(QString("/filllevel"));
|
||||
for (int i=0; i<mountDevices.count(); i++)
|
||||
if (params[QString("mount")].toString().split(QString("@@"))[i] == mount) {
|
||||
if (mountDevices[i] == mount) {
|
||||
values[QString("hdd") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 1);
|
||||
break;
|
||||
}
|
||||
@ -450,7 +462,7 @@ void AWKeys::setDataBySource(const QString sourceName,
|
||||
QString mount = sourceName;
|
||||
mount.remove(QString("partitions")).remove(QString("/freespace"));
|
||||
for (int i=0; i<mountDevices.count(); i++)
|
||||
if (params[QString("mount")].toString().split(QString("@@"))[i] == mount) {
|
||||
if (mountDevices[i] == mount) {
|
||||
values[QString("hddfreemb") + QString::number(i)] = QString("%1").arg(
|
||||
data[QString("value")].toFloat() / 1024.0, 5, 'f', 0);
|
||||
values[QString("hddfreegb") + QString::number(i)] = QString("%1").arg(
|
||||
@ -462,7 +474,7 @@ void AWKeys::setDataBySource(const QString sourceName,
|
||||
QString mount = sourceName;
|
||||
mount.remove(QString("partitions")).remove(QString("/usedspace"));
|
||||
for (int i=0; i<mountDevices.count(); i++)
|
||||
if (params[QString("mount")].toString().split(QString("@@"))[i] == mount) {
|
||||
if (mountDevices[i] == mount) {
|
||||
values[QString("hddmb") + QString::number(i)] = QString("%1").arg(
|
||||
data[QString("value")].toFloat() / 1024.0, 5, 'f', 0);
|
||||
values[QString("hddgb") + QString::number(i)] = QString("%1").arg(
|
||||
@ -478,9 +490,10 @@ void AWKeys::setDataBySource(const QString sourceName,
|
||||
}
|
||||
} else if (sourceName == QString("hddtemp")) {
|
||||
// hdd temperature
|
||||
QStringList hddDevices = getHddDevices();
|
||||
for (int i=0; i<data.keys().count(); i++)
|
||||
for (int j=0; j<getHddDevices().count(); j++)
|
||||
if (data.keys()[i] == params[QString("hdd")].toString().split(QString("@@"))[j]) {
|
||||
for (int j=0; j<hddDevices.count(); j++)
|
||||
if (hddDevices[j] == data.keys()[i]) {
|
||||
values[QString("hddtemp") + QString::number(j)] = QString("%1").arg(
|
||||
temperature(data[data.keys()[i]].toFloat(), params[QString("tempUnits")].toString()), 4, 'f', 1);
|
||||
break;
|
||||
@ -513,6 +526,12 @@ void AWKeys::setDataBySource(const QString sourceName,
|
||||
// download speed
|
||||
QString device = sourceName;
|
||||
device.remove(QString("network/interfaces/")).remove(QString("/receiver/data"));
|
||||
QStringList allNetworkDevices = getNetworkDevices();
|
||||
for (int i=0; i<allNetworkDevices.count(); i++)
|
||||
if (allNetworkDevices[i] == device) {
|
||||
values[QString("down") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0);
|
||||
break;
|
||||
}
|
||||
if (device == networkDevice()) {
|
||||
values[QString("down")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0);
|
||||
toolTip->setData(QString("down"), data[QString("value")].toFloat());
|
||||
@ -521,6 +540,12 @@ void AWKeys::setDataBySource(const QString sourceName,
|
||||
// upload speed
|
||||
QString device = sourceName;
|
||||
device.remove(QString("network/interfaces/")).remove(QString("/transmitter/data"));
|
||||
QStringList allNetworkDevices = getNetworkDevices();
|
||||
for (int i=0; i<allNetworkDevices.count(); i++)
|
||||
if (allNetworkDevices[i] == device) {
|
||||
values[QString("up") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0);
|
||||
break;
|
||||
}
|
||||
if (device == networkDevice()) {
|
||||
values[QString("up")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0);
|
||||
toolTip->setData(QString("up"), data[QString("value")].toFloat());
|
||||
@ -562,13 +587,13 @@ void AWKeys::setDataBySource(const QString sourceName,
|
||||
// temperature devices
|
||||
if (data[QString("units")].toString() == QString("rpm")) {
|
||||
for (int i=0; i<fanDevices.count(); i++)
|
||||
if (sourceName == params[QString("fanDevice")].toString().split(QString("@@"))[i]) {
|
||||
if (sourceName == fanDevices[i]) {
|
||||
values[QString("fan") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 1);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
for (int i=0; i<tempDevices.count(); i++)
|
||||
if (sourceName == params[QString("tempDevice")].toString().split(QString("@@"))[i]) {
|
||||
if (sourceName == tempDevices[i]) {
|
||||
values[QString("temp") + QString::number(i)] = QString("%1").arg(
|
||||
temperature(data[QString("value")].toFloat(), params[QString("tempUnits")].toString()), 4, 'f', 1);
|
||||
break;
|
||||
@ -600,7 +625,12 @@ void 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;
|
||||
}
|
||||
|
||||
|
||||
|
@ -61,11 +61,11 @@ public:
|
||||
Q_INVOKABLE QStringList dictKeys();
|
||||
Q_INVOKABLE QStringList getDiskDevices();
|
||||
Q_INVOKABLE QStringList getFanDevices();
|
||||
Q_INVOKABLE QStringList getHddDevices();
|
||||
Q_INVOKABLE QStringList getHddDevices(const bool needAbstract = false);
|
||||
Q_INVOKABLE QStringList getMountDevices();
|
||||
Q_INVOKABLE QStringList getNetworkDevices();
|
||||
Q_INVOKABLE QStringList getTempDevices();
|
||||
Q_INVOKABLE void setDataBySource(const QString sourceName,
|
||||
Q_INVOKABLE bool setDataBySource(const QString sourceName,
|
||||
const QMap<QString, QVariant> data,
|
||||
const QMap<QString, QVariant> params);
|
||||
// values
|
||||
|
@ -32,12 +32,46 @@ AWToolTip::AWToolTip(QObject *parent,
|
||||
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
|
||||
QString debugEnv = environment.value(QString("DEBUG"), QString("no"));
|
||||
debug = (debugEnv == QString("yes"));
|
||||
|
||||
toolTipScene = new QGraphicsScene();
|
||||
toolTipView = new QGraphicsView(toolTipScene);
|
||||
toolTipView->setStyleSheet(QString("background: transparent"));
|
||||
toolTipView->setContentsMargins(0, 0, 0, 0);
|
||||
toolTipView->setFrameShape(QFrame::NoFrame);
|
||||
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();
|
||||
|
||||
boundaries[QString("cpu")] = 100.0;
|
||||
boundaries[QString("cpucl")] = 4000.0;
|
||||
boundaries[QString("mem")] = 100.0;
|
||||
boundaries[QString("swap")] = 100.0;
|
||||
boundaries[QString("down")] = 1.0;
|
||||
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"));
|
||||
}
|
||||
|
||||
|
||||
AWToolTip::~AWToolTip()
|
||||
{
|
||||
if (debug) qDebug() << PDEBUG;
|
||||
|
||||
delete toolTipView;
|
||||
delete toolTipScene;
|
||||
}
|
||||
|
||||
|
||||
@ -45,7 +79,44 @@ QPixmap AWToolTip::image()
|
||||
{
|
||||
if (debug) qDebug() << PDEBUG;
|
||||
|
||||
return QPixmap();
|
||||
toolTipView->resize(100.0 * m_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()));
|
||||
else
|
||||
toolTipScene->setBackgroundBrush(QBrush(Qt::NoBrush));
|
||||
bool down = false;
|
||||
bool isBattery = false;
|
||||
for (int i=0; i<requiredKeys.count(); i++) {
|
||||
float normX = 100.0 / static_cast<float>(data[requiredKeys[i]].count());
|
||||
float normY = 100.0 / (1.5 * boundaries[requiredKeys[i]]);
|
||||
if (requiredKeys[i] == QString("bat"))
|
||||
isBattery = true;
|
||||
else
|
||||
isBattery = false;
|
||||
if (!isBattery) pen.setColor(QColor(m_settings[requiredKeys[i] + QString("Color")].toString()));
|
||||
float shift = i * 100.0;
|
||||
if (down) shift -= 100.0;
|
||||
for (int j=0; j<data[requiredKeys[i]].count()-1; j++) {
|
||||
float x1 = j * normX + shift;
|
||||
float y1 = - fabs(data[requiredKeys[i]][j]) * normY + 5.0;
|
||||
float x2 = (j + 1) * normX + shift;
|
||||
float y2 = - fabs(data[requiredKeys[i]][j+1]) * normY + 5.0;
|
||||
if (isBattery) {
|
||||
if (data[requiredKeys[i]][j+1] > 0)
|
||||
pen.setColor(QColor(m_settings[QString("batteryColor")].toString()));
|
||||
else
|
||||
pen.setColor(QColor(m_settings[QString("batteryInColor")].toString()));
|
||||
}
|
||||
toolTipScene->addLine(x1, y1, x2, y2, pen);
|
||||
}
|
||||
if (requiredKeys[i] == QString("down")) down = true;
|
||||
}
|
||||
|
||||
return toolTipView->grab();
|
||||
}
|
||||
|
||||
|
||||
@ -62,4 +133,15 @@ void AWToolTip::setData (const QString source, const float value, const bool ac)
|
||||
data[source].append(value);
|
||||
else
|
||||
data[source].append(-value);
|
||||
|
||||
if ((source == QString("down")) || (source == QString("up"))) {
|
||||
for (int i=0; i<data[QString("down")].count(); i++)
|
||||
if (boundaries[QString("down")] < data[QString("down")][i])
|
||||
boundaries[QString("down")] = data[QString("down")][i];
|
||||
for (int i=0; i<data[QString("up")].count(); i++)
|
||||
if (boundaries[QString("down")] < data[QString("up")][i])
|
||||
boundaries[QString("down")] = data[QString("up")][i];
|
||||
boundaries[QString("down")] *= 1.2;
|
||||
boundaries[QString("up")] = boundaries[QString("down")];
|
||||
}
|
||||
}
|
||||
|
@ -19,6 +19,8 @@
|
||||
#ifndef AWTOOLTIP_H
|
||||
#define AWTOOLTIP_H
|
||||
|
||||
#include <QGraphicsScene>
|
||||
#include <QGraphicsView>
|
||||
#include <QMap>
|
||||
#include <QObject>
|
||||
#include <QPixmap>
|
||||
@ -39,10 +41,16 @@ public:
|
||||
const bool ac = true);
|
||||
|
||||
private:
|
||||
// ui
|
||||
QGraphicsScene *toolTipScene = nullptr;
|
||||
QGraphicsView *toolTipView = nullptr;
|
||||
// variables
|
||||
bool debug = false;
|
||||
int m_counts = 0;
|
||||
QMap<QString, QVariant> m_settings;
|
||||
QMap<QString, float> boundaries;
|
||||
QMap<QString, QList<float>> data;
|
||||
QStringList requiredKeys;
|
||||
};
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user