A Demo Project for the UnrealEngineSDK
Loading...
Searching...
No Matches
FDlgConfigWriter Class Reference

#include <DlgConfigWriter.h>

Inheritance diagram for FDlgConfigWriter:
[legend]

Public Member Functions

 FDlgConfigWriter (const FString InComplexNamePrefix="", bool bInDontWriteEmptyContainer=true)
 
virtual bool CanSaveAsReference (const FNYProperty *Property, const UObject *Object)
 
bool ExportToFile (const FString &FileName) override
 
const FString & GetAsString () const override
 
bool IsLogVerbose () const
 
void SetLogVerbose (bool bValue)
 
void Write (const UStruct *StructDefinition, const void *Object) override
 

Static Public Member Functions

static bool CanSkipProperty (const FNYProperty *Property)
 
static bool CanWriteIndex (const FNYProperty *Property)
 
static bool CanWriteOneLinePerItem (const FNYProperty *Property)
 

Protected Member Functions

const UStruct * GetComplexType (const FNYProperty *Property)
 
FString GetNameWithoutPrefix (const FNYProperty *StructDefinition, const UObject *ObjectPtr=nullptr)
 
FString GetStringWithoutPrefix (const FString &String)
 
bool IsContainer (const FNYProperty *Property)
 
bool IsPrimitive (const FNYProperty *Property)
 
bool IsPrimitiveContainer (const FNYProperty *Property)
 
bool WouldWriteNonPrimitive (const UStruct *StructDefinition, const void *Owner)
 
bool WriteComplexArrayToString (const FNYProperty *Property, const void *Object, const FString &PreString, const FString &PostString, FString &Target)
 
bool WriteComplexElementToString (const FNYProperty *Property, const void *Object, bool bContainerElement, const FString &PreString, const FString &PostString, bool bPointerAsRef, FString &Target)
 
void WriteComplexMembersToString (const UStruct *StructDefinition, const void *Object, const FString &PreString, const FString &PostString, FString &Target)
 
void WriteComplexToString (const UStruct *StructDefinition, const FNYProperty *Property, const void *Object, const FString &PreString, const FString &PostString, bool bContainerElement, bool bWriteType, FString &Target)
 
bool WriteMapToString (const FNYProperty *Property, const void *Object, const FString &PreString, const FString &PostString, FString &Target)
 
bool WritePrimitiveArrayToString (const FNYProperty *Property, const void *Object, const FString &PreString, const FString &PostString, FString &Target)
 
template<typename PropertyType , typename VariableType >
bool WritePrimitiveArrayToStringTemplated (const FNYArrayProperty *ArrayProp, const void *Object, std::function< FString(const VariableType &)> ToString, const FString &PreString, const FString &PostString, FString &Target)
 
bool WritePrimitiveElementToString (const FNYProperty *Property, const void *Object, bool bContainerElement, const FString &PreString, const FString &PostString, FString &Target)
 
template<typename PropertyType , typename VariableType >
bool WritePrimitiveElementToStringTemplated (const FNYProperty *Property, const void *Object, bool bContainerElement, std::function< FString(const VariableType &)> GetAsString, const FString &PreString, const FString &PostString, FString &Target)
 
template<typename PropertyType , typename VariableType >
bool WritePrimitiveToStringTemplated (const FNYProperty *Property, const void *Object, bool bContainerElement, std::function< FString(const VariableType &)> GetAsString, const FString &PreString, const FString &PostString, FString &Target)
 
bool WritePropertyToString (const FNYProperty *Property, const void *Object, bool bContainerElement, const FString &PreString, const FString &PostString, bool bPointerAsRef, FString &Target)
 
bool WriteSetToString (const FNYProperty *Property, const void *Object, const FString &PreString, const FString &PostString, FString &Target)
 

Static Protected Member Functions

static FString NormalizeEndlines (const FString &Original)
 

Protected Attributes

bool bLogVerbose = false
 

Static Protected Attributes

static constexpr int64 SkipFlags = CPF_Deprecated | CPF_Transient
 

Private Attributes

const bool bDontWriteEmptyContainer
 
const std::function< FString(const bool &) BoolToString )
 
const FString ComplexNamePrefix
 
FString ConfigText = ""
 
const std::function< FString(const float &) FloatToString )
 
const std::function< FString(const int64 &) IntToString )
 
const std::function< FString(const FName &) NameToString )
 
