|
|
|
@ -3,108 +3,106 @@ |
|
|
|
|
#include <QLinearGradient> |
|
|
|
|
#include <QPainter> |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
DropShadow::draw(QPainter &painter, |
|
|
|
|
qint16 margin, |
|
|
|
|
qreal radius, |
|
|
|
|
QColor start, |
|
|
|
|
QColor end, |
|
|
|
|
qreal startPosition, |
|
|
|
|
qreal endPosition0, |
|
|
|
|
qreal endPosition1, |
|
|
|
|
qreal width, |
|
|
|
|
qreal height) |
|
|
|
|
{ |
|
|
|
|
painter.setPen(Qt::NoPen); |
|
|
|
|
|
|
|
|
|
void DropShadow::draw(QPainter &painter, |
|
|
|
|
qint16 margin, |
|
|
|
|
qreal radius, |
|
|
|
|
QColor start, |
|
|
|
|
QColor end, |
|
|
|
|
qreal startPosition, |
|
|
|
|
qreal endPosition0, |
|
|
|
|
qreal endPosition1, |
|
|
|
|
qreal width, |
|
|
|
|
qreal height) |
|
|
|
|
{ |
|
|
|
|
painter.setPen(Qt::NoPen); |
|
|
|
|
QLinearGradient gradient; |
|
|
|
|
gradient.setColorAt(startPosition, start); |
|
|
|
|
gradient.setColorAt(endPosition0, end); |
|
|
|
|
|
|
|
|
|
QLinearGradient gradient; |
|
|
|
|
gradient.setColorAt(startPosition, start); |
|
|
|
|
gradient.setColorAt(endPosition0, end); |
|
|
|
|
// Right
|
|
|
|
|
QPointF right0(width - margin, height / 2); |
|
|
|
|
QPointF right1(width, height / 2); |
|
|
|
|
gradient.setStart(right0); |
|
|
|
|
gradient.setFinalStop(right1); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
// Deprecated in 5.13: painter.drawRoundRect(
|
|
|
|
|
// QRectF(QPointF(width - margin * radius, margin), QPointF(width, height -
|
|
|
|
|
// margin)), 0.0, 0.0);
|
|
|
|
|
painter.drawRoundedRect( |
|
|
|
|
QRectF(QPointF(width - margin * radius, margin), QPointF(width, height - margin)), |
|
|
|
|
0.0, |
|
|
|
|
0.0); |
|
|
|
|
|
|
|
|
|
// Right
|
|
|
|
|
QPointF right0(width - margin, height / 2); |
|
|
|
|
QPointF right1(width, height / 2); |
|
|
|
|
gradient.setStart(right0); |
|
|
|
|
gradient.setFinalStop(right1); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
// Deprecated in 5.13: painter.drawRoundRect(
|
|
|
|
|
// QRectF(QPointF(width - margin * radius, margin), QPointF(width, height -
|
|
|
|
|
// margin)), 0.0, 0.0);
|
|
|
|
|
painter.drawRoundedRect( |
|
|
|
|
QRectF(QPointF(width - margin * radius, margin), QPointF(width, height - margin)), |
|
|
|
|
0.0, |
|
|
|
|
0.0); |
|
|
|
|
// Left
|
|
|
|
|
QPointF left0(margin, height / 2); |
|
|
|
|
QPointF left1(0, height / 2); |
|
|
|
|
gradient.setStart(left0); |
|
|
|
|
gradient.setFinalStop(left1); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect( |
|
|
|
|
QRectF(QPointF(margin * radius, margin), QPointF(0, height - margin)), 0.0, 0.0); |
|
|
|
|
|
|
|
|
|
// Left
|
|
|
|
|
QPointF left0(margin, height / 2); |
|
|
|
|
QPointF left1(0, height / 2); |
|
|
|
|
gradient.setStart(left0); |
|
|
|
|
gradient.setFinalStop(left1); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect( |
|
|
|
|
QRectF(QPointF(margin * radius, margin), QPointF(0, height - margin)), 0.0, 0.0); |
|
|
|
|
// Top
|
|
|
|
|
QPointF top0(width / 2, margin); |
|
|
|
|
QPointF top1(width / 2, 0); |
|
|
|
|
gradient.setStart(top0); |
|
|
|
|
gradient.setFinalStop(top1); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect( |
|
|
|
|
QRectF(QPointF(width - margin, 0), QPointF(margin, margin)), 0.0, 0.0); |
|
|
|
|
|
|
|
|
|
// Top
|
|
|
|
|
QPointF top0(width / 2, margin); |
|
|
|
|
QPointF top1(width / 2, 0); |
|
|
|
|
gradient.setStart(top0); |
|
|
|
|
gradient.setFinalStop(top1); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect( |
|
|
|
|
QRectF(QPointF(width - margin, 0), QPointF(margin, margin)), 0.0, 0.0); |
|
|
|
|
// Bottom
|
|
|
|
|
QPointF bottom0(width / 2, height - margin); |
|
|
|
|
QPointF bottom1(width / 2, height); |
|
|
|
|
gradient.setStart(bottom0); |
|
|
|
|
gradient.setFinalStop(bottom1); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect( |
|
|
|
|
QRectF(QPointF(margin, height - margin), QPointF(width - margin, height)), 0.0, 0.0); |
|
|
|
|
|
|
|
|
|
// Bottom
|
|
|
|
|
QPointF bottom0(width / 2, height - margin); |
|
|
|
|
QPointF bottom1(width / 2, height); |
|
|
|
|
gradient.setStart(bottom0); |
|
|
|
|
gradient.setFinalStop(bottom1); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect( |
|
|
|
|
QRectF(QPointF(margin, height - margin), QPointF(width - margin, height)), |
|
|
|
|
0.0, |
|
|
|
|
0.0); |
|
|
|
|
// BottomRight
|
|
|
|
|
QPointF bottomright0(width - margin, height - margin); |
|
|
|
|
QPointF bottomright1(width, height); |
|
|
|
|
gradient.setStart(bottomright0); |
|
|
|
|
gradient.setFinalStop(bottomright1); |
|
|
|
|
gradient.setColorAt(endPosition1, end); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect(QRectF(bottomright0, bottomright1), 0.0, 0.0); |
|
|
|
|
|
|
|
|
|
// BottomRight
|
|
|
|
|
QPointF bottomright0(width - margin, height - margin); |
|
|
|
|
QPointF bottomright1(width, height); |
|
|
|
|
gradient.setStart(bottomright0); |
|
|
|
|
gradient.setFinalStop(bottomright1); |
|
|
|
|
gradient.setColorAt(endPosition1, end); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect(QRectF(bottomright0, bottomright1), 0.0, 0.0); |
|
|
|
|
// BottomLeft
|
|
|
|
|
QPointF bottomleft0(margin, height - margin); |
|
|
|
|
QPointF bottomleft1(0, height); |
|
|
|
|
gradient.setStart(bottomleft0); |
|
|
|
|
gradient.setFinalStop(bottomleft1); |
|
|
|
|
gradient.setColorAt(endPosition1, end); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect(QRectF(bottomleft0, bottomleft1), 0.0, 0.0); |
|
|
|
|
|
|
|
|
|
// BottomLeft
|
|
|
|
|
QPointF bottomleft0(margin, height - margin); |
|
|
|
|
QPointF bottomleft1(0, height); |
|
|
|
|
gradient.setStart(bottomleft0); |
|
|
|
|
gradient.setFinalStop(bottomleft1); |
|
|
|
|
gradient.setColorAt(endPosition1, end); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect(QRectF(bottomleft0, bottomleft1), 0.0, 0.0); |
|
|
|
|
// TopLeft
|
|
|
|
|
QPointF topleft0(margin, margin); |
|
|
|
|
QPointF topleft1(0, 0); |
|
|
|
|
gradient.setStart(topleft0); |
|
|
|
|
gradient.setFinalStop(topleft1); |
|
|
|
|
gradient.setColorAt(endPosition1, end); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect(QRectF(topleft0, topleft1), 0.0, 0.0); |
|
|
|
|
|
|
|
|
|
// TopLeft
|
|
|
|
|
QPointF topleft0(margin, margin); |
|
|
|
|
QPointF topleft1(0, 0); |
|
|
|
|
gradient.setStart(topleft0); |
|
|
|
|
gradient.setFinalStop(topleft1); |
|
|
|
|
gradient.setColorAt(endPosition1, end); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect(QRectF(topleft0, topleft1), 0.0, 0.0); |
|
|
|
|
// TopRight
|
|
|
|
|
QPointF topright0(width - margin, margin); |
|
|
|
|
QPointF topright1(width, 0); |
|
|
|
|
gradient.setStart(topright0); |
|
|
|
|
gradient.setFinalStop(topright1); |
|
|
|
|
gradient.setColorAt(endPosition1, end); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect(QRectF(topright0, topright1), 0.0, 0.0); |
|
|
|
|
|
|
|
|
|
// TopRight
|
|
|
|
|
QPointF topright0(width - margin, margin); |
|
|
|
|
QPointF topright1(width, 0); |
|
|
|
|
gradient.setStart(topright0); |
|
|
|
|
gradient.setFinalStop(topright1); |
|
|
|
|
gradient.setColorAt(endPosition1, end); |
|
|
|
|
painter.setBrush(QBrush(gradient)); |
|
|
|
|
painter.drawRoundedRect(QRectF(topright0, topright1), 0.0, 0.0); |
|
|
|
|
|
|
|
|
|
// Widget
|
|
|
|
|
painter.setBrush(QBrush("#FFFFFF")); |
|
|
|
|
painter.setRenderHint(QPainter::Antialiasing); |
|
|
|
|
painter.drawRoundedRect( |
|
|
|
|
QRectF(QPointF(margin, margin), QPointF(width - margin, height - margin)), |
|
|
|
|
radius, |
|
|
|
|
radius); |
|
|
|
|
} |
|
|
|
|
// Widget
|
|
|
|
|
painter.setBrush(QBrush("#FFFFFF")); |
|
|
|
|
painter.setRenderHint(QPainter::Antialiasing); |
|
|
|
|
painter.drawRoundedRect( |
|
|
|
|
QRectF(QPointF(margin, margin), QPointF(width - margin, height - margin)), |
|
|
|
|
radius, |
|
|
|
|
radius); |
|
|
|
|
} |
|
|
|
|