// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "ModalTask.h" #include "Perforce.h" #include "OutputAdapters.h" namespace UGSCore { class FDetectProjectSettingsTask : public IModalTask { public: const FString NewSelectedFileName; TSharedRef Perforce; TSharedPtr PerforceClient; FString NewSelectedProjectIdentifier; FString NewProjectEditorTarget; FString BranchClientPath; FString BranchDirectoryName; FString NewSelectedClientFileName; FString StreamName; // public Image ProjectLogo; FTimespan ServerTimeZone; // TextWriter Log; FDetectProjectSettingsTask(TSharedRef InPerforce, const FString& InNewSelectedFileName, TSharedRef InLog); ~FDetectProjectSettingsTask(); virtual TSharedRef Run(FEvent* AbortEvent) override; private: TSharedRef Log; TSharedRef RunInternal(FEvent* AbortEvent); static bool TryGetStreamPrefix(TSharedRef Perforce, const FString& StreamName, FEvent* AbortEvent, FLineBasedTextWriter& Log, FString& OutStreamPrefix); }; } // namespace UGSCore