@ -53,8 +53,6 @@ namespace O3DE::ProjectManager
vLayout - > setContentsMargins ( s_contentMargins , 0 , s_contentMargins , 0 ) ;
vLayout - > setContentsMargins ( s_contentMargins , 0 , s_contentMargins , 0 ) ;
setLayout ( vLayout ) ;
setLayout ( vLayout ) ;
m_background . load ( " :/Backgrounds/FirstTimeBackgroundImage.jpg " ) ;
m_stack = new QStackedWidget ( this ) ;
m_stack = new QStackedWidget ( this ) ;
m_firstTimeContent = CreateFirstTimeContent ( ) ;
m_firstTimeContent = CreateFirstTimeContent ( ) ;
@ -232,6 +230,8 @@ namespace O3DE::ProjectManager
m_projectsContent - > deleteLater ( ) ;
m_projectsContent - > deleteLater ( ) ;
}
}
m_background . load ( " :/Backgrounds/DefaultBackground.jpg " ) ;
// Make sure to update builder with latest Project Button
// Make sure to update builder with latest Project Button
if ( m_currentBuilder )
if ( m_currentBuilder )
{
{
@ -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 ( ) ;
au to pixmapRatio = ( float ) m_background . width ( ) / m_background . height ( ) ;
const flo at pixmapRatio = ( float ) m_background . width ( ) / m_background . height ( ) ;
au to windowRatio = ( float ) winSize . width ( ) / winSize . height ( ) ;
const flo at 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 ( )
@ -459,6 +468,7 @@ namespace O3DE::ProjectManager
{
{
if ( ShouldDisplayFirstTimeContent ( ) )
if ( ShouldDisplayFirstTimeContent ( ) )
{
{
m_background . load ( " :/Backgrounds/FtueBackground.jpg " ) ;
m_stack - > setCurrentWidget ( m_firstTimeContent ) ;
m_stack - > setCurrentWidget ( m_firstTimeContent ) ;
}
}
else
else