Merge pull request #1250 from aws-lumberyard-dev/lawalfua/commonToolsApplication

Addition of a base AzQtToolsApplication class
This commit is contained in:
Guthrie Adams
2021-07-19 13:32:09 -05:00
committed by GitHub
14 changed files with 220 additions and 86 deletions
@@ -69,8 +69,10 @@ namespace ShaderManagementConsole
ShaderManagementConsoleApplication::ShaderManagementConsoleApplication(int* argc, char*** argv)
: Application(argc, argv)
, QApplication(*argc, *argv)
, AzQtApplication(*argc, *argv)
{
QApplication::setApplicationName("O3DE Shader Management Console");
// The settings registry has been created at this point, so add the CMake target
AZ::SettingsRegistryMergeUtils::MergeSettingsToRegistry_AddBuildSystemTargetSpecialization(
*AZ::SettingsRegistry::Get(), GetBuildTargetName());
@@ -151,7 +153,6 @@ namespace ShaderManagementConsole
{
AzFramework::AssetSystemStatusBus::Handler::BusConnect();
AzToolsFramework::EditorPythonConsoleNotificationBus::Handler::BusConnect();
AZ::Debug::TraceMessageBus::Handler::BusConnect();
AzFramework::Application::StartCommon(systemEntity);
@@ -163,7 +164,6 @@ namespace ShaderManagementConsole
void ShaderManagementConsoleApplication::OnShaderManagementConsoleWindowClosing()
{
ExitMainLoop();
AZ::Debug::TraceMessageBus::Handler::BusDisconnect();
ShaderManagementConsoleWindowNotificationBus::Handler::BusDisconnect();
AzToolsFramework::EditorPythonConsoleNotificationBus::Handler::BusDisconnect();
}
@@ -344,6 +344,8 @@ namespace ShaderManagementConsole
return;
}
m_traceLogger.WriteStartupLog("ShaderManagementConsole.log");
//[GFX TODO][ATOM-415] Try to factor out some of this stuff with AtomSampleViewerApplication
AzToolsFramework::AssetDatabase::AssetDatabaseRequestsBus::Handler::BusConnect();
AzToolsFramework::AssetBrowser::AssetDatabaseLocationNotificationBus::Broadcast(&AzToolsFramework::AssetBrowser::AssetDatabaseLocationNotifications::OnDatabaseInitialized);
@@ -8,7 +8,6 @@
#pragma once
#include <AzCore/Component/Entity.h>
#include <AzCore/Component/TickBus.h>
#include <AzCore/UserSettings/UserSettingsProvider.h>
@@ -19,18 +18,20 @@
#include <AzToolsFramework/API/AssetDatabaseBus.h>
#include <AzToolsFramework/API/EditorPythonConsoleBus.h>
#include <AzToolsFramework/Logger/TraceLogger.h>
#include <Atom/Document/ShaderManagementConsoleDocumentSystemRequestBus.h>
#include <Atom/Window/ShaderManagementConsoleWindowNotificationBus.h>
#include <QApplication>
#include <AzQtComponents/Application/AzQtApplication.h>
#include <QTimer>
namespace ShaderManagementConsole
{
class ShaderManagementConsoleApplication
: public AzFramework::Application
, public QApplication
, public AzQtComponents::AzQtApplication
, private AzToolsFramework::AssetDatabase::AssetDatabaseRequestsBus::Handler
, private ShaderManagementConsoleWindowNotificationBus::Handler
, private AzFramework::AssetSystemStatusBus::Handler
@@ -114,6 +115,8 @@ namespace ShaderManagementConsole
static void PyIdleWaitFrames(uint32_t frames);
AzToolsFramework::TraceLogger m_traceLogger;
//! Local user settings are used to store asset browser tree expansion state
AZ::UserSettingsProvider m_localUserSettings;
@@ -16,6 +16,7 @@
#include <AzQtComponents/Utilities/QtPluginPaths.h>
#include <AzQtComponents/Utilities/HandleDpiAwareness.h>
#include <AzQtComponents/Components/WindowDecorationWrapper.h>
#include <AzQtComponents/Application/AzQtApplication.h>
#include <QtWidgets/QApplication>
#include <QtGui/private/qhighdpiscaling_p.h>
@@ -24,23 +25,10 @@
int main(int argc, char** argv)
{
QApplication::setOrganizationName("O3DE");
QApplication::setOrganizationDomain("o3de.com");
QApplication::setApplicationName("O3DE Shader Management Console");
AzQtComponents::PrepareQtPaths();
QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
// Must be set before QApplication is initialized, so that we support HighDpi monitors, like the Retina displays
// on Windows 10
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
QCoreApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
AzQtComponents::Utilities::HandleDpiAwareness(AzQtComponents::Utilities::PerScreenDpiAware);
AzQtComponents::AzQtApplication::InitializeDpiScaling();
ShaderManagementConsole::ShaderManagementConsoleApplication app(&argc, &argv);
AZ::IO::FixedMaxPath engineRootPath;
if (auto settingsRegistry = AZ::SettingsRegistry::Get(); settingsRegistry != nullptr)
{