Merge pull request #3278 from aws-lumberyard-dev/Atom/guthadam/atomtools_wrapping_status_message_functions

AtomTools: added status message helper functions
This commit is contained in:
Guthrie Adams
2021-08-19 16:24:17 -05:00
committed by GitHub
4 changed files with 48 additions and 61 deletions
@@ -52,8 +52,11 @@ namespace AtomToolsFramework
virtual void SelectPreviousTab();
virtual void SelectNextTab();
void SetStatusMessage(const QString& message);
void SetStatusWarning(const QString& message);
void SetStatusError(const QString& message);
AzQtComponents::FancyDocking* m_advancedDockManager = nullptr;
QMenuBar* m_menuBar = nullptr;
AzQtComponents::TabWidget* m_tabWidget = nullptr;
QLabel* m_statusMessage = nullptr;
@@ -110,9 +110,9 @@ namespace AtomToolsFramework
void AtomToolsMainWindow::CreateMenu()
{
m_menuBar = new QMenuBar(this);
m_menuBar->setObjectName("MenuBar");
setMenuBar(m_menuBar);
auto menuBar = new QMenuBar(this);
menuBar->setObjectName("MenuBar");
setMenuBar(menuBar);
}
void AtomToolsMainWindow::CreateTabBar()
@@ -246,4 +246,19 @@ namespace AtomToolsFramework
m_tabWidget->setCurrentIndex((m_tabWidget->currentIndex() + 1) % m_tabWidget->count());
}
}
void AtomToolsMainWindow::SetStatusMessage(const QString& message)
{
m_statusMessage->setText(QString("<font color=\"White\">%1</font>").arg(message));
}
void AtomToolsMainWindow::SetStatusWarning(const QString& message)
{
m_statusMessage->setText(QString("<font color=\"Yellow\">%1</font>").arg(message));
}
void AtomToolsMainWindow::SetStatusError(const QString& message)
{
m_statusMessage->setText(QString("<font color=\"Red\">%1</font>").arg(message));
}
} // namespace AtomToolsFramework
@@ -237,18 +237,14 @@ namespace MaterialEditor
const QString documentPath = GetDocumentPath(documentId);
if (!documentPath.isEmpty())
{
const QString status = QString("Document opened: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"White\">%1</font>").arg(status));
SetStatusMessage(tr("Document opened: %1").arg(documentPath));
}
}
void MaterialEditorWindow::OnDocumentClosed(const AZ::Uuid& documentId)
{
RemoveTabForDocumentId(documentId);
const QString documentPath = GetDocumentPath(documentId);
const QString status = QString("Document closed: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"White\">%1</font>").arg(status));
SetStatusMessage(tr("Document closed: %1").arg(GetDocumentPath(documentId)));
}
void MaterialEditorWindow::OnDocumentModified(const AZ::Uuid& documentId)
@@ -284,10 +280,7 @@ namespace MaterialEditor
AZStd::string filename;
AzFramework::StringFunc::Path::GetFullFileName(absolutePath.c_str(), filename);
UpdateTabForDocumentId(documentId, filename, absolutePath, isModified);
const QString documentPath = GetDocumentPath(documentId);
const QString status = QString("Document saved: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"White\">%1</font>").arg(status));
SetStatusMessage(tr("Document saved: %1").arg(GetDocumentPath(documentId)));
}
void MaterialEditorWindow::CreateMenu()
@@ -295,7 +288,7 @@ namespace MaterialEditor
Base::CreateMenu();
// Generating the main menu manually because it's easier and we will have some dynamic or data driven entries
m_menuFile = m_menuBar->addMenu("&File");
m_menuFile = menuBar()->addMenu("&File");
m_actionNew = m_menuFile->addAction("&New...", [this]() {
CreateMaterialDialog createDialog(this);
@@ -330,9 +323,7 @@ namespace MaterialEditor
AtomToolsFramework::AtomToolsDocumentSystemRequestBus::BroadcastResult(result, &AtomToolsFramework::AtomToolsDocumentSystemRequestBus::Events::SaveDocument, documentId);
if (!result)
{
const QString documentPath = GetDocumentPath(documentId);
const QString status = QString("Document save failed: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"Red\">%1</font>").arg(status));
SetStatusError(tr("Document save failed: %1").arg(GetDocumentPath(documentId)));
}
}, QKeySequence::Save);
@@ -345,8 +336,7 @@ namespace MaterialEditor
documentId, AtomToolsFramework::GetSaveFileInfo(documentPath).absoluteFilePath().toUtf8().constData());
if (!result)
{
const QString status = QString("Document save failed: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"Red\">%1</font>").arg(status));
SetStatusError(tr("Document save failed: %1").arg(GetDocumentPath(documentId)));
}
}, QKeySequence::SaveAs);
@@ -359,8 +349,7 @@ namespace MaterialEditor
documentId, AtomToolsFramework::GetSaveFileInfo(documentPath).absoluteFilePath().toUtf8().constData());
if (!result)
{
const QString status = QString("Document save failed: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"Red\">%1</font>").arg(status));
SetStatusError(tr("Document save failed: %1").arg(GetDocumentPath(documentId)));
}
});
@@ -369,8 +358,7 @@ namespace MaterialEditor
AtomToolsFramework::AtomToolsDocumentSystemRequestBus::BroadcastResult(result, &AtomToolsFramework::AtomToolsDocumentSystemRequestBus::Events::SaveAllDocuments);
if (!result)
{
const QString status = QString("Document save all failed.");
m_statusMessage->setText(QString("<font color=\"Red\">%1</font>").arg(status));
SetStatusError(tr("Document save all failed"));
}
});
@@ -406,7 +394,7 @@ namespace MaterialEditor
close();
}, QKeySequence::Quit);
m_menuEdit = m_menuBar->addMenu("&Edit");
m_menuEdit = menuBar()->addMenu("&Edit");
m_actionUndo = m_menuEdit->addAction("&Undo", [this]() {
const AZ::Uuid documentId = GetDocumentIdFromTab(m_tabWidget->currentIndex());
@@ -414,9 +402,7 @@ namespace MaterialEditor
AtomToolsFramework::AtomToolsDocumentRequestBus::EventResult(result, documentId, &AtomToolsFramework::AtomToolsDocumentRequestBus::Events::Undo);
if (!result)
{
const QString documentPath = GetDocumentPath(documentId);
const QString status = QString("Document undo failed: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"Red\">%1</font>").arg(status));
SetStatusError(tr("Document undo failed: %1").arg(GetDocumentPath(documentId)));
}
}, QKeySequence::Undo);
@@ -426,9 +412,7 @@ namespace MaterialEditor
AtomToolsFramework::AtomToolsDocumentRequestBus::EventResult(result, documentId, &AtomToolsFramework::AtomToolsDocumentRequestBus::Events::Redo);
if (!result)
{
const QString documentPath = GetDocumentPath(documentId);
const QString status = QString("Document redo failed: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"Red\">%1</font>").arg(status));
SetStatusError(tr("Document redo failed: %1").arg(GetDocumentPath(documentId)));
}
}, QKeySequence::Redo);
@@ -440,7 +424,7 @@ namespace MaterialEditor
}, QKeySequence::Preferences);
m_actionSettings->setEnabled(true);
m_menuView = m_menuBar->addMenu("&View");
m_menuView = menuBar()->addMenu("&View");
m_actionAssetBrowser = m_menuView->addAction("&Asset Browser", [this]() {
const AZStd::string label = "Asset Browser";
@@ -480,7 +464,7 @@ namespace MaterialEditor
SelectNextTab();
}, Qt::CTRL | Qt::Key_Tab); //QKeySequence::NextChild works as expected but mirroring Previous
m_menuHelp = m_menuBar->addMenu("&Help");
m_menuHelp = menuBar()->addMenu("&Help");
m_actionHelp = m_menuHelp->addAction("&Help...", [this]() {
HelpDialog dialog(this);
@@ -149,18 +149,14 @@ namespace ShaderManagementConsole
const QString documentPath = GetDocumentPath(documentId);
if (!documentPath.isEmpty())
{
const QString status = QString("Document opened: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"White\">%1</font>").arg(status));
SetStatusMessage(tr("Document opened: %1").arg(documentPath));
}
}
void ShaderManagementConsoleWindow::OnDocumentClosed(const AZ::Uuid& documentId)
{
RemoveTabForDocumentId(documentId);
const QString documentPath = GetDocumentPath(documentId);
const QString status = QString("Document closed: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"White\">%1</font>").arg(status));
SetStatusMessage(tr("Document closed: %1").arg(GetDocumentPath(documentId)));
}
void ShaderManagementConsoleWindow::OnDocumentModified(const AZ::Uuid& documentId)
@@ -196,10 +192,7 @@ namespace ShaderManagementConsole
AZStd::string filename;
AzFramework::StringFunc::Path::GetFullFileName(absolutePath.c_str(), filename);
UpdateTabForDocumentId(documentId, filename, absolutePath, isModified);
const QString documentPath = GetDocumentPath(documentId);
const QString status = QString("Document saved: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"White\">%1</font>").arg(status));
SetStatusMessage(tr("Document saved: %1").arg(GetDocumentPath(documentId)));
}
void ShaderManagementConsoleWindow::CreateMenu()
@@ -207,7 +200,7 @@ namespace ShaderManagementConsole
Base::CreateMenu();
// Generating the main menu manually because it's easier and we will have some dynamic or data driven entries
m_menuFile = m_menuBar->addMenu("&File");
m_menuFile = menuBar()->addMenu("&File");
m_actionOpen = m_menuFile->addAction("&Open...", [this]() {
const AZStd::vector<AZ::Data::AssetType> assetTypes = {
@@ -230,9 +223,7 @@ namespace ShaderManagementConsole
AtomToolsFramework::AtomToolsDocumentSystemRequestBus::BroadcastResult(result, &AtomToolsFramework::AtomToolsDocumentSystemRequestBus::Events::SaveDocument, documentId);
if (!result)
{
const QString documentPath = GetDocumentPath(documentId);
const QString status = QString("Document save failed: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"Red\">%1</font>").arg(status));
SetStatusError(tr("Document save failed: %1").arg(GetDocumentPath(documentId)));
}
}, QKeySequence::Save);
@@ -245,8 +236,7 @@ namespace ShaderManagementConsole
documentId, AtomToolsFramework::GetSaveFileInfo(documentPath).absoluteFilePath().toUtf8().constData());
if (!result)
{
const QString status = QString("Document save failed: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"Red\">%1</font>").arg(status));
SetStatusError(tr("Document save failed: %1").arg(GetDocumentPath(documentId)));
}
}, QKeySequence::SaveAs);
@@ -255,8 +245,7 @@ namespace ShaderManagementConsole
AtomToolsFramework::AtomToolsDocumentSystemRequestBus::BroadcastResult(result, &AtomToolsFramework::AtomToolsDocumentSystemRequestBus::Events::SaveAllDocuments);
if (!result)
{
const QString status = QString("Document save all failed.");
m_statusMessage->setText(QString("<font color=\"Red\">%1</font>").arg(status));
SetStatusError(tr("Document save all failed"));
}
});
@@ -278,7 +267,7 @@ namespace ShaderManagementConsole
m_menuFile->addSeparator();
m_menuFile->addAction("Run Python...", [this]() {
m_menuFile->addAction("Run &Python...", [this]() {
const QString script = QFileDialog::getOpenFileName(this, "Run Script", QString(), QString("*.py"));
if (!script.isEmpty())
{
@@ -292,7 +281,7 @@ namespace ShaderManagementConsole
close();
}, QKeySequence::Quit);
m_menuEdit = m_menuBar->addMenu("&Edit");
m_menuEdit = menuBar()->addMenu("&Edit");
m_actionUndo = m_menuEdit->addAction("&Undo", [this]() {
const AZ::Uuid documentId = GetDocumentIdFromTab(m_tabWidget->currentIndex());
@@ -300,9 +289,7 @@ namespace ShaderManagementConsole
AtomToolsFramework::AtomToolsDocumentRequestBus::EventResult(result, documentId, &AtomToolsFramework::AtomToolsDocumentRequestBus::Events::Undo);
if (!result)
{
const QString documentPath = GetDocumentPath(documentId);
const QString status = QString("Document undo failed: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"Red\">%1</font>").arg(status));
SetStatusError(tr("Document undo failed: %1").arg(GetDocumentPath(documentId)));
}
}, QKeySequence::Undo);
@@ -312,9 +299,7 @@ namespace ShaderManagementConsole
AtomToolsFramework::AtomToolsDocumentRequestBus::EventResult(result, documentId, &AtomToolsFramework::AtomToolsDocumentRequestBus::Events::Redo);
if (!result)
{
const QString documentPath = GetDocumentPath(documentId);
const QString status = QString("Document redo failed: %1").arg(documentPath);
m_statusMessage->setText(QString("<font color=\"Red\">%1</font>").arg(status));
SetStatusError(tr("Document redo failed: %1").arg(GetDocumentPath(documentId)));
}
}, QKeySequence::Redo);
@@ -324,7 +309,7 @@ namespace ShaderManagementConsole
}, QKeySequence::Preferences);
m_actionSettings->setEnabled(false);
m_menuView = m_menuBar->addMenu("&View");
m_menuView = menuBar()->addMenu("&View");
m_actionAssetBrowser = m_menuView->addAction("&Asset Browser", [this]() {
const AZStd::string label = "Asset Browser";
@@ -347,7 +332,7 @@ namespace ShaderManagementConsole
SelectNextTab();
}, Qt::CTRL | Qt::Key_Tab); //QKeySequence::NextChild works as expected but mirroring Previous
m_menuHelp = m_menuBar->addMenu("&Help");
m_menuHelp = menuBar()->addMenu("&Help");
m_actionHelp = m_menuHelp->addAction("&Help...", [this]() {
});