const std::function< FString(const FString &) StringToString )
 
const std::function< FString(const FText &) TextToString )
 
const void * TopLevelObjectPtr = nullptr
 

Static Private Attributes

static const TCHAR * EOL = EOL_LF
 
static const TCHAR * EOL_CRLF = TEXT("\r\n")
 
static const TCHAR * EOL_LF = TEXT("\n")
 
static const FString EOL_String {EOL}
 

Detailed Description

Because there is always another config format And there is always a copy-pasted comment. See IDlgWriter for properties and METADATA specifiers.

Definition at line 22 of file DlgConfigWriter.h.

Constructor & Destructor Documentation

◆ FDlgConfigWriter()

FDlgConfigWriter::FDlgConfigWriter ( const FString InComplexNamePrefix = "",
bool bInDontWriteEmptyContainer = true )

Creates a config string from the input struct/object All property is saved recursively except the ones with the metadata "DlgNoExport" and the nodes with the flags defined in SkipFlags. Call ExportToFile() to save it

Check FDlgConfigParser for the list of supported constructions (some container is limited in some ways) If there is a nullptr in the middle of an array it is skipped, the array num will be different after parsing it back, unless it is written by reference

Parameters
StructDefinitionUStruct of Object
Objectpointer to a variable (Struct / UObject)
InComplexNamePrefixproject specific pretag in struct and class names can be used not to export it to have better readable config file
bInDontWriteEmptyContainerif it is enabled empty TSet, TMap and TArray properties won't be written

Definition at line 19 of file DlgConfigWriter.cpp.

Member Function Documentation

◆ CanSaveAsReference()

virtual bool IDlgWriter::CanSaveAsReference ( const FNYProperty * Property,
const UObject * Object )
inlinevirtualinherited

Decides if the path to the object should be serialized, or the object itself

Definition at line 83 of file IDlgWriter.h.

Here is the caller graph for this function:

◆ CanSkipProperty()

static bool IDlgWriter::CanSkipProperty ( const FNYProperty * Property)
inlinestaticinherited

Can we skip this property from exporting?

Definition at line 41 of file IDlgWriter.h.

Here is the caller graph for this function:

◆ CanWriteIndex()

static bool IDlgWriter::CanWriteIndex ( const FNYProperty * Property)
inlinestaticinherited

Should write the index number for Property?

Definition at line 73 of file IDlgWriter.h.

Here is the caller graph for this function:

◆ CanWriteOneLinePerItem()

static bool IDlgWriter::CanWriteOneLinePerItem ( const FNYProperty * Property)
inlinestaticinherited

Should write one item per line for Property?

Definition at line 63 of file IDlgWriter.h.

Here is the caller graph for this function:

◆ ExportToFile()

bool FDlgConfigWriter::ExportToFile ( const FString & FileName)
inlineoverridevirtual

Save the config string to a text file

Parameters
FullNameFull path + file name + extension

Implements IDlgWriter.

Definition at line 55 of file DlgConfigWriter.h.

Here is the caller graph for this function:

◆ GetAsString()

const FString & FDlgConfigWriter::GetAsString ( ) const
inlineoverridevirtual

Implements IDlgWriter.

Definition at line 60 of file DlgConfigWriter.h.

◆ GetComplexType()

const UStruct * FDlgConfigWriter::GetComplexType ( const FNYProperty * Property)
protected

Definition at line 633 of file DlgConfigWriter.cpp.

Here is the caller graph for this function:

◆ GetNameWithoutPrefix()

FString FDlgConfigWriter::GetNameWithoutPrefix ( const FNYProperty * StructDefinition,
const UObject * ObjectPtr = nullptr )
protected

Definition at line 717 of file DlgConfigWriter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetStringWithoutPrefix()

FString FDlgConfigWriter::GetStringWithoutPrefix ( const FString & String)
protected

Definition at line 741 of file DlgConfigWriter.cpp.

Here is the caller graph for this function:

◆ IsContainer()

bool FDlgConfigWriter::IsContainer ( const FNYProperty * Property)
protected

Definition at line 599 of file DlgConfigWriter.cpp.

Here is the caller graph for this function:

◆ IsLogVerbose()

bool IDlgWriter::IsLogVerbose ( ) const
inlineinherited

Definition at line 108 of file IDlgWriter.h.

◆ IsPrimitive()

bool FDlgConfigWriter::IsPrimitive ( const FNYProperty * Property)
protected

