Files
UnrealEngineUWP/Engine/Source/Developer/SourceControl/Private/DefaultSourceControlProvider.h
marco anastasi f6978a065c Created new Source Control feature flag UsesSnapshots() to solve inconsistency in use of UsesChangelists() and UsesFileRevisions() causing issues for git Source Control Provider
* Option to check in an asset from the Content Browser Source Control Context Menu is now enabled if the SCC does not use Snapshots instead of if it uses File Revisions
* Option to check in an asset from the Scene Outliner Source Control Context Menu is now enabled if the SCC does not use Snapshots instead of if it uses File Revisions
* Ability to uncheck files in the Submit Files Window is now enabled if the SCC does not use Snapshots instead of if it uses File Revisions
* Option to revert the writable flag on an asset in the Content Browser Source Control Context Menu is now enabled if the SCC uses checkout instead of if it uses File Revisions (like the 'Make Writable' option)

#jira UCS-6630
#rb brooke.hubert, wouter.burgers
#lockdown jeanmichel.dignard
#preflight 640e6b41482188d710ff8316

[CL 24724061 by marco anastasi in ue5-main branch]
2023-03-20 17:20:41 -04:00

51 lines
3.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "ISourceControlOperation.h"
#include "ISourceControlState.h"
#include "ISourceControlProvider.h"
/**
* Default source control provider implementation - "None"
*/
class FDefaultSourceControlProvider : public ISourceControlProvider
{
public:
// ISourceControlProvider implementation
virtual void Init(bool bForceConnection = true) override;
virtual void Close() override;
virtual FText GetStatusText() const override;
virtual bool IsAvailable() const override;
virtual bool IsEnabled() const override;
virtual const FName& GetName(void) const override;
virtual bool QueryStateBranchConfig(const FString& ConfigSrc, const FString& ConfigDest) override { return false; }
virtual void RegisterStateBranches(const TArray<FString>& BranchNames, const FString& ContentRoot) override {}
virtual int32 GetStateBranchIndex(const FString& BranchName) const override { return INDEX_NONE; }
virtual ECommandResult::Type GetState( const TArray<FString>& InFiles, TArray<FSourceControlStateRef>& OutState, EStateCacheUsage::Type InStateCacheUsage ) override;
virtual ECommandResult::Type GetState(const TArray<FSourceControlChangelistRef>& InChangelists, TArray<FSourceControlChangelistStateRef>& OutState, EStateCacheUsage::Type InStateCacheUsage) override;
virtual TArray<FSourceControlStateRef> GetCachedStateByPredicate(TFunctionRef<bool(const FSourceControlStateRef&)> Predicate) const override;
virtual FDelegateHandle RegisterSourceControlStateChanged_Handle( const FSourceControlStateChanged::FDelegate& SourceControlStateChanged ) override;
virtual void UnregisterSourceControlStateChanged_Handle( FDelegateHandle Handle ) override;
virtual ECommandResult::Type Execute( const FSourceControlOperationRef& InOperation, FSourceControlChangelistPtr InChangelist, const TArray<FString>& InFiles, EConcurrency::Type InConcurrency = EConcurrency::Synchronous, const FSourceControlOperationComplete& InOperationCompleteDelegate = FSourceControlOperationComplete() ) override;
virtual bool CanExecuteOperation( const FSourceControlOperationRef& InOperation ) const override;
virtual bool CanCancelOperation( const FSourceControlOperationRef& InOperation ) const override;
virtual void CancelOperation( const FSourceControlOperationRef& InOperation ) override;
virtual bool UsesLocalReadOnlyState() const override;
virtual bool UsesChangelists() const override;
virtual bool UsesUncontrolledChangelists() const override;
virtual bool UsesCheckout() const override;
virtual bool UsesFileRevisions() const override;
virtual bool UsesSnapshots() const override;
virtual bool AllowsDiffAgainstDepot() const override;
virtual TOptional<bool> IsAtLatestRevision() const override;
virtual TOptional<int> GetNumLocalChanges() const override;
virtual void Tick() override;
virtual TArray< TSharedRef<class ISourceControlLabel> > GetLabels( const FString& InMatchingSpec ) const override;
virtual TArray<FSourceControlChangelistRef> GetChangelists( EStateCacheUsage::Type InStateCacheUsage ) override;
#if SOURCE_CONTROL_WITH_SLATE
virtual TSharedRef<class SWidget> MakeSettingsWidget() const override;
#endif // SOURCE_CONTROL_WITH_SLATE
};