// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved. #include "AutomationWindowPrivatePCH.h" FAutomationTestPresetManager::FAutomationTestPresetManager() { } AutomationPresetRef FAutomationTestPresetManager::AddNewPreset( ) { AutomationPresetPtr NewPreset = MakeShareable(new FAutomationTestPreset()); Presets.Add(NewPreset); return NewPreset.ToSharedRef(); } AutomationPresetRef FAutomationTestPresetManager::AddNewPreset( const FString& PresetName, const TArray& SelectedTests ) { AutomationPresetRef NewPreset = AddNewPreset(); NewPreset->SetPresetName(PresetName); NewPreset->SetEnabledTests(SelectedTests); SavePreset(NewPreset); return NewPreset; } TArray& FAutomationTestPresetManager::GetAllPresets( ) { return Presets; } AutomationPresetPtr FAutomationTestPresetManager::LoadPreset( FArchive& Archive ) { FAutomationTestPreset* NewPreset = new FAutomationTestPreset(); if(NewPreset->Serialize(Archive)) { return MakeShareable(NewPreset); } delete NewPreset; return NULL; } void FAutomationTestPresetManager::RemovePreset( const AutomationPresetRef Preset ) { if (Presets.Remove(Preset) > 0) { // Find the name of the preset on disk FString PresetFileName = GetPresetFolder() / Preset->GetID().ToString() + TEXT(".uap"); // delete the preset on disk IFileManager::Get().Delete(*PresetFileName); } } void FAutomationTestPresetManager::SavePreset( const AutomationPresetRef Preset ) { FString PresetFileName = GetPresetFolder() / Preset->GetID().ToString() + TEXT(".uap"); FArchive* PresetFileWriter = IFileManager::Get().CreateFileWriter(*PresetFileName); if (PresetFileWriter != NULL) { SavePreset(Preset, *PresetFileWriter); delete PresetFileWriter; } } void FAutomationTestPresetManager::SavePreset( const AutomationPresetRef Preset, FArchive& Archive ) { Preset->Serialize(Archive); } void FAutomationTestPresetManager::LoadPresets( ) { TArray PresetFileNames; IFileManager::Get().FindFiles(PresetFileNames, *(GetPresetFolder() / TEXT("*.uap")), true, false); for (TArray::TConstIterator It(PresetFileNames); It; ++It) { FString PresetFilePath = GetPresetFolder() / *It; FArchive* PresetFileReader = IFileManager::Get().CreateFileReader(*PresetFilePath); if (PresetFileReader != NULL) { AutomationPresetPtr LoadedPreset = LoadPreset(*PresetFileReader); if (LoadedPreset.IsValid()) { Presets.Add(LoadedPreset); } else { IFileManager::Get().Delete(*PresetFilePath); } delete PresetFileReader; } } }