Definition at line 587 of file DlgConfigWriter.cpp.

Here is the caller graph for this function:

◆ IsPrimitiveContainer()

bool FDlgConfigWriter::IsPrimitiveContainer ( const FNYProperty * Property)
protected

Definition at line 606 of file DlgConfigWriter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NormalizeEndlines()

static FString FDlgConfigWriter::NormalizeEndlines ( const FString & Original)
inlinestaticprotected

Converts all endlines to be of one type.

Definition at line 248 of file DlgConfigWriter.h.

◆ SetLogVerbose()

void IDlgWriter::SetLogVerbose ( bool bValue)
inlineinherited

Definition at line 109 of file IDlgWriter.h.

◆ WouldWriteNonPrimitive()

bool FDlgConfigWriter::WouldWriteNonPrimitive ( const UStruct * StructDefinition,
const void * Owner )
protected

Definition at line 648 of file DlgConfigWriter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Write()

void FDlgConfigWriter::Write ( const UStruct * StructDefinition,
const void * Object )
overridevirtual

Has to be called to prepare the text data

Implements IDlgWriter.

Definition at line 27 of file DlgConfigWriter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteComplexArrayToString()

bool FDlgConfigWriter::WriteComplexArrayToString ( const FNYProperty * Property,
const void * Object,
const FString & PreString,
const FString & PostString,
FString & Target )
protected

Definition at line 393 of file DlgConfigWriter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteComplexElementToString()

bool FDlgConfigWriter::WriteComplexElementToString ( const FNYProperty * Property,
const void * Object,
bool bContainerElement,
const FString & PreString,
const FString & PostString,
bool bPointerAsRef,
FString & Target )
protected

Definition at line 260 of file DlgConfigWriter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteComplexMembersToString()

void FDlgConfigWriter::WriteComplexMembersToString ( const UStruct * StructDefinition,
const void * Object,
const FString & PreString,
const FString & PostString,
FString & Target )
protected

Definition at line 34 of file DlgConfigWriter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteComplexToString()

void FDlgConfigWriter::WriteComplexToString ( const UStruct * StructDefinition,
const FNYProperty * Property,
const void * Object,
const FString & PreString,
const FString & PostString,
bool bContainerElement,
bool bWriteType,
FString & Target )
protected

Definition at line 339 of file DlgConfigWriter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteMapToString()

bool FDlgConfigWriter::WriteMapToString ( const FNYProperty * Property,
const void * Object,
const FString & PreString,
const FString & PostString,
FString & Target )
protected

Definition at line 453 of file DlgConfigWriter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WritePrimitiveArrayToString()

bool FDlgConfigWriter::WritePrimitiveArrayToString ( const FNYProperty * Property,
const void * Object,
const FString & PreString,
const FString & PostString,
FString & Target )
protected

Definition at line 214 of file DlgConfigWriter.cpp.

Here is the caller graph for this function:

◆ WritePrimitiveArrayToStringTemplated()

template<typename PropertyType , typename VariableType >
bool FDlgConfigWriter::WritePrimitiveArrayToStringTemplated ( const FNYArrayProperty * ArrayProp,
const void * Object,
std::function< FString(const VariableType &)> ToString,
const FString & PreString,
const FString & PostString,
FString & Target )
inlineprotected

Definition at line 169 of file DlgConfigWriter.h.

Here is the call graph for this function:

◆ WritePrimitiveElementToString()

bool FDlgConfigWriter::WritePrimitiveElementToString ( const FNYProperty * Property,
const void * Object,
bool bContainerElement,
const FString & PreString,
const FString & PostString,
FString & Target )
protected

Definition at line 160 of file DlgConfigWriter.cpp.

Here is the caller graph for this function:

◆ WritePrimitiveElementToStringTemplated()

template<typename PropertyType , typename VariableType >
bool FDlgConfigWriter::WritePrimitiveElementToStringTemplated ( const FNYProperty * Property,
const void * Object,
bool bContainerElement,
std::function< FString(const VariableType &)> GetAsString,
const FString & PreString,
const FString & PostString,
FString & Target )
inlineprotected

Definition at line 146 of file DlgConfigWriter.h.

Here is the call graph for this function:

◆ WritePrimitiveToStringTemplated()

