Extend FSourceControlInitSettings to allow the caller to control if a provider uses values parsed from the commandline or not when initializing.

#rb Juan.Legaz
#jira UE-212182
#rnx

- We default to the old behavior, so that the default way of creating a source control provider (no FSourceControlInitSettings) will read all of the commandline parameters available and the newer way (creating a provider with a FSourceControlInitSettings) will ignore the commandline.

[CL 33001499 by paul chipchase in ue5-main branch]
This commit is contained in:
paul chipchase
2024-04-16 11:05:04 -04:00
parent a515d4bf1e
commit 4cf57d2d1e
3 changed files with 63 additions and 20 deletions

View File

@@ -19,7 +19,15 @@ public:
OverrideExisting,
};
enum class EConfigBehavior
enum class ECmdLineFlags : uint8
{
/** Do not read any settings from the commandline */
None,
/** Read all available settings from the commandline */
ReadAll
};
enum class EConfigBehavior : uint8
{
/** Can both read from, and save to the ini file*/
ReadWrite,
@@ -30,6 +38,7 @@ public:
};
FSourceControlInitSettings(EBehavior Behavior);
FSourceControlInitSettings(EBehavior Behavior, ECmdLineFlags CmdLineFlags);
~FSourceControlInitSettings() = default;
void SetConfigBehavior(EConfigBehavior Behavior);
@@ -43,10 +52,14 @@ public:
bool HasOverrides() const;
bool IsOverridden(FStringView SettingName) const;
void SetCmdLineFlags(ECmdLineFlags Flags);
bool ShouldReadFromCmdLine() const;
private:
EBehavior OverrideBehavior = EBehavior::OverrideAll;
EConfigBehavior ConfigBehavior = EConfigBehavior::ReadWrite;
EBehavior OverrideBehavior = EBehavior::OverrideAll;
ECmdLineFlags CmdLineFlags = ECmdLineFlags::None;
EConfigBehavior ConfigBehavior = EConfigBehavior::ReadWrite;
TMap<FString, FString> Settings;
};