#pragma once #include "GitSourceControlChangelist.h" #include "ISourceControlChangelistState.h" #include "ISourceControlState.h" class FGitSourceControlChangelistState : public ISourceControlChangelistState { public: explicit FGitSourceControlChangelistState(const FGitSourceControlChangelist& InChangelist, const FString& InDescription = FString()) : Changelist(InChangelist) , Description(InDescription) { } explicit FGitSourceControlChangelistState(FGitSourceControlChangelist&& InChangelist, FString&& InDescription) : Changelist(MoveTemp(InChangelist)) , Description(MoveTemp(InDescription)) { } /** * Get the name of the icon graphic we should use to display the state in a UI. * @returns the name of the icon to display */ virtual FName GetIconName() const override; /** * Get the name of the small icon graphic we should use to display the state in a UI. * @returns the name of the icon to display */ virtual FName GetSmallIconName() const override; /** * Get a text representation of the state * @returns the text to display for this state */ virtual FText GetDisplayText() const override; /** * Get a text representation of the state * @returns the text to display for this state */ virtual FText GetDescriptionText() const override; /** * Get a tooltip to describe this state * @returns the text to display for this states tooltip */ virtual FText GetDisplayTooltip() const override; /** * Get the timestamp of the last update that was made to this state. * @returns the timestamp of the last update */ virtual const FDateTime& GetTimeStamp() const override; #if ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 4 virtual const TArray GetFilesStates() const override; virtual int32 GetFilesStatesNum() const override; virtual const TArray GetShelvedFilesStates() const override; virtual int32 GetShelvedFilesStatesNum() const override; #else virtual const TArray& GetFilesStates() const override; virtual const TArray& GetShelvedFilesStates() const override; #endif virtual FSourceControlChangelistRef GetChangelist() const override; public: FGitSourceControlChangelist Changelist; FString Description; TArray Files; TArray ShelvedFiles; /** The timestamp of the last update */ FDateTime TimeStamp; };