template<typename PropertyType , typename VariableType >
bool FDlgConfigWriter::WritePrimitiveToStringTemplated ( const FNYProperty * Property,
const void * Object,
bool bContainerElement,
std::function< FString(const VariableType &)> GetAsString,
const FString & PreString,
const FString & PostString,
FString & Target )
inlineprotected

Definition at line 226 of file DlgConfigWriter.h.

Here is the call graph for this function:

◆ WritePropertyToString()

bool FDlgConfigWriter::WritePropertyToString ( const FNYProperty * Property,
const void * Object,
bool bContainerElement,
const FString & PreString,
const FString & PostString,
bool bPointerAsRef,
FString & Target )
protected

Definition at line 107 of file DlgConfigWriter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteSetToString()

bool FDlgConfigWriter::WriteSetToString ( const FNYProperty * Property,
const void * Object,
const FString & PreString,
const FString & PostString,
FString & Target )
protected

Definition at line 517 of file DlgConfigWriter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ bDontWriteEmptyContainer

const bool FDlgConfigWriter::bDontWriteEmptyContainer
private

Definition at line 266 of file DlgConfigWriter.h.

◆ bLogVerbose

bool IDlgWriter::bLogVerbose = false
protectedinherited

Definition at line 116 of file IDlgWriter.h.

◆ BoolToString

const std::function<FString(const bool&) FDlgConfigWriter::BoolToString)
private
Initial value:
= [](const bool& bBool) -> FString
{
return bBool ? "True" : "False";
}

Definition at line 269 of file DlgConfigWriter.h.

◆ ComplexNamePrefix

const FString FDlgConfigWriter::ComplexNamePrefix
private

Definition at line 265 of file DlgConfigWriter.h.

◆ ConfigText

FString FDlgConfigWriter::ConfigText = ""
private

Definition at line 262 of file DlgConfigWriter.h.

◆ EOL

const TCHAR * FDlgConfigWriter::EOL = EOL_LF
staticprivate

Definition at line 257 of file DlgConfigWriter.h.

◆ EOL_CRLF

const TCHAR * FDlgConfigWriter::EOL_CRLF = TEXT("\r\n")
staticprivate

Definition at line 256 of file DlgConfigWriter.h.

◆ EOL_LF

const TCHAR * FDlgConfigWriter::EOL_LF = TEXT("\n")
staticprivate

Definition at line 255 of file DlgConfigWriter.h.

◆ EOL_String

const FString FDlgConfigWriter::EOL_String {EOL}
staticprivate

Definition at line 15 of file DlgConfigWriter.h.

◆ FloatToString

const std::function<FString(const float&) FDlgConfigWriter::FloatToString)
private
Initial value:
= [](const float& FloatVal) -> FString
{
return FString::SanitizeFloat(FloatVal);
}

Definition at line 279 of file DlgConfigWriter.h.

◆ IntToString

const std::function<FString(const int64&) FDlgConfigWriter::IntToString)
private
Initial value:
= [](const int64& IntVal) -> FString
{
return FString::Printf(TEXT("%lld"), IntVal);
}

Definition at line 274 of file DlgConfigWriter.h.

◆ NameToString

const std::function<FString(const FName&) FDlgConfigWriter::NameToString)
private
Initial value:
= [](const FName& Name) -> FString
{
return FString("\"") + NormalizeEndlines(Name.ToString()) + "\"";
}
static FString NormalizeEndlines(const FString &Original)

Definition at line 289 of file DlgConfigWriter.h.

◆ SkipFlags

constexpr int64 IDlgWriter::SkipFlags = CPF_Deprecated | CPF_Transient
staticconstexprprotectedinherited

The properties with these flags set will be ignored from writing.

Definition at line 113 of file IDlgWriter.h.

◆ StringToString

const std::function<FString(const FString&) FDlgConfigWriter::StringToString)
private
Initial value:
= [](const FString& String) -> FString
{
return FString("\"") + NormalizeEndlines(String) + "\"";
}

Definition at line 284 of file DlgConfigWriter.h.

◆ TextToString

const std::function<FString(const FText&) FDlgConfigWriter::TextToString)
private
Initial value:
= [](const FText& Text) -> FString
{
return FString("\"") + NormalizeEndlines(Text.ToString()) + "\"";
}

Definition at line 294 of file DlgConfigWriter.h.

◆ TopLevelObjectPtr

const void* FDlgConfigWriter::TopLevelObjectPtr = nullptr
private

Definition at line 264 of file DlgConfigWriter.h.


The documentation for this class was generated from the following files: