@ -12,6 +12,7 @@
# include <AzToolsFramework/ViewportSelection/EditorSelectionUtil.h>
# include <AzToolsFramework/ViewportUi/ViewportUiCluster.h>
# include <AzToolsFramework/ViewportUi/ViewportUiDisplay.h>
# include <AzToolsFramework/ViewportUi/ViewportUiDisplayLayout.h>
# include <AzToolsFramework/ViewportUi/ViewportUiSwitcher.h>
# include <AzToolsFramework/ViewportUi/ViewportUiTextField.h>
# include <QWidget>
@ -19,7 +20,6 @@
namespace AzToolsFramework : : ViewportUi : : Internal
{
const static int HighlightBorderSize = 5 ;
const static int TopHighlightBorderSize = 25 ;
const static char * HighlightBorderColor = " #4A90E2 " ;
static void UnparentWidgets ( ViewportUiElementIdInfoLookup & viewportUiElementIdInfoLookup )
@ -61,7 +61,7 @@ namespace AzToolsFramework::ViewportUi::Internal
, m_uiOverlay ( parent )
, m_fullScreenLayout ( & m_uiOverlay )
, m_uiOverlayLayout ( )
, m_ componentMode BorderText( & m_uiOverlay )
, m_ viewport BorderText( & m_uiOverlay )
{
}
@ -221,11 +221,11 @@ namespace AzToolsFramework::ViewportUi::Internal
AZStd : : shared_ptr < QWidget > ViewportUiDisplay : : GetViewportUiElement ( ViewportUiElementId elementId )
{
auto element = m_viewportUiElements . find ( elementId ) ;
if ( element ! = m_viewportUiElements . end ( ) )
if ( auto element = m_viewportUiElements . find ( elementId ) ; element ! = m_viewportUiElements . end ( ) )
{
return element - > second . m_widget ;
}
return nullptr ;
}
@ -287,27 +287,30 @@ namespace AzToolsFramework::ViewportUi::Internal
{
return element . IsValid ( ) & & element . m_widget - > isVisible ( ) ;
}
return false ;
}
void ViewportUiDisplay : : CreateViewportBorder ( const AZStd : : string & borderTitle )
{
const AZStd : : string styleSheet = AZStd : : string : : format (
" border: %dpx solid %s; border-top: %dpx solid %s; " , HighlightBorderSize , HighlightBorderColor , TopHighlight BorderSize,
" border: %dpx solid %s; border-top: %dpx solid %s; " , HighlightBorderSize , HighlightBorderColor , ViewportUi TopBorderSize,
HighlightBorderColor ) ;
m_uiOverlay . setStyleSheet ( styleSheet . c_str ( ) ) ;
m_uiOverlayLayout . setContentsMargins (
HighlightBorderSize + ViewportUiOverlayMargin , TopHighlight BorderSize + ViewportUiOverlayMargin ,
HighlightBorderSize + ViewportUiOverlayMargin , ViewportUi TopBorderSize + ViewportUiOverlayMargin ,
HighlightBorderSize + ViewportUiOverlayMargin , HighlightBorderSize + ViewportUiOverlayMargin ) ;
m_ componentMode BorderText. setVisible ( true ) ;
m_ componentMode BorderText. setText ( borderTitle . c_str ( ) ) ;
m_ viewport BorderText. setVisible ( true ) ;
m_ viewport BorderText. setText ( borderTitle . c_str ( ) ) ;
}
void ViewportUiDisplay : : RemoveViewportBorder ( )
{
m_ componentMode BorderText. setVisible ( false ) ;
m_ viewport BorderText. setVisible ( false ) ;
m_uiOverlay . setStyleSheet ( " border: none; " ) ;
m_uiOverlayLayout . setMargin ( ViewportUiOverlayMargin ) ;
m_uiOverlayLayout . setContentsMargins (
ViewportUiOverlayMargin , ViewportUiOverlayMargin + ViewportUiOverlayTopMarginPadding , ViewportUiOverlayMargin ,
ViewportUiOverlayMargin ) ;
}
void ViewportUiDisplay : : PositionViewportUiElementFromWorldSpace ( ViewportUiElementId elementId , const AZ : : Vector3 & pos )
@ -359,10 +362,10 @@ namespace AzToolsFramework::ViewportUi::Internal
// format the label which will appear on top of the highlight border
AZStd : : string styleSheet = AZStd : : string : : format ( " background-color: %s; border: none; " , HighlightBorderColor ) ;
m_ componentMode BorderText. setStyleSheet ( styleSheet . c_str ( ) ) ;
m_ componentMode BorderText. setFixedHeight ( TopHighlight BorderSize) ;
m_ componentMode BorderText. setVisible ( false ) ;
m_fullScreenLayout . addWidget ( & m_ componentMode BorderText, 0 , 0 , Qt : : AlignTop | Qt : : AlignHCenter ) ;
m_ viewport BorderText. setStyleSheet ( styleSheet . c_str ( ) ) ;
m_ viewport BorderText. setFixedHeight ( ViewportUi TopBorderSize) ;
m_ viewport BorderText. setVisible ( false ) ;
m_fullScreenLayout . addWidget ( & m_ viewport BorderText, 0 , 0 , Qt : : AlignTop | Qt : : AlignHCenter ) ;
}
void ViewportUiDisplay : : PrepareWidgetForViewportUi ( QPointer < QWidget > widget )
@ -395,14 +398,14 @@ namespace AzToolsFramework::ViewportUi::Internal
void ViewportUiDisplay : : UpdateUiOverlayGeometry ( )
{
// add the component mode border region if visible
// add the viewport border region if visible
QRegion region ;
if ( m_ componentMode BorderText. isVisible ( ) )
if ( m_ viewport BorderText. isVisible ( ) )
{
// get the border region by taking the entire region and subtracting the non-border area
region + = m_uiOverlay . rect ( ) ;
region - = QRect (
QPoint ( m_uiOverlay . rect ( ) . left ( ) + HighlightBorderSize , m_uiOverlay . rect ( ) . top ( ) + TopHighlight BorderSize) ,
QPoint ( m_uiOverlay . rect ( ) . left ( ) + HighlightBorderSize , m_uiOverlay . rect ( ) . top ( ) + ViewportUi TopBorderSize) ,
QPoint ( m_uiOverlay . rect ( ) . right ( ) - HighlightBorderSize , m_uiOverlay . rect ( ) . bottom ( ) - HighlightBorderSize ) ) ;
}