AppFwk : Add border to icons with one color

This commit is contained in:
Magne Sjaastad 2020-06-18 09:01:44 +02:00
parent bcb38a7207
commit e3960f13f1

View File

@ -171,35 +171,31 @@ std::unique_ptr<QIcon> IconProvider::icon(const QSize& size) const
{ {
validIcon = true; validIcon = true;
{ // Draw color gradient based on background colors
// Draw color gradient based on background colors
QLinearGradient gradient (QPointF(0.0f, 0.0f), QPoint(size.width(), 0.0f)); QLinearGradient gradient (QPointF(0.0f, 0.0f), QPoint(size.width(), 0.0f));
for (size_t i = 0; i < m_backgroundColorStrings.size(); ++i) for (size_t i = 0; i < m_backgroundColorStrings.size(); ++i)
{
if (!QColor::isValidColor(m_backgroundColorStrings[i]))
{ {
if (!QColor::isValidColor(m_backgroundColorStrings[i])) validIcon = false;
{ break;
validIcon = false;
break;
}
QColor color (m_backgroundColorStrings[i]);
float frac = i / ((float) m_backgroundColorStrings.size() - 1.0);
gradient.setColorAt(frac, color);
} }
QBrush gradientBrush(gradient); QColor color (m_backgroundColorStrings[i]);
QPainter painter (&pixmap); float frac = i / ((float) m_backgroundColorStrings.size() - 1.0);
painter.fillRect(0, 0, size.width(), size.height(), gradientBrush); gradient.setColorAt(frac, color);
}
{
// Draw border
QPainter painter2(&pixmap);
painter2.setRenderHint(QPainter::Antialiasing);
painter2.setPen(QPen(Qt::black, 1));
painter2.drawRect(QRectF(0, 0, size.width(), size.height()));
} }
QBrush gradientBrush(gradient);
QPainter painter (&pixmap);
painter.fillRect(0, 0, size.width(), size.height(), gradientBrush);
} }
// Draw border
QPainter painter2(&pixmap);
painter2.setRenderHint(QPainter::Antialiasing);
painter2.setPen(QPen(Qt::black, 1));
painter2.drawRect(QRectF(0, 0, size.width(), size.height()));
} }
else pixmap.fill(Qt::transparent); else pixmap.fill(Qt::transparent);