Plugin config file usage

#codereview Josh.Adams

Merging CL 2337697

//depot/UE4-UT/...

to //depot/UE4/...

[CL 2338785 by Peter Knepley in Main branch]
This commit is contained in:
Peter Knepley
2014-10-23 13:51:22 -04:00
committed by UnrealBot
parent 68b50b9d07
commit 15e57149aa
2 changed files with 28 additions and 12 deletions
@@ -298,25 +298,41 @@ bool FPluginManager::ConfigureEnabledPlugins()
}
}
// Build the list of content folders
ContentFolders.Empty();
for(const TSharedRef<FPluginInstance>& Plugin: AllPlugins)
{
if(Plugin->bEnabled && Plugin->Descriptor.bCanContainContent)
if (Plugin->bEnabled)
{
FPluginContentFolder ContentFolder;
ContentFolder.Name = Plugin->Name;
ContentFolder.RootPath = FString::Printf(TEXT("/%s/"), *Plugin->Name);
ContentFolder.ContentPath = FPaths::GetPath(Plugin->FileName) / TEXT("Content");
ContentFolders.Emplace(ContentFolder);
if (auto EngineConfigFile = GConfig->Find(GEngineIni, false))
// Build the list of content folders
if (Plugin->Descriptor.bCanContainContent)
{
if (auto CoreSystemSection = EngineConfigFile->Find(TEXT("Core.System")))
FPluginContentFolder ContentFolder;
ContentFolder.Name = Plugin->Name;
ContentFolder.RootPath = FString::Printf(TEXT("/%s/"), *Plugin->Name);
ContentFolder.ContentPath = FPaths::GetPath(Plugin->FileName) / TEXT("Content");
ContentFolders.Emplace(ContentFolder);
if (auto EngineConfigFile = GConfig->Find(GEngineIni, false))
{
CoreSystemSection->AddUnique("Paths", ContentFolder.ContentPath);
if (auto CoreSystemSection = EngineConfigFile->Find(TEXT("Core.System")))
{
CoreSystemSection->AddUnique("Paths", ContentFolder.ContentPath);
}
}
}
// Load Default<PluginName>.ini config file if it exists
FString PluginConfigDir = FPaths::GetPath(Plugin->FileName) / TEXT("Config/");
FConfigFile PluginConfig;
FConfigCacheIni::LoadExternalIniFile(PluginConfig, *Plugin->Name, *FPaths::EngineConfigDir(), *PluginConfigDir, true);
if (PluginConfig.Num() > 0)
{
FString PlaformName = FPlatformProperties::PlatformName();
FString PluginConfigFilename = FString::Printf(TEXT("%s%s/%s.ini"), *FPaths::GeneratedConfigDir(), *PlaformName, *Plugin->Name);
FConfigFile& NewConfigFile = GConfig->Add(PluginConfigFilename, FConfigFile());
NewConfigFile.AddMissingProperties(PluginConfig);
NewConfigFile.Write(PluginConfigFilename);
}
}
}