Files
UnrealEngineUWP/Engine/Source/Developer/SourceControl/Public/SSourceControlControls.h
marco anastasi 0eb858d5d9 * Created Snapshot History Tab structure
* Created Date Picker Widget
* Created Source Control Controls Widget
* Refactored Status Bar menu to use Source Control Controls Widget

#rb wouter.burgers, stuart.hill

[CL 29864023 by marco anastasi in ue5-main branch]
2023-11-21 09:56:04 -05:00

64 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "ISourceControlProvider.h"
#include "Delegates/IDelegateInstance.h"
#include "Framework/SlateDelegates.h"
#include "Styling/SlateTypes.h"
#include "Widgets/SCompoundWidget.h"
/** Widget for displaying Source Control Check in Changes and Sync Latest buttons */
class SOURCECONTROL_API SSourceControlControls : public SCompoundWidget
{
public:
SLATE_BEGIN_ARGS(SSourceControlControls) {}
SLATE_EVENT(FOnClicked, OnClickedSyncLatest)
SLATE_EVENT(FOnClicked, OnClickedCheckInChanges)
SLATE_EVENT(FOnGetContent, OnGenerateKebabMenu)
SLATE_END_ARGS()
public:
/** Construct this widget */
void Construct(const FArguments& InArgs);
private:
/** Sync button */
bool IsAtLatestRevision() const;
bool CanSourceControlSync() const;
EVisibility GetSourceControlSyncStatusVisibility() const;
FText GetSourceControlSyncStatusText() const;
FText GetSourceControlSyncStatusTooltipText() const;
const FSlateBrush* GetSourceControlSyncStatusIcon() const;
FReply OnSourceControlSyncClicked() const;
/** Check-in button */
int GetNumLocalChanges() const;
bool CanSourceControlCheckIn() const;
EVisibility GetSourceControlCheckInStatusVisibility() const;
FText GetSourceControlCheckInStatusText() const;
FText GetSourceControlCheckInStatusTooltipText() const;
const FSlateBrush* GetSourceControlCheckInStatusIcon() const;
FReply OnSourceControlCheckInChangesClicked() const;
/** Conflicts */
void CheckSourceControlStatus();
bool AreConflictsRemaining() const;
void OnSourceControlProviderChanged(ISourceControlProvider& OldProvider, ISourceControlProvider& NewProvider);
void OnSourceControlStateChanged();
private:
FOnClicked OnSyncLatestClicked;
FOnClicked OnCheckInChangesClicked;
/** Is there a conflict remaining? */
bool bConflictsRemaining;
FDelegateHandle SourceControlProviderChangedHandle;
FDelegateHandle SourceControlStateChangedHandle;
};