88 lines
1.9 KiB
C++
88 lines
1.9 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Misc/ConfigCacheIni.h"
|
|
|
|
/** Contains all settings for the Unreal Insights, accessible through the main manager. */
|
|
class FInsightsSettings
|
|
{
|
|
public:
|
|
FInsightsSettings(bool bInIsDefault = false)
|
|
: bIsEditing(false), bIsDefault(bInIsDefault), bShowEmptyTracksByDefault(false)
|
|
{
|
|
if (!bIsDefault)
|
|
{
|
|
LoadFromConfig();
|
|
}
|
|
}
|
|
|
|
~FInsightsSettings()
|
|
{
|
|
if (!bIsDefault)
|
|
{
|
|
SaveToConfig();
|
|
}
|
|
}
|
|
|
|
void LoadFromConfig()
|
|
{
|
|
FConfigCacheIni::LoadGlobalIniFile(SettingsIni, TEXT("UnrealInsightsSettings"));
|
|
|
|
GConfig->GetBool(TEXT("Insights.TimingProfiler"), TEXT("bShowEmptyTracksByDefault"), bShowEmptyTracksByDefault, SettingsIni);
|
|
}
|
|
|
|
void SaveToConfig()
|
|
{
|
|
GConfig->SetBool(TEXT("Insights.TimingProfiler"), TEXT("bShowEmptyTracksByDefault"), bShowEmptyTracksByDefault, SettingsIni);
|
|
|
|
GConfig->Flush(false, SettingsIni);
|
|
}
|
|
|
|
void EnterEditMode()
|
|
{
|
|
bIsEditing = true;
|
|
}
|
|
|
|
void ExitEditMode()
|
|
{
|
|
bIsEditing = false;
|
|
}
|
|
|
|
const bool IsEditing() const
|
|
{
|
|
return bIsEditing;
|
|
}
|
|
|
|
const FInsightsSettings& GetDefaults() const
|
|
{
|
|
return Defaults;
|
|
}
|
|
|
|
void ResetToDefaults()
|
|
{
|
|
bShowEmptyTracksByDefault = Defaults.bShowEmptyTracksByDefault;
|
|
}
|
|
|
|
// protected:
|
|
public:
|
|
/** Contains default settings. */
|
|
static FInsightsSettings Defaults;
|
|
|
|
/** Setting filename ini. */
|
|
FString SettingsIni;
|
|
|
|
/** Whether profiler settings is in edit mode. */
|
|
bool bIsEditing;
|
|
|
|
/** Whether this instance contains defaults. */
|
|
bool bIsDefault;
|
|
|
|
//////////////////////////////////////////////////
|
|
// Actual settings.
|
|
|
|
/** If True, the Timing View will show empty tracks by default. */
|
|
bool bShowEmptyTracksByDefault;
|
|
};
|