[LYN-4437] Added 30% opaque overlay to the background image of the Project Manager

* 30% opaque overlay image to darken down the colors and increase usability and accessibility.
* Some code cleaning.

Signed-off-by: Benjamin Jillich <jillich@amazon.com>
main
Benjamin Jillich 5 years ago
parent 4a3772d96a
commit 5f9c066626

@ -269,21 +269,30 @@ namespace O3DE::ProjectManager
// we paint the background here because qss does not support background cover scaling // we paint the background here because qss does not support background cover scaling
QPainter painter(this); QPainter painter(this);
auto winSize = size(); const QSize winSize = size();
auto pixmapRatio = (float)m_background.width() / m_background.height(); const float pixmapRatio = (float)m_background.width() / m_background.height();
auto windowRatio = (float)winSize.width() / winSize.height(); const float windowRatio = (float)winSize.width() / winSize.height();
QRect backgroundRect;
if (pixmapRatio > windowRatio) if (pixmapRatio > windowRatio)
{ {
auto newWidth = (int)(winSize.height() * pixmapRatio); const int newWidth = (int)(winSize.height() * pixmapRatio);
auto offset = (newWidth - winSize.width()) / -2; const int offset = (newWidth - winSize.width()) / -2;
painter.drawPixmap(offset, 0, newWidth, winSize.height(), m_background); backgroundRect = QRect(offset, 0, newWidth, winSize.height());
} }
else else
{ {
auto newHeight = (int)(winSize.width() / pixmapRatio); const int newHeight = (int)(winSize.width() / pixmapRatio);
painter.drawPixmap(0, 0, winSize.width(), newHeight, m_background); backgroundRect = QRect(0, 0, winSize.width(), newHeight);
} }
// Draw the background image.
painter.drawPixmap(backgroundRect, m_background);
// Draw a semi-transparent overlay to darken down the colors.
painter.setCompositionMode (QPainter::CompositionMode_DestinationIn);
const float overlayTransparency = 0.7f;
painter.fillRect(backgroundRect, QColor(0, 0, 0, static_cast<int>(255.0f * overlayTransparency)));
} }
void ProjectsScreen::HandleNewProjectButton() void ProjectsScreen::HandleNewProjectButton()

Loading…
Cancel
Save