[LYN-3996] Update core editor menu (#1030)
This commit is contained in:
@@ -49,7 +49,7 @@ QMenu::right-arrow
|
||||
|
||||
QMenu::icon
|
||||
{
|
||||
right: 8px;
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
QMenu::indicator:checked
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.0708 0.87087L11.0708 0.87074C10.4286 0.371024 9.61107 0.13517 8.79265 0.213464C7.97422 0.291757 7.21961 0.678004 6.6897 1.28985L5.76756 2.36366C5.63378 2.51944 5.56909 2.72055 5.58771 2.92273C5.60634 3.12492 5.70675 3.31163 5.86686 3.44178C6.02698 3.57194 6.23368 3.63488 6.44149 3.61676C6.6493 3.59864 6.8412 3.50094 6.97498 3.34516L7.89716 2.27122C8.03184 2.11488 8.19736 1.98639 8.38395 1.89334C8.57053 1.8003 8.7744 1.74459 8.98349 1.7295C9.19258 1.71442 9.40266 1.74027 9.60131 1.80552C9.79996 1.87078 9.98315 1.97411 10.1401 2.10942C10.4422 2.38256 10.6244 2.75851 10.6488 3.15904C10.6732 3.55957 10.5379 3.95383 10.2711 4.25978L8.35381 6.49309L8.33616 6.51209C8.23375 6.62767 8.11374 6.72729 7.98031 6.80749C7.67189 6.99364 7.30661 7.06983 6.94686 7.02305C6.58711 6.97626 6.25522 6.8094 6.00789 6.55097C5.86556 6.40288 5.66865 6.31578 5.46039 6.30879C5.25213 6.30179 5.04952 6.37546 4.89703 6.51365C4.74453 6.65183 4.65462 6.84323 4.64701 7.04584C4.6394 7.24845 4.71472 7.44572 4.85645 7.59436C5.21222 7.96578 5.65746 8.24515 6.15198 8.40726C6.6465 8.56937 7.17473 8.60911 7.68898 8.52289C7.84983 8.49539 8.00828 8.45599 8.16298 8.40505C8.70939 8.22568 9.19408 7.90261 9.56335 7.47165L11.4758 5.24457C11.7478 4.92529 11.9523 4.55683 12.0773 4.16038C12.2024 3.76394 12.2457 3.34735 12.2046 2.93457C12.1671 2.53429 12.0475 2.1454 11.8527 1.79092C11.658 1.43644 11.3921 1.12358 11.0708 0.87087Z" fill="white"/>
|
||||
<path d="M5.40958 9.14055L4.58546 10.1003C4.32342 10.4101 3.94867 10.6097 3.53919 10.6576C3.12972 10.7054 2.71706 10.5977 2.3871 10.357C2.22234 10.2309 2.08525 10.0738 1.98392 9.89526C1.8826 9.71668 1.81911 9.52014 1.79719 9.31727C1.77528 9.1144 1.79539 8.90932 1.85634 8.71414C1.91729 8.51896 2.01784 8.33765 2.15204 8.18093L4.10231 5.90975L4.11666 5.89415C4.21908 5.77861 4.3391 5.67903 4.47254 5.59887C4.75216 5.42921 5.07976 5.34988 5.4085 5.37222C5.73725 5.39457 6.05033 5.51745 6.30299 5.72329C6.3635 5.77246 6.42015 5.82595 6.47246 5.88333C6.54738 5.9658 6.63971 6.03156 6.74316 6.07611C6.84661 6.12066 6.95872 6.14295 7.07184 6.14146C7.18361 6.13992 7.29372 6.11492 7.39465 6.06817C7.49558 6.02143 7.58495 5.95403 7.65666 5.8706L7.66607 5.85958C7.78641 5.72083 7.85132 5.54454 7.8489 5.36301C7.84647 5.18148 7.77687 5.00689 7.65286 4.87124C7.35341 4.54132 6.98422 4.27825 6.57057 4.10003C6.15692 3.92182 5.70858 3.83266 5.25623 3.83866C4.80388 3.84467 4.35821 3.94569 3.94971 4.13482C3.54122 4.32395 3.17954 4.59672 2.88945 4.93446L0.944626 7.19943C0.420065 7.81564 0.163643 8.60683 0.230025 9.40433C0.296406 10.2018 0.68034 10.9426 1.29998 11.4686C1.61272 11.7312 1.97644 11.9301 2.3696 12.0535C2.76277 12.1769 3.17738 12.2223 3.5889 12.187C3.687 12.1793 3.78434 12.1672 3.88093 12.1507C4.62877 12.0232 5.30663 11.6437 5.79562 11.0786L6.617 10.1221C6.75077 9.96628 6.81547 9.76517 6.79684 9.56299C6.77822 9.3608 6.6778 9.17409 6.51769 9.04394C6.35758 8.91378 6.15088 8.85084 5.94306 8.86896C5.73525 8.88708 5.54335 8.98477 5.40957 9.14055H5.40958Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
@@ -13,5 +13,6 @@
|
||||
<qresource prefix="/Notifications">
|
||||
<file alias="checkmark.svg">Notifications/checkmark.svg</file>
|
||||
<file alias="download.svg">Notifications/download.svg</file>
|
||||
<file alias="link.svg">Notifications/link.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace AWSCore
|
||||
class AWSCoreEditorManager
|
||||
{
|
||||
public:
|
||||
static constexpr const char CLOUD_SERVICES_MENU_TEXT[] = "&Cloud services";
|
||||
static constexpr const char AWS_MENU_TEXT[] = "&AWS";
|
||||
|
||||
AWSCoreEditorManager();
|
||||
virtual ~AWSCoreEditorManager();
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace AWSCore
|
||||
{
|
||||
static constexpr const char NewToAWSUrl[] = "https://docs.o3de.org/docs/user-guide/gems/reference/aws/";
|
||||
|
||||
static constexpr const char AWSAndScriptCanvasUrl[] = "https://docs.o3de.org/docs/user-guide/components/reference/aws/";
|
||||
static constexpr const char AWSAndComponentsUrl[] = "https://docs.o3de.org/docs/user-guide/components/reference/aws/";
|
||||
static constexpr const char CallAWSResourcesUrl[] = "https://docs.o3de.org/docs/user-guide/components/reference/aws/";
|
||||
|
||||
static constexpr const char AWSCredentialConfigurationUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-core/configuring-credentials/";
|
||||
|
||||
static constexpr const char AWSClientAuthGemOverviewUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
|
||||
static constexpr const char AWSClientAuthCDKAndResourcesUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
|
||||
static constexpr const char AWSClientAuthScriptCanvasAndLuaUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
|
||||
static constexpr const char AWSClientAuth3rdPartyAuthProviderUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
|
||||
static constexpr const char AWSClientAuthCustomAuthProviderUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
|
||||
static constexpr const char AWSClientAuthPlatformSpecificUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
|
||||
static constexpr const char AWSClientAuthAPIReferenceUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
|
||||
|
||||
static constexpr const char AWSMetricsGemOverviewUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
|
||||
static constexpr const char AWSMetricsSetupGemUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
|
||||
static constexpr const char AWSMetricsScriptingUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
|
||||
static constexpr const char AWSMetricsAPIReferenceUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
|
||||
static constexpr const char AWSMetricsAdvancedTopicsUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
|
||||
static constexpr const char AWSMetricsSettingsUrl[] =
|
||||
"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
|
||||
} // namespace AWSCore
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace AWSCore
|
||||
{
|
||||
static constexpr const char NewToAWSActionText[] = "Getting started with AWS?";
|
||||
|
||||
static constexpr const char AWSAndO3DEGlobalDocsText[] = "AWS & O3DE global docs";
|
||||
static constexpr const char AWSAndScriptCanvasActionText[] = "AWS && ScriptCanvas";
|
||||
static constexpr const char AWSAndComponentsActionText[] = "AWS & Components";
|
||||
static constexpr const char CallAWSResourcesActionText[] = "Call AWS resources";
|
||||
|
||||
static constexpr const char AWSCredentialConfigurationActionText[] = "AWS credential configuration";
|
||||
|
||||
static constexpr const char AWSResourceMappingToolActionText[] = "AWS Resource Mapping Tool...";
|
||||
|
||||
static constexpr const char AWSClientAuthActionText[] = "Client Auth";
|
||||
static constexpr const char AWSClientAuthGemOverviewActionText[] = "Gem Overview";
|
||||
static constexpr const char AWSClientAuthCDKAndResourcesActionText[] = "CDK Application and Resource Mappings";
|
||||
static constexpr const char AWSClientAuthScriptCanvasAndLuaActionText[] = "Script Canvas and Lua";
|
||||
static constexpr const char AWSClientAuth3rdPartyAuthProviderActionText[] = "3rd Party developer Authentication Provider support";
|
||||
static constexpr const char AWSClientAuthCustomAuthProviderActionText[] = "Custom developer Authentication Provider support";
|
||||
static constexpr const char AWSClientAuthPlatformSpecificActionText[] = "Platform specific Callouts";
|
||||
static constexpr const char AWSClientAuthAPIReferenceActionText[] = "API Reference";
|
||||
|
||||
static constexpr const char AWSMetricsActionText[] = "Metrics";
|
||||
static constexpr const char AWSMetricsGemOverviewActionText[] = "Metrics Overview";
|
||||
static constexpr const char AWSMetricsSetupGemActionText[] = "Setup Metrics Gem";
|
||||
static constexpr const char AWSMetricsScriptingActionText[] = "Scripting with AWS Metrics";
|
||||
static constexpr const char AWSMetricsAPIReferenceActionText[] = "C++ API with AWS Metrics Gem";
|
||||
static constexpr const char AWSMetricsAdvancedTopicsActionText[] = "Advanced topics";
|
||||
static constexpr const char AWSMetricsSettingsActionText[] = "Metrics Settings";
|
||||
} // namespace AWSCore
|
||||
@@ -35,29 +35,23 @@ namespace AWSCore
|
||||
static constexpr const char AWSResourceMappingToolIsRunningText[] = "Resource Mapping Tool is running...";
|
||||
static constexpr const char AWSResourceMappingToolLogWarningText[] =
|
||||
"Failed to launch Resource Mapping Tool, please check <a href=\"file:///%s\">logs</a> for details.";
|
||||
static constexpr const char AWSResourceMappingToolActionText[] = "AWS Resource Mapping Tool...";
|
||||
static constexpr const char CredentialConfigurationActionText[] = "Credential Configuration";
|
||||
static constexpr const char CredentialConfigurationUrl[] = "https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/credentials.html";
|
||||
static constexpr const char NewToAWSActionText[] = "New to AWS?";
|
||||
static constexpr const char NewToAWSUrl[] = "https://o3deorg.netlify.app/docs/user-guide/gems/reference/aws";
|
||||
static constexpr const char AWSAndScriptCanvasActionText[] = "AWS && ScriptCanvas";
|
||||
static constexpr const char AWSAndScriptCanvasUrl[] = "https://o3deorg.netlify.app/docs/user-guide/gems/reference/aws";
|
||||
static constexpr const char AWSClientAuthActionText[] = "Client Auth";
|
||||
static constexpr const char AWSMetricsActionText[] = "Metrics";
|
||||
|
||||
AWSCoreEditorMenu(const QString& text);
|
||||
~AWSCoreEditorMenu();
|
||||
|
||||
private:
|
||||
QAction* AddExternalLinkAction(const AZStd::string& name, const AZStd::string& url, const AZStd::string& icon = "");
|
||||
|
||||
void InitializeResourceMappingToolAction();
|
||||
void InitializeAWSDocActions();
|
||||
void InitializeAWSGlobalDocsSubMenu();
|
||||
void InitializeAWSFeatureGemActions();
|
||||
|
||||
// AWSCoreEditorRequestBus interface implementation
|
||||
void SetAWSClientAuthEnabled() override;
|
||||
void SetAWSMetricsEnabled() override;
|
||||
|
||||
void SetAWSFeatureActionsEnabled(const AZStd::string actionText);
|
||||
QMenu* SetAWSFeatureSubMenu(const AZStd::string& menuText);
|
||||
|
||||
// To improve experience, use process watcher to keep track of ongoing tool process
|
||||
AZStd::unique_ptr<AzFramework::ProcessWatcher> m_resourceMappingToolWatcher;
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
namespace AWSCore
|
||||
{
|
||||
AWSCoreEditorManager::AWSCoreEditorManager()
|
||||
: m_awsCoreEditorMenu(new AWSCoreEditorMenu(CLOUD_SERVICES_MENU_TEXT))
|
||||
: m_awsCoreEditorMenu(new AWSCoreEditorMenu(AWS_MENU_TEXT))
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -13,10 +13,13 @@
|
||||
#include <AzCore/Debug/Trace.h>
|
||||
#include <AzCore/IO/FileIO.h>
|
||||
#include <AzCore/Jobs/JobFunction.h>
|
||||
#include <AzCore/Settings/SettingsRegistry.h>
|
||||
#include <AzFramework/Process/ProcessWatcher.h>
|
||||
#include <AzFramework/StringFunc/StringFunc.h>
|
||||
|
||||
#include <AWSCoreEditor_Traits_Platform.h>
|
||||
#include <Editor/Constants/AWSCoreEditorMenuLinks.h>
|
||||
#include <Editor/Constants/AWSCoreEditorMenuNames.h>
|
||||
#include <Editor/UI/AWSCoreEditorMenu.h>
|
||||
#include <Editor/UI/AWSCoreResourceMappingToolAction.h>
|
||||
|
||||
@@ -36,8 +39,8 @@ namespace AWSCore
|
||||
: QMenu(text)
|
||||
, m_resourceMappingToolWatcher(nullptr)
|
||||
{
|
||||
InitializeResourceMappingToolAction();
|
||||
InitializeAWSDocActions();
|
||||
InitializeResourceMappingToolAction();
|
||||
this->addSeparator();
|
||||
InitializeAWSFeatureGemActions();
|
||||
|
||||
@@ -58,6 +61,21 @@ namespace AWSCore
|
||||
this->clear();
|
||||
}
|
||||
|
||||
QAction* AWSCoreEditorMenu::AddExternalLinkAction(
|
||||
const AZStd::string& name, const AZStd::string& url, const AZStd::string& icon)
|
||||
{
|
||||
QAction* linkAction = new QAction(QObject::tr(name.c_str()));
|
||||
QObject::connect(linkAction, &QAction::triggered, this,
|
||||
[url]() {
|
||||
QDesktopServices::openUrl(QUrl(url.c_str()));
|
||||
});
|
||||
if (!icon.empty())
|
||||
{
|
||||
linkAction->setIcon(QIcon(icon.c_str()));
|
||||
}
|
||||
return linkAction;
|
||||
}
|
||||
|
||||
void AWSCoreEditorMenu::InitializeResourceMappingToolAction()
|
||||
{
|
||||
#ifdef AWSCORE_EDITOR_RESOURCE_MAPPING_TOOL_ENABLED
|
||||
@@ -103,21 +121,21 @@ namespace AWSCore
|
||||
|
||||
void AWSCoreEditorMenu::InitializeAWSDocActions()
|
||||
{
|
||||
QAction* credentialConfiguration = new QAction(QObject::tr(CredentialConfigurationActionText));
|
||||
QObject::connect(credentialConfiguration, &QAction::triggered, this, []() {
|
||||
QDesktopServices::openUrl(QUrl(CredentialConfigurationUrl));
|
||||
});
|
||||
this->addAction(credentialConfiguration);
|
||||
this->addAction(AddExternalLinkAction(NewToAWSActionText, NewToAWSUrl, ":/Notifications/link.svg"));
|
||||
|
||||
QAction* newToAWS = new QAction(QObject::tr(NewToAWSActionText));
|
||||
QObject::connect(newToAWS, &QAction::triggered, this, []() {
|
||||
QDesktopServices::openUrl(QUrl(NewToAWSUrl)); });
|
||||
this->addAction(newToAWS);
|
||||
InitializeAWSGlobalDocsSubMenu();
|
||||
|
||||
QAction* awsAndScriptCanvas = new QAction(QObject::tr(AWSAndScriptCanvasActionText));
|
||||
QObject::connect(awsAndScriptCanvas, &QAction::triggered, this, []() {
|
||||
QDesktopServices::openUrl(QUrl(AWSAndScriptCanvasUrl)); });
|
||||
this->addAction(awsAndScriptCanvas);
|
||||
this->addAction(AddExternalLinkAction(
|
||||
AWSCredentialConfigurationActionText, AWSCredentialConfigurationUrl, ":/Notifications/link.svg"));
|
||||
}
|
||||
|
||||
void AWSCoreEditorMenu::InitializeAWSGlobalDocsSubMenu()
|
||||
{
|
||||
QMenu* globalDocsMenu = this->addMenu(QObject::tr(AWSAndO3DEGlobalDocsText));
|
||||
|
||||
globalDocsMenu->addAction(AddExternalLinkAction(AWSAndScriptCanvasActionText, AWSAndScriptCanvasUrl, ":/Notifications/link.svg"));
|
||||
globalDocsMenu->addAction(AddExternalLinkAction(AWSAndComponentsActionText, AWSAndComponentsUrl, ":/Notifications/link.svg"));
|
||||
globalDocsMenu->addAction(AddExternalLinkAction(CallAWSResourcesActionText, CallAWSResourcesUrl, ":/Notifications/link.svg"));
|
||||
}
|
||||
|
||||
void AWSCoreEditorMenu::InitializeAWSFeatureGemActions()
|
||||
@@ -135,25 +153,67 @@ namespace AWSCore
|
||||
|
||||
void AWSCoreEditorMenu::SetAWSClientAuthEnabled()
|
||||
{
|
||||
SetAWSFeatureActionsEnabled(AWSClientAuthActionText);
|
||||
// TODO: instead of creating submenu in core editor, aws feature gem should return submenu component directly
|
||||
QMenu* subMenu = SetAWSFeatureSubMenu(AWSClientAuthActionText);
|
||||
|
||||
subMenu->addAction(AddExternalLinkAction(
|
||||
AWSClientAuthGemOverviewActionText, AWSClientAuthGemOverviewUrl, ":/Notifications/link.svg"));
|
||||
subMenu->addAction(AddExternalLinkAction(
|
||||
AWSClientAuthCDKAndResourcesActionText, AWSClientAuthCDKAndResourcesUrl, ":/Notifications/link.svg"));
|
||||
subMenu->addAction(AddExternalLinkAction(
|
||||
AWSClientAuthScriptCanvasAndLuaActionText, AWSClientAuthScriptCanvasAndLuaUrl, ":/Notifications/link.svg"));
|
||||
subMenu->addAction(AddExternalLinkAction(
|
||||
AWSClientAuth3rdPartyAuthProviderActionText, AWSClientAuth3rdPartyAuthProviderUrl, ":/Notifications/link.svg"));
|
||||
subMenu->addAction(AddExternalLinkAction(
|
||||
AWSClientAuthCustomAuthProviderActionText, AWSClientAuthCustomAuthProviderUrl, ":/Notifications/link.svg"));
|
||||
subMenu->addAction(AddExternalLinkAction(
|
||||
AWSClientAuthPlatformSpecificActionText, AWSClientAuthPlatformSpecificUrl, ":/Notifications/link.svg"));
|
||||
subMenu->addAction(AddExternalLinkAction(
|
||||
AWSClientAuthAPIReferenceActionText, AWSClientAuthAPIReferenceUrl, ":/Notifications/link.svg"));
|
||||
}
|
||||
|
||||
void AWSCoreEditorMenu::SetAWSMetricsEnabled()
|
||||
{
|
||||
SetAWSFeatureActionsEnabled(AWSMetricsActionText);
|
||||
// TODO: instead of creating submenu in core editor, aws feature gem should return submenu component directly
|
||||
QMenu* subMenu = SetAWSFeatureSubMenu(AWSMetricsActionText);
|
||||
|
||||
subMenu->addAction(AddExternalLinkAction(
|
||||
AWSMetricsGemOverviewActionText, AWSMetricsGemOverviewUrl, ":/Notifications/link.svg"));
|
||||
subMenu->addAction(AddExternalLinkAction(
|
||||
AWSMetricsSetupGemActionText, AWSMetricsSetupGemUrl, ":/Notifications/link.svg"));
|
||||
subMenu->addAction(AddExternalLinkAction(
|
||||
AWSMetricsScriptingActionText, AWSMetricsScriptingUrl, ":/Notifications/link.svg"));
|
||||
subMenu->addAction(AddExternalLinkAction(
|
||||
AWSMetricsAPIReferenceActionText, AWSMetricsAPIReferenceUrl, ":/Notifications/link.svg"));
|
||||
subMenu->addAction(AddExternalLinkAction(
|
||||
AWSMetricsAdvancedTopicsActionText, AWSMetricsAdvancedTopicsUrl, ":/Notifications/link.svg"));
|
||||
|
||||
AZStd::string priorAlias = AZ::IO::FileIOBase::GetInstance()->GetAlias("@devroot@");
|
||||
AZStd::string configFilePath = priorAlias + "\\Gems\\AWSMetrics\\Code\\" + AZ::SettingsRegistryInterface::RegistryFolder;
|
||||
AzFramework::StringFunc::Path::Normalize(configFilePath);
|
||||
|
||||
QAction* settingsAction = new QAction(QObject::tr(AWSMetricsSettingsActionText));
|
||||
QObject::connect(settingsAction, &QAction::triggered, this,
|
||||
[configFilePath](){
|
||||
QDesktopServices::openUrl(QUrl::fromLocalFile(configFilePath.c_str()));
|
||||
});
|
||||
subMenu->addAction(settingsAction);
|
||||
}
|
||||
|
||||
void AWSCoreEditorMenu::SetAWSFeatureActionsEnabled(const AZStd::string actionText)
|
||||
QMenu* AWSCoreEditorMenu::SetAWSFeatureSubMenu(const AZStd::string& menuText)
|
||||
{
|
||||
auto actionList = this->actions();
|
||||
for (QList<QAction*>::iterator itr = actionList.begin(); itr != actionList.end(); itr++)
|
||||
{
|
||||
if (QString::compare((*itr)->text(), actionText.c_str()) == 0)
|
||||
if (QString::compare((*itr)->text(), menuText.c_str()) == 0)
|
||||
{
|
||||
(*itr)->setIcon(QIcon(QString(":/Notifications/checkmark.svg")));
|
||||
(*itr)->setEnabled(true);
|
||||
break;
|
||||
QMenu* subMenu = new QMenu(QObject::tr(menuText.c_str()));
|
||||
subMenu->setIcon(QIcon(QString(":/Notifications/checkmark.svg")));
|
||||
this->insertMenu(*itr, subMenu);
|
||||
this->removeAction(*itr);
|
||||
return subMenu;
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
} // namespace AWSCore
|
||||
|
||||
@@ -85,7 +85,7 @@ TEST_F(AWSCoreEditorSystemComponentTest, NotifyMainWindowInitialized_HaveDummyMe
|
||||
testMenuBar->addMenu("dummy menu");
|
||||
AzToolsFramework::EditorEvents::Bus::Broadcast(&AzToolsFramework::EditorEvents::NotifyMainWindowInitialized, &testMainWindow);
|
||||
EXPECT_TRUE(testMenuBar->actions().size() == 2);
|
||||
EXPECT_TRUE(QString::compare(testMenuBar->actions()[1]->text(), AWSCoreEditorManager::CLOUD_SERVICES_MENU_TEXT) == 0);
|
||||
EXPECT_TRUE(QString::compare(testMenuBar->actions()[1]->text(), AWSCoreEditorManager::AWS_MENU_TEXT) == 0);
|
||||
}
|
||||
|
||||
TEST_F(AWSCoreEditorSystemComponentTest, NotifyMainWindowInitialized_HaveHelpMenuInMenuBar_ExpectedMenuGetsAddedAtFront)
|
||||
@@ -95,5 +95,5 @@ TEST_F(AWSCoreEditorSystemComponentTest, NotifyMainWindowInitialized_HaveHelpMen
|
||||
testMenuBar->addMenu(AWSCoreEditorSystemComponent::EDITOR_HELP_MENU_TEXT);
|
||||
AzToolsFramework::EditorEvents::Bus::Broadcast(&AzToolsFramework::EditorEvents::NotifyMainWindowInitialized, &testMainWindow);
|
||||
EXPECT_TRUE(testMenuBar->actions().size() == 2);
|
||||
EXPECT_TRUE(QString::compare(testMenuBar->actions()[0]->text(), AWSCoreEditorManager::CLOUD_SERVICES_MENU_TEXT) == 0);
|
||||
EXPECT_TRUE(QString::compare(testMenuBar->actions()[0]->text(), AWSCoreEditorManager::AWS_MENU_TEXT) == 0);
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
#include <AWSCoreBus.h>
|
||||
#include <AWSCoreEditor_Traits_Platform.h>
|
||||
#include <Editor/Constants/AWSCoreEditorMenuNames.h>
|
||||
#include <Editor/UI/AWSCoreEditorMenu.h>
|
||||
#include <Editor/UI/AWSCoreEditorUIFixture.h>
|
||||
#include <TestFramework/AWSCoreFixture.h>
|
||||
@@ -35,6 +36,7 @@ class AWSCoreEditorMenuTest
|
||||
{
|
||||
AWSCoreEditorUIFixture::SetUp();
|
||||
AWSCoreFixture::SetUp();
|
||||
m_localFileIO->SetAlias("@devroot@", "dummy engine root");
|
||||
}
|
||||
|
||||
void TearDown() override
|
||||
@@ -77,12 +79,12 @@ TEST_F(AWSCoreEditorMenuTest, AWSCoreEditorMenu_BroadcastFeatureGemsAreEnabled_C
|
||||
QList<QAction*> actualActions = testMenu.actions();
|
||||
for (QList<QAction*>::iterator itr = actualActions.begin(); itr != actualActions.end(); itr++)
|
||||
{
|
||||
if (QString::compare((*itr)->text(), AWSCoreEditorMenu::AWSClientAuthActionText) == 0)
|
||||
if (QString::compare((*itr)->text(), AWSClientAuthActionText) == 0)
|
||||
{
|
||||
EXPECT_TRUE((*itr)->isEnabled());
|
||||
}
|
||||
|
||||
if (QString::compare((*itr)->text(), AWSCoreEditorMenu::AWSMetricsActionText) == 0)
|
||||
if (QString::compare((*itr)->text(), AWSMetricsActionText) == 0)
|
||||
{
|
||||
EXPECT_TRUE((*itr)->isEnabled());
|
||||
}
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
set(FILES
|
||||
Include/Private/AWSCoreEditorSystemComponent.h
|
||||
Include/Private/Editor/AWSCoreEditorManager.h
|
||||
Include/Private/Editor/Constants/AWSCoreEditorMenuLinks.h
|
||||
Include/Private/Editor/Constants/AWSCoreEditorMenuNames.h
|
||||
Include/Private/Editor/UI/AWSCoreEditorMenu.h
|
||||
Include/Private/Editor/UI/AWSCoreResourceMappingToolAction.h
|
||||
Source/AWSCoreEditorSystemComponent.cpp
|
||||
|
||||
Reference in New Issue
Block a user