git mv Code\Sandbox\Editor Code/Editor
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,508 @@
|
||||
/*
|
||||
* Copyright (c) Contributors to the Open 3D Engine Project
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#pragma once
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Crytek Engine Source File.
|
||||
// Copyright (C), Crytek Studios, 2002.
|
||||
// -------------------------------------------------------------------------
|
||||
// File name: settings.h
|
||||
// Version: v1.00
|
||||
// Created: 14/1/2003 by Timur.
|
||||
// Compilers: Visual Studio.NET
|
||||
// Description: General editor settings.
|
||||
// -------------------------------------------------------------------------
|
||||
// History:
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
#ifndef CRYINCLUDE_EDITOR_SETTINGS_H
|
||||
#define CRYINCLUDE_EDITOR_SETTINGS_H
|
||||
#include "SettingsManager.h"
|
||||
|
||||
#include <QColor>
|
||||
#include <QFont>
|
||||
#include <QRect>
|
||||
#include <QSettings>
|
||||
|
||||
#include <AzToolsFramework/Editor/EditorSettingsAPIBus.h>
|
||||
#include <AzCore/JSON/document.h>
|
||||
|
||||
#include <AzQtComponents/Components/Widgets/ToolBar.h>
|
||||
|
||||
struct SGizmoSettings
|
||||
{
|
||||
float axisGizmoSize;
|
||||
bool axisGizmoText;
|
||||
int axisGizmoMaxCount;
|
||||
|
||||
float helpersScale;
|
||||
float tagpointScaleMulti;
|
||||
|
||||
// Scale size and transparency for debug spheres when using Ruler tool
|
||||
float rulerSphereScale;
|
||||
float rulerSphereTrans;
|
||||
|
||||
SGizmoSettings();
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Settings for snapping in the viewports.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct SSnapSettings
|
||||
{
|
||||
SSnapSettings()
|
||||
{
|
||||
constructPlaneDisplay = false;
|
||||
constructPlaneSize = 5;
|
||||
|
||||
markerDisplay = false;
|
||||
markerColor = QColor(0, 200, 200);
|
||||
markerSize = 1.0f;
|
||||
|
||||
bGridUserDefined = false;
|
||||
bGridGetFromSelected = false;
|
||||
}
|
||||
|
||||
// Display settings for construction plane.
|
||||
bool constructPlaneDisplay;
|
||||
float constructPlaneSize;
|
||||
|
||||
// Display settings for snapping marker.
|
||||
bool markerDisplay;
|
||||
QColor markerColor;
|
||||
float markerSize;
|
||||
|
||||
bool bGridUserDefined;
|
||||
bool bGridGetFromSelected;
|
||||
};
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Settings for View of Tools
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct SToolViewSettings
|
||||
{
|
||||
SToolViewSettings()
|
||||
{
|
||||
}
|
||||
|
||||
int nFrameRate;
|
||||
QString codec;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Settings for deep selection.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct SDeepSelectionSettings
|
||||
{
|
||||
SDeepSelectionSettings()
|
||||
: fRange(1.f)
|
||||
, bStickDuplicate(false) {}
|
||||
|
||||
//! If there are other objects hit within this value, one of them needs
|
||||
//! to be selected by user.
|
||||
//! If this value is 0.f, then deep selection mode won't work.
|
||||
float fRange;
|
||||
bool bStickDuplicate;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct SObjectColors
|
||||
{
|
||||
SObjectColors()
|
||||
{
|
||||
groupHighlight = QColor(0, 255, 0);
|
||||
entityHighlight = QColor(112, 117, 102);
|
||||
fBBoxAlpha = 0.3f;
|
||||
geometryHighlightColor = QColor(192, 0, 192);
|
||||
solidBrushGeometryColor = QColor(192, 0, 192);
|
||||
fGeomAlpha = 0.2f;
|
||||
fChildGeomAlpha = 0.4f;
|
||||
}
|
||||
|
||||
QColor groupHighlight;
|
||||
QColor entityHighlight;
|
||||
QColor geometryHighlightColor;
|
||||
QColor solidBrushGeometryColor;
|
||||
|
||||
float fBBoxAlpha;
|
||||
float fGeomAlpha;
|
||||
float fChildGeomAlpha;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct SViewportsSettings
|
||||
{
|
||||
//! If enabled always show entity radiuse.
|
||||
bool bAlwaysShowRadiuses;
|
||||
//! True if 2D viewports will be synchronized with same view and origin.
|
||||
bool bSync2DViews;
|
||||
//! Camera FOV for perspective View.
|
||||
float fDefaultFov;
|
||||
//! Camera Aspect Ratio for perspective View.
|
||||
float fDefaultAspectRatio;
|
||||
//! Show safe frame.
|
||||
bool bShowSafeFrame;
|
||||
//! To highlight selected geometry.
|
||||
bool bHighlightSelectedGeometry;
|
||||
//! To highlight selected vegetation.
|
||||
bool bHighlightSelectedVegetation;
|
||||
|
||||
//! To highlight selected geometry.
|
||||
int bHighlightMouseOverGeometry;
|
||||
|
||||
//! Show triangle count on mouse over
|
||||
bool bShowMeshStatsOnMouseOver;
|
||||
|
||||
//! If enabled will always display entity labels.
|
||||
bool bDrawEntityLabels;
|
||||
//! Show Trigger bounds.
|
||||
bool bShowTriggerBounds;
|
||||
//! Show Icons in viewport.
|
||||
bool bShowIcons;
|
||||
//! Scale icons with distance, so they aren't a fixed size no matter how far away you are
|
||||
bool bDistanceScaleIcons;
|
||||
|
||||
//! Show Size-based Icons in viewport.
|
||||
bool bShowSizeBasedIcons;
|
||||
|
||||
//! Show Helpers in viewport for frozen objects.
|
||||
int nShowFrozenHelpers;
|
||||
//! Fill Selected Shapes.
|
||||
bool bFillSelectedShapes;
|
||||
|
||||
// Swap X/Y in map viewport.
|
||||
bool bTopMapSwapXY;
|
||||
// Texture resolution in the Top map viewport.
|
||||
int nTopMapTextureResolution;
|
||||
|
||||
// Whether the grid guide (for move/rotate tool) will be shown or not.
|
||||
bool bShowGridGuide;
|
||||
|
||||
// Whether the mouse cursor will be hidden when capturing the mouse.
|
||||
bool bHideMouseCursorWhenCaptured;
|
||||
|
||||
// Size of square which the mouse must leave before a drag operation begins.
|
||||
int nDragSquareSize;
|
||||
|
||||
// Enable context menu in the viewport
|
||||
bool bEnableContextMenu;
|
||||
|
||||
//! Warning icons draw distance
|
||||
float fWarningIconsDrawDistance;
|
||||
//! Warnings for scale != 1
|
||||
bool bShowScaleWarnings;
|
||||
//! Warnings for rotation != 0
|
||||
bool bShowRotationWarnings;
|
||||
};
|
||||
|
||||
struct SSelectObjectDialogSettings
|
||||
{
|
||||
QString columns;
|
||||
int nLastColumnSortDirection;
|
||||
|
||||
SSelectObjectDialogSettings()
|
||||
: nLastColumnSortDirection(0)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct SGUI_Settings
|
||||
{
|
||||
bool bWindowsVista; // true when running on windows Vista
|
||||
QFont hSystemFont; // Default system GUI font.
|
||||
QFont hSystemFontBold; // Default system GUI bold font.
|
||||
QFont hSystemFontItalic; // Default system GUI italic font.
|
||||
int nDefaultFontHieght; // Default font height for 8 logical units.
|
||||
|
||||
int nToolbarIconSize; // Override size of the toolbar icons
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct STextureBrowserSettings
|
||||
{
|
||||
int nCellSize; // Stores the default texture maximum cell size for
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct SExperimentalFeaturesSettings
|
||||
{
|
||||
bool bTotalIlluminationEnabled;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct SSliceSettings
|
||||
{
|
||||
bool dynamicByDefault;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct SAssetBrowserSettings
|
||||
{
|
||||
// stores the default thumb size
|
||||
int nThumbSize;
|
||||
// the current filename search filter in the search edit box
|
||||
QString sFilenameSearch,
|
||||
// the current filter preset name
|
||||
sPresetName;
|
||||
// current selected/checked/visible databases, db names separated by comma (,), Ex: "Textures,Models,Sounds"
|
||||
QString sVisibleDatabaseNames;
|
||||
// current visible columns in asset list
|
||||
QString sVisibleColumnNames;
|
||||
// current columns in asset list, in their actual order (including visible and hidden columns)
|
||||
QString sColumnNames;
|
||||
// check to show only the assets used in current level
|
||||
bool bShowUsedInLevel,
|
||||
// check to show only the assets loaded in the current level
|
||||
bShowLoadedInLevel,
|
||||
// check to filter only the favorite assets
|
||||
bShowFavorites,
|
||||
// hide LODs from thumbs view, for CGFs for example
|
||||
bHideLods,
|
||||
// true when the edited filter preset was changed, it will be saved automatically, without the user to push the "Save" button
|
||||
bAutoSaveFilterPreset,
|
||||
// true when we want sync between asset browser selection and viewport selection
|
||||
bAutoChangeViewportSelection,
|
||||
// true when we want sync between viewport selection and asset browser visible thumbs
|
||||
bAutoFilterFromViewportSelection;
|
||||
};
|
||||
|
||||
struct SSmartOpenDialogSettings
|
||||
{
|
||||
QRect rect;
|
||||
QString lastSearchTerm;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/** Various editor settings.
|
||||
*/
|
||||
AZ_PUSH_DISABLE_DLL_EXPORT_BASECLASS_WARNING
|
||||
struct SANDBOX_API SEditorSettings
|
||||
: AzToolsFramework::EditorSettingsAPIBus::Handler
|
||||
{
|
||||
AZ_POP_DISABLE_DLL_EXPORT_BASECLASS_WARNING
|
||||
SEditorSettings();
|
||||
~SEditorSettings() = default;
|
||||
void Save();
|
||||
void Load();
|
||||
void LoadCloudSettings();
|
||||
|
||||
void Connect();
|
||||
void Disconnect();
|
||||
|
||||
// EditorSettingsAPIBus...
|
||||
AZStd::vector<AZStd::string> BuildSettingsList() override;
|
||||
SettingOutcome GetValue(const AZStd::string_view path) override;
|
||||
SettingOutcome SetValue(const AZStd::string_view path, const AZStd::any& value) override;
|
||||
AzToolsFramework::ConsoleColorTheme GetConsoleColorTheme() const override;
|
||||
|
||||
void ConvertPath(const AZStd::string_view sourcePath, AZStd::string& category, AZStd::string& attribute);
|
||||
|
||||
// needs to be called after crysystem has been loaded
|
||||
void LoadDefaultGamePaths();
|
||||
|
||||
// need to expose updating of the source control enable/disable flag
|
||||
// because its state is updateable through the main status bar
|
||||
void SaveEnableSourceControlFlag(bool triggerUpdate = false);
|
||||
|
||||
void LoadEnableSourceControlFlag();
|
||||
|
||||
void PostInitApply();
|
||||
|
||||
bool BrowseTerrainTexture(bool bIsSave);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Variables.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
int undoLevels;
|
||||
bool m_undoSliceOverrideSaveValue;
|
||||
bool bShowDashboardAtStartup;
|
||||
bool m_showCircularDependencyError;
|
||||
bool bAutoloadLastLevelAtStartup;
|
||||
bool bMuteAudio;
|
||||
bool bEnableGameModeVR;
|
||||
|
||||
//! Speed of camera movement.
|
||||
float cameraMoveSpeed;
|
||||
float cameraRotateSpeed;
|
||||
float cameraFastMoveSpeed;
|
||||
float wheelZoomSpeed;
|
||||
bool invertYRotation;
|
||||
bool invertPan;
|
||||
bool stylusMode; // if stylus mode is enabled, no setCursorPos will be performed (WACOM tablets, etc)
|
||||
bool restoreViewportCamera; // When true, restore the original editor viewport camera when exiting game mode
|
||||
|
||||
//! Hide mask for objects.
|
||||
int objectHideMask;
|
||||
|
||||
//! Selection mask for objects.
|
||||
int objectSelectMask;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Viewport settings.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
SViewportsSettings viewports;
|
||||
|
||||
AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING
|
||||
SToolViewSettings toolViewSettings;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Files.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//! Before saving, make a backup into a subfolder
|
||||
bool bBackupOnSave;
|
||||
//! how many save backups to keep
|
||||
int backupOnSaveMaxCount;
|
||||
|
||||
int useLowercasePaths;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Autobackup.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//! Save auto backup file every autoSaveTime minutes.
|
||||
int autoBackupTime;
|
||||
//! Keep only several last autobackups.
|
||||
int autoBackupMaxCount;
|
||||
//! When this variable set to true automatic file backup is enabled.
|
||||
bool autoBackupEnabled;
|
||||
//! After this amount of minutes message box with reminder to save will pop on.
|
||||
int autoRemindTime;
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//! If true preview windows is displayed when browsing geometries.
|
||||
bool bPreviewGeometryWindow;
|
||||
|
||||
int showErrorDialogOnLoad;
|
||||
|
||||
//! Keeps the editor active even if no focus is set
|
||||
int keepEditorActive;
|
||||
|
||||
SGizmoSettings gizmo;
|
||||
|
||||
// Settings of the snapping.
|
||||
SSnapSettings snap;
|
||||
|
||||
//! Source Control Enabling.
|
||||
bool enableSourceControl;
|
||||
|
||||
//! Text editor.
|
||||
QString textEditorForScript;
|
||||
QString textEditorForShaders;
|
||||
QString textEditorForBspaces;
|
||||
|
||||
//! Asset editors
|
||||
QString textureEditor;
|
||||
QString animEditor;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//! Editor data search paths.
|
||||
QStringList searchPaths[10]; // EDITOR_PATH_LAST
|
||||
|
||||
// This directory is related to the editor root.
|
||||
QString strStandardTempDirectory;
|
||||
|
||||
SGUI_Settings gui;
|
||||
|
||||
bool bApplyConfigSpecInEditor;
|
||||
|
||||
ESystemConfigSpec editorConfigSpec;
|
||||
|
||||
//! Terrain Texture Export/Import filename.
|
||||
QString terrainTextureExport;
|
||||
|
||||
// Read only parameter.
|
||||
// Refects the status of GetIEditor()->GetOperationMode
|
||||
// To change current operation mode use GetIEditor()->SetOperationMode
|
||||
// see EOperationMode
|
||||
int operationMode;
|
||||
|
||||
// For the texture browser configurations.
|
||||
STextureBrowserSettings sTextureBrowserSettings;
|
||||
|
||||
// Experimental features configurations.
|
||||
SExperimentalFeaturesSettings sExperimentalFeaturesSettings;
|
||||
|
||||
// For the asset browser configurations.
|
||||
SAssetBrowserSettings sAssetBrowserSettings;
|
||||
|
||||
SSelectObjectDialogSettings selectObjectDialog;
|
||||
|
||||
// For Terrain Texture Generation Multiplier.
|
||||
float fBrMultiplier;
|
||||
|
||||
AzToolsFramework::ConsoleColorTheme consoleBackgroundColorTheme;
|
||||
|
||||
bool bShowTimeInConsole;
|
||||
|
||||
// Enable the option do get detailed information about the loaded scene data in the Scene Settings window.
|
||||
bool enableSceneInspector;
|
||||
|
||||
// Deep Selection Mode Settings
|
||||
SDeepSelectionSettings deepSelectionSettings;
|
||||
|
||||
// Object Highlight Settings
|
||||
SObjectColors objectColorSettings;
|
||||
AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING
|
||||
|
||||
SSmartOpenDialogSettings smartOpenSettings;
|
||||
|
||||
bool bSettingsManagerMode;
|
||||
|
||||
bool bAutoSaveTagPoints;
|
||||
|
||||
bool bNavigationContinuousUpdate;
|
||||
bool bNavigationShowAreas;
|
||||
bool bNavigationDebugDisplay;
|
||||
bool bVisualizeNavigationAccessibility;
|
||||
int navigationDebugAgentType;
|
||||
|
||||
int backgroundUpdatePeriod;
|
||||
const char* g_TemporaryLevelName;
|
||||
|
||||
SSliceSettings sliceSettings;
|
||||
|
||||
bool prefabSystem = true; ///< Toggle to enable/disable the Prefab system for level entities.
|
||||
|
||||
private:
|
||||
void SaveValue(const char* sSection, const char* sKey, int value);
|
||||
void SaveValue(const char* sSection, const char* sKey, const QColor& value);
|
||||
void SaveValue(const char* sSection, const char* sKey, float value);
|
||||
void SaveValue(const char* sSection, const char* sKey, const QString& value);
|
||||
|
||||
void LoadValue(const char* sSection, const char* sKey, int& value);
|
||||
void LoadValue(const char* sSection, const char* sKey, QColor& value);
|
||||
void LoadValue(const char* sSection, const char* sKey, float& value);
|
||||
void LoadValue(const char* sSection, const char* sKey, bool& value);
|
||||
void LoadValue(const char* sSection, const char* sKey, QString& value);
|
||||
void LoadValue(const char* sSection, const char* sKey, ESystemConfigSpec& value);
|
||||
|
||||
void SaveCloudSettings();
|
||||
|
||||
void SaveSettingsRegistryFile();
|
||||
|
||||
//! Set a boolean setting value from the registry.
|
||||
//! \param key[in] The key to set.
|
||||
//! \param value[in] The new value for the setting.
|
||||
//! \return Whether the value for the key was correctly set in the registry.
|
||||
bool SetSettingsRegistry_Bool(const char* key, bool value);
|
||||
|
||||
//! Gets a boolean setting value from the registry.
|
||||
//! \param key[in] The key to query.
|
||||
//! \param value[out] The variable the queried value will be saved to, by reference.
|
||||
//! \return Whether a value for the key was found in the registry.
|
||||
bool GetSettingsRegistry_Bool(const char* key, bool& value);
|
||||
};
|
||||
|
||||
//! Single instance of editor settings for fast access.
|
||||
SANDBOX_API extern SEditorSettings gSettings;
|
||||
|
||||
#endif // CRYINCLUDE_EDITOR_SETTINGS_H
|
||||
Reference in New Issue
Block a user