void SGameLiftSettingsAwsAccountMenu::RefreshProfileList()

in GameLiftPlugin/Source/GameLiftPlugin/Private/SMenu/SGameLiftSettingsAwsAccountMenu.cpp [238:272]


void SGameLiftSettingsAwsAccountMenu::RefreshProfileList()
{
	ProfileListContainer->ClearChildren();

	TSharedRef<IAWSConfigFileProfile> Configurator = IGameLiftCoreModule::Get().MakeAWSConfigFileProfile();
	const TArray<FString>& AwsAccountsNames = Configurator->GetProfileNames();

	UGameLiftSettings* Settings = GetMutableDefault<UGameLiftSettings>();
	FString SelectedProfileName = Settings->CurrentProfileName;

	for (int32 Index = 0; Index < AwsAccountsNames.Num(); ++Index)
	{
		const FString& ProfileName = AwsAccountsNames[Index];
		FString Region = Configurator->GetRegion(ProfileName);
		FString Bucket = "-";

		bool IsSelectedProfile = ProfileName.Equals(SelectedProfileName);
		bool ProfileVisible = !ShowBootstrapStatusOnly || IsSelectedProfile;

		if (Settings->UserProfileInfoMap.Contains(ProfileName) &&
			Settings->UserProfileInfoMap[ProfileName].AwsRegion == Region &&
			!Settings->UserProfileInfoMap[ProfileName].S3Bucket.IsEmpty())
		{
			Bucket = Settings->UserProfileInfoMap[ProfileName].S3Bucket;
		}
		if (IsSelectedProfile && RadioButtonSelectedProfile.IsEmpty()) {
			RadioButtonSelectedProfile = ProfileName;
		}
		TSharedRef<SWidget> RowWidget = CreateProfileRow(ProfileName, Region, Bucket, IsSelectedProfile, ProfileVisible);
		ProfileListContainer->AddSlot()
			.Padding(SPadding::Right2x)
			.AutoHeight()
		[RowWidget];
	}
}