rendered paste bodyvoid MythImage::MakeGradient(QImage &image, const QColor &begin,
const QColor &end, int alpha, bool drawBoundary,
FillDirection direction)
{
// Gradient fill colours
QColor startColor = begin;
QColor endColor = end;
startColor.setAlpha(alpha);
endColor.setAlpha(alpha);
// Define Gradient
QPoint pointA(0,0);
QPoint pointB;
if (direction == FillTopToBottom)
{
pointB = QPoint(0,image.height());
}
else if (direction == FillLeftToRight)
{
pointB = QPoint(image.width(),0);
}
QLinearGradient gradient(pointA, pointB);
gradient.setColorAt(0, startColor);
gradient.setColorAt(1, endColor);
// Draw Gradient
QPainter painter(&image);
painter.setCompositionMode(QPainter::CompositionMode_Source);
painter.fillRect(0, 0, image.width(), image.height(), gradient);
if (drawBoundary)
{
// Draw boundry rect
QColor black(0, 0, 0, alpha);
painter.setPen(black);
QPen pen = painter.pen();
pen.setWidth(1);
painter.drawRect(image.rect());
}
painter.end();
}