end work on awesomewidget

edit setdatabysource method
This commit is contained in:
arcan1s
2015-02-02 08:21:56 +03:00
parent 9611677254
commit 27fd4e8f1e
12 changed files with 945 additions and 67 deletions

View File

@ -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")];
}
}