Files
UnrealEngineUWP/Engine/Source/Editor/StatusBar/Private/SourceControlMenuHelpers.h
wouter burgers 1161fdcd00 SourceControl / UEFN: Get latest on project with the shortcut F5.
This introduces a MainFrame menu item under TOOLS -> SOURCE CONTROL called 'Sync Content', similar to the existing 'Submit Content' option. The new menu item is tied to the F5 hot key.

#preflight 63722efcb6636838285ea216

[CL 23129394 by wouter burgers in ue5-main branch]
2022-11-14 18:26:11 -05:00

96 lines
2.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Framework/Commands/Commands.h"
#include "ISourceControlOperation.h"
#include "ISourceControlProvider.h"
class FUICommandList;
class FReply;
class SWidget;
class FSourceControlCommands : public TCommands<FSourceControlCommands>
{
public:
FSourceControlCommands();
/**
* Initialize commands
*/
virtual void RegisterCommands() override;
private:
static void ConnectToSourceControl_Clicked();
static bool ViewChangelists_CanExecute();
static bool ViewChangelists_IsVisible();
static bool SubmitContent_IsVisible();
static void ViewChangelists_Clicked();
static bool CheckOutModifiedFiles_CanExecute();
static void CheckOutModifiedFiles_Clicked();
public:
/**
* Source Control Commands
*/
TSharedPtr< FUICommandInfo > ConnectToSourceControl;
TSharedPtr< FUICommandInfo > ChangeSourceControlSettings;
TSharedPtr< FUICommandInfo > ViewChangelists;
TSharedPtr< FUICommandInfo > SubmitContent;
TSharedPtr< FUICommandInfo > CheckOutModifiedFiles;
static TSharedRef<FUICommandList> ActionList;
};
class FSourceControlMenuHelpers
{
friend class FSourceControlCommands;
public:
/**
* Static: Access singleton instance
*
* @return Reference to the singleton object
*/
static FSourceControlMenuHelpers& Get();
private:
enum EQueryState
{
NotQueried,
Querying,
Queried,
};
static EQueryState QueryState;
public:
static void CheckSourceControlStatus();
static TSharedRef<SWidget> MakeSourceControlStatusWidget();
private:
static void OnSourceControlOperationComplete(const FSourceControlOperationRef& InOperation, ECommandResult::Type InResult);
static TSharedRef<SWidget> GenerateSourceControlMenuContent();
static FText GetSourceControlStatusText();
static FText GetSourceControlTooltip();
static const FSlateBrush* GetSourceControlIcon();
/** Sync button */
static bool IsAtLatestRevision();
static EVisibility GetSourceControlSyncStatusVisibility();
static FText GetSourceControlSyncStatusText();
static FText GetSourceControlSyncStatusTooltipText();
static const FSlateBrush* GetSourceControlSyncStatusIcon();
static FReply OnSourceControlSyncClicked();
/** Check-in button */
static int GetNumLocalChanges();
static EVisibility GetSourceControlCheckInStatusVisibility();
static FText GetSourceControlCheckInStatusText();
static FText GetSourceControlCheckInStatusTooltipText();
static const FSlateBrush* GetSourceControlCheckInStatusIcon();
static FReply OnSourceControlCheckInChangesClicked();
};