Remove Tab Overlay on Project Manager Startup + More Fixes (#3666)

* Refocuses from tab to button on projects screen fist time it is opened

Signed-off-by: nggieber <nggieber@amazon.com>

* Adds border highlighting to big buttons when they are focused

Signed-off-by: nggieber <nggieber@amazon.com>

* Fixes issues where project buttons aren't found or deleted on projects screen

Signed-off-by: nggieber <nggieber@amazon.com>

* Adds tooltip to project name showing project path

Signed-off-by: nggieber <nggieber@amazon.com>
monroegm-disable-blank-issue-2
AMZN-nggieber 4 years ago committed by GitHub
parent e15634a867
commit cdcdcb0777
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -213,6 +213,10 @@ QTabBar::tab:focus {
stop: 0 #555555, stop: 1.0 #777777); stop: 0 #555555, stop: 1.0 #777777);
} }
#horizontalSeparatingLine {
color: #666666;
}
/************** Project Settings **************/ /************** Project Settings **************/
#projectSettings { #projectSettings {
margin-top:42px; margin-top:42px;
@ -293,8 +297,6 @@ QTabBar::tab:focus {
border:none; border:none;
} }
#projectSettingsTab::tab-bar { #projectSettingsTab::tab-bar {
left: 60px; left: 60px;
} }
@ -360,6 +362,10 @@ QTabBar::tab:focus {
color: #1e70eb; color: #1e70eb;
} }
#firstTimeContent > QPushButton:focus {
border: 1px solid #1e70eb;
}
#firstTimeContent > QPushButton:pressed { #firstTimeContent > QPushButton:pressed {
border: 1px solid #0e60eb; border: 1px solid #0e60eb;
color: #0e60eb; color: #0e60eb;
@ -400,7 +406,8 @@ QTabBar::tab:focus {
} }
#projectButton > #labelButton:hover, #projectButton > #labelButton:hover,
#projectButton > #labelButton:pressed { #projectButton > #labelButton:pressed,
#projectButton > #labelButton:focus {
border:1px solid #1e70eb; border:1px solid #1e70eb;
} }

