Files
UnrealEngineUWP/Engine/Source/Editor/Localization/Private/LocalizationSettings.cpp
Matthew Griffin bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00

89 lines
2.9 KiB
C++

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
#include "LocalizationPrivatePCH.h"
#include "LocalizationSettings.h"
#include "LocalizationTargetTypes.h"
#include "ISourceControlModule.h"
ULocalizationSettings::ULocalizationSettings(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
, EngineTargetSet(ObjectInitializer.CreateDefaultSubobject<ULocalizationTargetSet>(this, TEXT("EngineLocalizationTargetSet")))
, GameTargetSet(ObjectInitializer.CreateDefaultSubobject<ULocalizationTargetSet>(this, TEXT("ProjectLocalizationTargetSet")))
{
}
#if WITH_EDITOR
void ULocalizationSettings::PostInitProperties()
{
Super::PostInitProperties();
// Create and initialize objects for details model from backing config properties.
if (EngineTargetSet)
{
EngineTargetSet->TargetObjects.Empty(EngineTargetsSettings.Num());
for (const auto& TargetSettings : EngineTargetsSettings)
{
ULocalizationTarget* const TargetObject = NewObject<ULocalizationTarget>(EngineTargetSet);
TargetObject->Settings = TargetSettings;
TargetObject->UpdateStatusFromConflictReport();
TargetObject->UpdateWordCountsFromCSV();
EngineTargetSet->TargetObjects.Add(TargetObject);
}
}
// Create and initialize objects for details model from backing config properties.
if (GameTargetSet)
{
GameTargetSet->TargetObjects.Empty(EngineTargetsSettings.Num());
for (const auto& TargetSettings : GameTargetsSettings)
{
ULocalizationTarget* const TargetObject = NewObject<ULocalizationTarget>(GameTargetSet);
TargetObject->Settings = TargetSettings;
TargetObject->UpdateStatusFromConflictReport();
TargetObject->UpdateWordCountsFromCSV();
GameTargetSet->TargetObjects.Add(TargetObject);
}
}
}
void ULocalizationSettings::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
{
Super::PostEditChangeProperty(PropertyChangedEvent);
// Copy settings back.
if (EngineTargetSet)
{
EngineTargetsSettings.Empty(EngineTargetSet->TargetObjects.Num());
for (const auto& TargetObject : EngineTargetSet->TargetObjects)
{
EngineTargetsSettings.Add(TargetObject ? TargetObject->Settings : FLocalizationTargetSettings());
}
}
// Copy settings back.
if (GameTargetSet)
{
GameTargetsSettings.Empty(GameTargetSet->TargetObjects.Num());
for (const auto& TargetObject : GameTargetSet->TargetObjects)
{
GameTargetsSettings.Add(TargetObject ? TargetObject->Settings : FLocalizationTargetSettings());
}
}
UpdateDefaultConfigFile();
}
#endif
ULocalizationTargetSet* ULocalizationSettings::GetEngineTargetSet()
{
ULocalizationSettings* LocalizationSettings = GetMutableDefault<ULocalizationSettings>();
check(LocalizationSettings);
return LocalizationSettings->EngineTargetSet;
}
ULocalizationTargetSet* ULocalizationSettings::GetGameTargetSet()
{
ULocalizationSettings* LocalizationSettings = GetMutableDefault<ULocalizationSettings>();
check(LocalizationSettings);
return LocalizationSettings->GameTargetSet;
}