tidy&format(all): all files formatted and relevant warnings resolved
C++ / build (pull_request) Failing after 15s
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 28s
Python / lint-format (pull_request) Successful in 45s
Python / test (pull_request) Successful in 38s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m45s
C++ / build (pull_request) Failing after 15s
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 28s
Python / lint-format (pull_request) Successful in 45s
Python / test (pull_request) Successful in 38s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m45s
This commit is contained in:
@@ -7,47 +7,46 @@
|
||||
|
||||
namespace ZShell::internal {
|
||||
|
||||
SparklineItem::SparklineItem(QQuickItem* parent)
|
||||
: QQuickPaintedItem(parent) {
|
||||
SparklineItem::SparklineItem(QQuickItem* parent) : QQuickPaintedItem(parent) {
|
||||
setAntialiasing(true);
|
||||
}
|
||||
|
||||
void SparklineItem::paint(QPainter* painter) {
|
||||
const bool has1 = m_line1 && m_line1->count() >= 2;
|
||||
const bool has2 = m_line2 && m_line2->count() >= 2;
|
||||
if (!has1 && !has2)
|
||||
return;
|
||||
if (!has1 && !has2) return;
|
||||
|
||||
painter->setRenderHint(QPainter::Antialiasing, true);
|
||||
|
||||
// Draw line1 first (behind), then line2 (in front)
|
||||
if (has1)
|
||||
drawLine(painter, m_line1, m_line1Color, m_line1FillAlpha);
|
||||
if (has2)
|
||||
drawLine(painter, m_line2, m_line2Color, m_line2FillAlpha);
|
||||
if (has1) drawLine(painter, m_line1, m_line1Color, m_line1FillAlpha);
|
||||
if (has2) drawLine(painter, m_line2, m_line2Color, m_line2FillAlpha);
|
||||
}
|
||||
|
||||
void SparklineItem::drawLine(QPainter* painter, CircularBuffer* buffer, const QColor& color, qreal fillAlpha) {
|
||||
if (m_historyLength < 2)
|
||||
return;
|
||||
void SparklineItem::drawLine(
|
||||
QPainter* painter,
|
||||
CircularBuffer* buffer,
|
||||
const QColor& color,
|
||||
qreal fillAlpha) {
|
||||
if (m_historyLength < 2) return;
|
||||
|
||||
const qreal w = width();
|
||||
const qreal h = height();
|
||||
const int len = buffer->count();
|
||||
if (len < 2 || m_maxValue <= 0.0)
|
||||
return;
|
||||
if (len < 2 || m_maxValue <= 0.0) return;
|
||||
|
||||
const qreal stepX = w / static_cast<qreal>(m_historyLength - 1);
|
||||
const qreal startX = w - (len - 1) * stepX - stepX * m_slideProgress + stepX;
|
||||
const qreal startX =
|
||||
w - (len - 1) * stepX - stepX * m_slideProgress + stepX;
|
||||
|
||||
const qreal strokePad = qCeil(m_lineWidth / 2);
|
||||
const qreal curvePad = 3.0;
|
||||
const qreal topPad = strokePad + curvePad;
|
||||
const qreal curvePad = 3.0;
|
||||
const qreal topPad = strokePad + curvePad;
|
||||
const qreal bottomPad = strokePad;
|
||||
const qreal plotTop = topPad;
|
||||
const qreal plotTop = topPad;
|
||||
const qreal plotBottom = h - bottomPad;
|
||||
const qreal fillBottom = h;
|
||||
const qreal plotH = qMax<qreal>(1.0, plotBottom - plotTop);
|
||||
const qreal plotH = qMax<qreal>(1.0, plotBottom - plotTop);
|
||||
|
||||
QVector<QPointF> points;
|
||||
points.reserve(len);
|
||||
@@ -93,23 +92,22 @@ void SparklineItem::drawLine(QPainter* painter, CircularBuffer* buffer, const QC
|
||||
}
|
||||
|
||||
void SparklineItem::connectBuffer(CircularBuffer* buffer) {
|
||||
if (!buffer)
|
||||
return;
|
||||
if (!buffer) return;
|
||||
|
||||
connect(buffer, &CircularBuffer::valuesChanged, this, [this]() {
|
||||
update();
|
||||
});
|
||||
update();
|
||||
});
|
||||
connect(buffer, &QObject::destroyed, this, [this, buffer]() {
|
||||
if (m_line1 == buffer) {
|
||||
m_line1 = nullptr;
|
||||
emit line1Changed();
|
||||
}
|
||||
if (m_line2 == buffer) {
|
||||
m_line2 = nullptr;
|
||||
emit line2Changed();
|
||||
}
|
||||
update();
|
||||
});
|
||||
if (m_line1 == buffer) {
|
||||
m_line1 = nullptr;
|
||||
emit line1Changed();
|
||||
}
|
||||
if (m_line2 == buffer) {
|
||||
m_line2 = nullptr;
|
||||
emit line2Changed();
|
||||
}
|
||||
update();
|
||||
});
|
||||
}
|
||||
|
||||
CircularBuffer* SparklineItem::line1() const {
|
||||
@@ -117,10 +115,8 @@ CircularBuffer* SparklineItem::line1() const {
|
||||
}
|
||||
|
||||
void SparklineItem::setLine1(CircularBuffer* buffer) {
|
||||
if (m_line1 == buffer)
|
||||
return;
|
||||
if (m_line1)
|
||||
disconnect(m_line1, nullptr, this, nullptr);
|
||||
if (m_line1 == buffer) return;
|
||||
if (m_line1) disconnect(m_line1, nullptr, this, nullptr);
|
||||
m_line1 = buffer;
|
||||
connectBuffer(buffer);
|
||||
emit line1Changed();
|
||||
@@ -132,10 +128,8 @@ CircularBuffer* SparklineItem::line2() const {
|
||||
}
|
||||
|
||||
void SparklineItem::setLine2(CircularBuffer* buffer) {
|
||||
if (m_line2 == buffer)
|
||||
return;
|
||||
if (m_line2)
|
||||
disconnect(m_line2, nullptr, this, nullptr);
|
||||
if (m_line2 == buffer) return;
|
||||
if (m_line2) disconnect(m_line2, nullptr, this, nullptr);
|
||||
m_line2 = buffer;
|
||||
connectBuffer(buffer);
|
||||
emit line2Changed();
|
||||
@@ -147,8 +141,7 @@ QColor SparklineItem::line1Color() const {
|
||||
}
|
||||
|
||||
void SparklineItem::setLine1Color(const QColor& color) {
|
||||
if (m_line1Color == color)
|
||||
return;
|
||||
if (m_line1Color == color) return;
|
||||
m_line1Color = color;
|
||||
emit line1ColorChanged();
|
||||
update();
|
||||
@@ -159,8 +152,7 @@ QColor SparklineItem::line2Color() const {
|
||||
}
|
||||
|
||||
void SparklineItem::setLine2Color(const QColor& color) {
|
||||
if (m_line2Color == color)
|
||||
return;
|
||||
if (m_line2Color == color) return;
|
||||
m_line2Color = color;
|
||||
emit line2ColorChanged();
|
||||
update();
|
||||
@@ -171,8 +163,7 @@ qreal SparklineItem::line1FillAlpha() const {
|
||||
}
|
||||
|
||||
void SparklineItem::setLine1FillAlpha(qreal alpha) {
|
||||
if (qFuzzyCompare(m_line1FillAlpha, alpha))
|
||||
return;
|
||||
if (qFuzzyCompare(m_line1FillAlpha, alpha)) return;
|
||||
m_line1FillAlpha = alpha;
|
||||
emit line1FillAlphaChanged();
|
||||
update();
|
||||
@@ -183,8 +174,7 @@ qreal SparklineItem::line2FillAlpha() const {
|
||||
}
|
||||
|
||||
void SparklineItem::setLine2FillAlpha(qreal alpha) {
|
||||
if (qFuzzyCompare(m_line2FillAlpha, alpha))
|
||||
return;
|
||||
if (qFuzzyCompare(m_line2FillAlpha, alpha)) return;
|
||||
m_line2FillAlpha = alpha;
|
||||
emit line2FillAlphaChanged();
|
||||
update();
|
||||
@@ -195,8 +185,7 @@ qreal SparklineItem::maxValue() const {
|
||||
}
|
||||
|
||||
void SparklineItem::setMaxValue(qreal value) {
|
||||
if (qFuzzyCompare(m_maxValue, value))
|
||||
return;
|
||||
if (qFuzzyCompare(m_maxValue, value)) return;
|
||||
m_maxValue = value;
|
||||
emit maxValueChanged();
|
||||
update();
|
||||
@@ -207,8 +196,7 @@ qreal SparklineItem::slideProgress() const {
|
||||
}
|
||||
|
||||
void SparklineItem::setSlideProgress(qreal progress) {
|
||||
if (qFuzzyCompare(m_slideProgress, progress))
|
||||
return;
|
||||
if (qFuzzyCompare(m_slideProgress, progress)) return;
|
||||
m_slideProgress = progress;
|
||||
emit slideProgressChanged();
|
||||
update();
|
||||
@@ -219,8 +207,7 @@ int SparklineItem::historyLength() const {
|
||||
}
|
||||
|
||||
void SparklineItem::setHistoryLength(int length) {
|
||||
if (m_historyLength == length)
|
||||
return;
|
||||
if (m_historyLength == length) return;
|
||||
m_historyLength = length;
|
||||
emit historyLengthChanged();
|
||||
update();
|
||||
@@ -231,8 +218,7 @@ qreal SparklineItem::lineWidth() const {
|
||||
}
|
||||
|
||||
void SparklineItem::setLineWidth(qreal width) {
|
||||
if (qFuzzyCompare(m_lineWidth, width))
|
||||
return;
|
||||
if (qFuzzyCompare(m_lineWidth, width)) return;
|
||||
m_lineWidth = width;
|
||||
emit lineWidthChanged();
|
||||
update();
|
||||
|
||||
Reference in New Issue
Block a user