@ -192,6 +192,7 @@ namespace O3DE::ProjectManager
projectFooter->setLayout(hLayout); projectFooter->setLayout(hLayout);
{ {
QLabel* projectNameLabel = new QLabel(m_projectInfo.GetProjectDisplayName(), this); QLabel* projectNameLabel = new QLabel(m_projectInfo.GetProjectDisplayName(), this);
projectNameLabel->setToolTip(m_projectInfo.m_path);
hLayout->addWidget(projectNameLabel); hLayout->addWidget(projectNameLabel);
QMenu* menu = new QMenu(this); QMenu* menu = new QMenu(this);

@ -65,6 +65,16 @@ namespace O3DE::ProjectManager
vLayout->addWidget(m_stack); vLayout->addWidget(m_stack);
connect(reinterpret_cast<ScreensCtrl*>(parent), &ScreensCtrl::NotifyBuildProject, this, &ProjectsScreen::SuggestBuildProject); connect(reinterpret_cast<ScreensCtrl*>(parent), &ScreensCtrl::NotifyBuildProject, this, &ProjectsScreen::SuggestBuildProject);
// Will focus whatever button it finds so the Project tab is not focused on start-up
QTimer::singleShot(0, this, [this]
{
QPushButton* foundButton = m_stack->currentWidget()->findChild<QPushButton*>();
if (foundButton)
{
foundButton->setFocus();
}
});
} }
ProjectsScreen::~ProjectsScreen() ProjectsScreen::~ProjectsScreen()
@ -166,7 +176,7 @@ namespace O3DE::ProjectManager
ProjectButton* ProjectsScreen::CreateProjectButton(const ProjectInfo& project) ProjectButton* ProjectsScreen::CreateProjectButton(const ProjectInfo& project)
{ {
ProjectButton* projectButton = new ProjectButton(project, this); ProjectButton* projectButton = new ProjectButton(project, this);
m_projectButtons.insert(project.m_path, projectButton); m_projectButtons.insert(QDir::toNativeSeparators(project.m_path), projectButton);
m_projectsFlowLayout->addWidget(projectButton); m_projectsFlowLayout->addWidget(projectButton);
connect(projectButton, &ProjectButton::OpenProject, this, &ProjectsScreen::HandleOpenProject); connect(projectButton, &ProjectButton::OpenProject, this, &ProjectsScreen::HandleOpenProject);
@ -193,7 +203,7 @@ namespace O3DE::ProjectManager
QSet<QString> keepProject; QSet<QString> keepProject;
for (const ProjectInfo& project : projectsVector) for (const ProjectInfo& project : projectsVector)
{ {
keepProject.insert(project.m_path); keepProject.insert(QDir::toNativeSeparators(project.m_path));
} }
// Clear flow and delete buttons for removed projects // Clear flow and delete buttons for removed projects
@ -204,6 +214,7 @@ namespace O3DE::ProjectManager
if (!keepProject.contains(projectButtonsIter.key())) if (!keepProject.contains(projectButtonsIter.key()))
{ {
projectButtonsIter.value()->deleteLater();
projectButtonsIter = m_projectButtons.erase(projectButtonsIter); projectButtonsIter = m_projectButtons.erase(projectButtonsIter);
} }
else else
@ -215,7 +226,7 @@ namespace O3DE::ProjectManager
QString buildProjectPath = ""; QString buildProjectPath = "";
if (m_currentBuilder) if (m_currentBuilder)
{ {
buildProjectPath = m_currentBuilder->GetProjectInfo().m_path; buildProjectPath = QDir::toNativeSeparators(m_currentBuilder->GetProjectInfo().m_path);
} }
// Put currently building project in front, then queued projects, then sorts alphabetically // Put currently building project in front, then queued projects, then sorts alphabetically
@ -249,13 +260,13 @@ namespace O3DE::ProjectManager
// Add any missing project buttons and restore buttons to default state // Add any missing project buttons and restore buttons to default state
for (const ProjectInfo& project : projectsVector) for (const ProjectInfo& project : projectsVector)
{ {
if (!m_projectButtons.contains(project.m_path)) if (!m_projectButtons.contains(QDir::toNativeSeparators(project.m_path)))
{ {
m_projectButtons.insert(project.m_path, CreateProjectButton(project)); m_projectButtons.insert(QDir::toNativeSeparators(project.m_path), CreateProjectButton(project));
} }
else else
{ {
auto projectButtonIter = m_projectButtons.find(project.m_path); auto projectButtonIter = m_projectButtons.find(QDir::toNativeSeparators(project.m_path));
if (projectButtonIter != m_projectButtons.end()) if (projectButtonIter != m_projectButtons.end())
{ {
projectButtonIter.value()->RestoreDefaultState(); projectButtonIter.value()->RestoreDefaultState();
@ -273,7 +284,7 @@ namespace O3DE::ProjectManager
for (const ProjectInfo& project : m_buildQueue) for (const ProjectInfo& project : m_buildQueue)
{ {
auto projectIter = m_projectButtons.find(project.m_path); auto projectIter = m_projectButtons.find(QDir::toNativeSeparators(project.m_path));
if (projectIter != m_projectButtons.end()) if (projectIter != m_projectButtons.end())
{ {
projectIter.value()->SetProjectButtonAction( projectIter.value()->SetProjectButtonAction(
@ -288,7 +299,7 @@ namespace O3DE::ProjectManager
for (const ProjectInfo& project : m_requiresBuild) for (const ProjectInfo& project : m_requiresBuild)
{ {
auto projectIter = m_projectButtons.find(project.m_path); auto projectIter = m_projectButtons.find(QDir::toNativeSeparators(project.m_path));
if (projectIter != m_projectButtons.end()) if (projectIter != m_projectButtons.end())
{ {
if (project.m_buildFailed) if (project.m_buildFailed)

@ -19,7 +19,7 @@ QT_FORWARD_DECLARE_CLASS(QTabWidget)
namespace O3DE::ProjectManager namespace O3DE::ProjectManager
{ {
class ScreenWidget; QT_FORWARD_DECLARE_CLASS(ScreenWidget);
class ScreensCtrl class ScreensCtrl
: public QWidget : public QWidget

Loading…
Cancel
Save