// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved. /*============================================================================= GameplayDebuggerSettings.h: Declares the UGameplayDebuggerSettings class. =============================================================================*/ #pragma once #include "LogVisualizerSettings.generated.h" USTRUCT() struct FFiltersPreset { GENERATED_USTRUCT_BODY() UPROPERTY(config) FString FilterName; UPROPERTY(config) FString ObjectNameFilter; UPROPERTY(config) FString DataFilter; UPROPERTY(config) TArray CategoryFilters; UPROPERTY(config) TArray SelectedClasses; }; UCLASS(config = EditorUserSettings) class LOGVISUALIZER_API ULogVisualizerSettings : public UObject { GENERATED_UCLASS_BODY() public: DECLARE_EVENT_OneParam(ULogVisualizerSettings, FSettingChangedEvent, FName /*PropertyName*/); FSettingChangedEvent& OnSettingChanged() { return SettingChangedEvent; } /**Whether to show trivial logs, i.e. the ones with only one entry.*/ UPROPERTY(EditAnywhere, config, Category = "VisualLogger") bool bIgnoreTrivialLogs; /**Threshold for trivial Logs*/ UPROPERTY(EditAnywhere, config, Category = "VisualLogger", meta = (EditCondition = "bIgnoreTrivialLogs", ClampMin = "0", ClampMax = "10", UIMin = "0", UIMax = "10")) int32 TrivialLogsThreshold; /**Whether to show the recent data or not. Property disabled for now.*/ UPROPERTY(EditAnywhere, config, Category = "VisualLogger") bool bStickToRecentData; /**Whether to reset current data or not for each new session.*/ UPROPERTY(EditAnywhere, config, Category = "VisualLogger") bool bResetDataWithNewSession; /**Whether to show histogram labels inside graph or outside. Property disabled for now.*/ UPROPERTY(VisibleAnywhere, config, Category = "VisualLogger") bool bShowHistogramLabelsOutside; /** Camera distance used to setup location during reaction on log item double click */ UPROPERTY(EditAnywhere, config, Category = "VisualLogger", meta = (ClampMin = "10", ClampMax = "1000", UIMin = "10", UIMax = "1000")) float DefaultCameraDistance; /**Whether to search/filter categories or to get text vlogs into account too */ UPROPERTY(EditAnywhere, config, Category = "VisualLogger") bool bSearchInsideLogs; /** Background color for 2d graphs visualization */ UPROPERTY(EditAnywhere, config, Category = "VisualLogger") FColor GraphsBackgroundColor; UPROPERTY(config) TArray FilterPresets; /**Whether to store all filter settings on exit*/ UPROPERTY(EditAnywhere, config, Category = "VisualLogger") bool bPresistentFilters; /** Whether to extreme values on graph (data has to be provided for extreme values) */ UPROPERTY(EditAnywhere, config, Category = "VisualLogger") bool bDrawExtremesOnGraphs; UPROPERTY(config) FFiltersPreset PresistentPresets; FFiltersPreset CurrentPresets; // UObject overrides #if WITH_EDITOR virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override; #endif private: // Holds an event delegate that is executed when a setting has changed. FSettingChangedEvent SettingChangedEvent; };