2014-12-07 19:09:38 -05:00
|
|
|
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
2014-11-28 09:26:40 -05:00
|
|
|
|
|
|
|
|
/*=============================================================================
|
|
|
|
|
GameplayDebuggerSettings.h: Declares the UGameplayDebuggerSettings class.
|
|
|
|
|
=============================================================================*/
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "LogVisualizerSettings.generated.h"
|
|
|
|
|
|
2014-12-18 08:37:06 -05:00
|
|
|
USTRUCT()
|
2015-02-27 07:26:07 -05:00
|
|
|
struct FCategoryFilter
|
2014-12-18 08:37:06 -05:00
|
|
|
{
|
2015-03-17 05:38:32 -04:00
|
|
|
GENERATED_USTRUCT_BODY()
|
2014-12-18 08:37:06 -05:00
|
|
|
|
|
|
|
|
UPROPERTY(config)
|
2015-02-27 07:26:07 -05:00
|
|
|
FString CategoryName;
|
2014-12-18 08:37:06 -05:00
|
|
|
|
2015-02-27 07:26:07 -05:00
|
|
|
UPROPERTY(config)
|
|
|
|
|
int32 LogVerbosity;
|
|
|
|
|
|
|
|
|
|
UPROPERTY(config)
|
|
|
|
|
bool Enabled;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
USTRUCT()
|
|
|
|
|
struct FVisualLoggerFilters
|
|
|
|
|
{
|
2015-03-17 05:38:32 -04:00
|
|
|
GENERATED_USTRUCT_BODY()
|
2015-02-27 07:26:07 -05:00
|
|
|
|
|
|
|
|
UPROPERTY(config)
|
|
|
|
|
FString SearchBoxFilter;
|
|
|
|
|
|
2014-12-18 08:37:06 -05:00
|
|
|
UPROPERTY(config)
|
|
|
|
|
FString ObjectNameFilter;
|
2015-02-27 07:26:07 -05:00
|
|
|
|
2014-12-18 08:37:06 -05:00
|
|
|
UPROPERTY(config)
|
2015-02-27 07:26:07 -05:00
|
|
|
TArray<FCategoryFilter> Categories;
|
|
|
|
|
|
2014-12-18 08:37:06 -05:00
|
|
|
UPROPERTY(config)
|
|
|
|
|
TArray<FString> SelectedClasses;
|
|
|
|
|
};
|
|
|
|
|
|
2015-02-27 07:26:07 -05:00
|
|
|
struct FCategoryFiltersManager;
|
|
|
|
|
|
2015-04-20 10:12:55 -04:00
|
|
|
UCLASS(config = EditorPerProjectUserSettings)
|
2014-12-11 07:19:14 -05:00
|
|
|
class LOGVISUALIZER_API ULogVisualizerSettings : public UObject
|
2014-11-28 09:26:40 -05:00
|
|
|
{
|
2015-03-17 05:38:32 -04:00
|
|
|
GENERATED_UCLASS_BODY()
|
2015-02-27 07:26:07 -05:00
|
|
|
friend struct FCategoryFiltersManager;
|
|
|
|
|
|
2014-11-28 09:26:40 -05:00
|
|
|
public:
|
2014-12-11 09:03:56 -05:00
|
|
|
DECLARE_EVENT_OneParam(ULogVisualizerSettings, FSettingChangedEvent, FName /*PropertyName*/);
|
|
|
|
|
FSettingChangedEvent& OnSettingChanged() { return SettingChangedEvent; }
|
|
|
|
|
|
2014-11-28 09:26:40 -05:00
|
|
|
/**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;
|
|
|
|
|
|
2014-12-11 09:03:56 -05:00
|
|
|
/**Whether to show the recent data or not. Property disabled for now.*/
|
2014-12-19 10:46:17 -05:00
|
|
|
UPROPERTY(EditAnywhere, config, Category = "VisualLogger")
|
2014-11-28 09:26:40 -05:00
|
|
|
bool bStickToRecentData;
|
|
|
|
|
|
2015-01-07 08:06:36 -05:00
|
|
|
/**Whether to reset current data or not for each new session.*/
|
|
|
|
|
UPROPERTY(EditAnywhere, config, Category = "VisualLogger")
|
|
|
|
|
bool bResetDataWithNewSession;
|
|
|
|
|
|
2014-12-11 09:03:56 -05:00
|
|
|
/**Whether to show histogram labels inside graph or outside. Property disabled for now.*/
|
|
|
|
|
UPROPERTY(VisibleAnywhere, config, Category = "VisualLogger")
|
2014-11-28 09:26:40 -05:00
|
|
|
bool bShowHistogramLabelsOutside;
|
|
|
|
|
|
2014-12-02 08:07:26 -05:00
|
|
|
/** 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;
|
|
|
|
|
|
2014-12-04 10:00:51 -05:00
|
|
|
/**Whether to search/filter categories or to get text vlogs into account too */
|
|
|
|
|
UPROPERTY(EditAnywhere, config, Category = "VisualLogger")
|
|
|
|
|
bool bSearchInsideLogs;
|
|
|
|
|
|
2014-12-10 09:28:26 -05:00
|
|
|
/** Background color for 2d graphs visualization */
|
|
|
|
|
UPROPERTY(EditAnywhere, config, Category = "VisualLogger")
|
|
|
|
|
FColor GraphsBackgroundColor;
|
|
|
|
|
|
2014-12-18 08:37:06 -05:00
|
|
|
/**Whether to store all filter settings on exit*/
|
|
|
|
|
UPROPERTY(EditAnywhere, config, Category = "VisualLogger")
|
|
|
|
|
bool bPresistentFilters;
|
|
|
|
|
|
2015-01-13 04:27:36 -05:00
|
|
|
/** Whether to extreme values on graph (data has to be provided for extreme values) */
|
|
|
|
|
UPROPERTY(EditAnywhere, config, Category = "VisualLogger")
|
|
|
|
|
bool bDrawExtremesOnGraphs;
|
|
|
|
|
|
2015-02-24 09:19:13 -05:00
|
|
|
/** Whether to use PlayersOnly during Pause or not */
|
|
|
|
|
UPROPERTY(EditAnywhere, config, Category = "VisualLogger")
|
|
|
|
|
bool bUsePlayersOnlyForPause;
|
|
|
|
|
|
2014-11-28 09:26:40 -05:00
|
|
|
// UObject overrides
|
2014-12-10 06:02:42 -05:00
|
|
|
#if WITH_EDITOR
|
2014-11-28 09:26:40 -05:00
|
|
|
virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
|
2014-12-10 06:02:42 -05:00
|
|
|
#endif
|
2014-11-28 09:26:40 -05:00
|
|
|
|
2015-02-27 07:26:07 -05:00
|
|
|
protected:
|
|
|
|
|
FVisualLoggerFilters CurrentFilters;
|
|
|
|
|
|
|
|
|
|
UPROPERTY(config)
|
|
|
|
|
FVisualLoggerFilters PresistentFilters;
|
|
|
|
|
|
2014-11-28 09:26:40 -05:00
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
// Holds an event delegate that is executed when a setting has changed.
|
|
|
|
|
FSettingChangedEvent SettingChangedEvent;
|
|
|
|
|
|
|
|
|
|
};
|
2015-02-27 07:26:07 -05:00
|
|
|
|
|
|
|
|
struct FCategoryFiltersManager
|
|
|
|
|
{
|
|
|
|
|
static FCategoryFiltersManager& Get() { return StaticManager; }
|
|
|
|
|
|
|
|
|
|
bool MatchCategoryFilters(FString String, ELogVerbosity::Type Verbosity = ELogVerbosity::All);
|
|
|
|
|
bool MatchObjectName(FString String);
|
|
|
|
|
bool MatchSearchString(FString String);
|
|
|
|
|
|
|
|
|
|
void SetSearchString(FString InString);
|
|
|
|
|
FString GetSearchString();
|
|
|
|
|
|
|
|
|
|
void SetObjectFilterString(FString InFilterString);
|
|
|
|
|
FString GetObjectFilterString();
|
|
|
|
|
|
|
|
|
|
void AddCategory(FString InName, ELogVerbosity::Type InVerbosity);
|
|
|
|
|
void RemoveCategory(FString InName);
|
|
|
|
|
bool IsValidCategory(FString InName);
|
|
|
|
|
FCategoryFilter& GetCategory(FString InName);
|
|
|
|
|
|
|
|
|
|
void SelectObject(FString ObjectName);
|
|
|
|
|
void RemoveObjectFromSelection(FString ObjectName);
|
|
|
|
|
const TArray<FString>& GetSelectedObjects();
|
|
|
|
|
|
|
|
|
|
void SavePresistentData();
|
|
|
|
|
void ClearPresistentData();
|
|
|
|
|
void LoadPresistentData();
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
static FCategoryFiltersManager StaticManager;
|
|
|
|
|
};
|