SBlueprintDiff

Visual Diff between two Blueprints

Windows
MacOS
Linux

Inheritance Hierarchy

References

Module

Kismet

Header

/Engine/Source/Editor/Kismet/Public/SBlueprintDiff.h

Include

#include "SBlueprintDiff.h"

Syntax

class SBlueprintDiff : public SCompoundWidget

Remarks

Visual Diff between two Blueprints

Variables

Name Description

Protected variable

FDelegateHandle

 

AssetEditorCloseDelegate

Protected variable

bool

 

bLockViews

If the two views should be locked

Protected variable

bool

 

bVerticalSplitGraphMode

If the view on Graph Mode should be divided vertically

Protected variable

FName

 

CurrentMode

Protected variable

TSharedPtr< STr...

 

DifferencesTreeView

Tree view that displays the differences, cached for the buttons that iterate the differences:

Protected variable

TSharedPtr< SSp...

 

DiffGraphSplitter

Protected variable

TArray< TShared...

 

Graphs

List of graphs to diff, are added to panel last

Protected variable

TSharedPtr< SSp...

 

GraphToolBarWidget

Protected variable

TArray< TShared...

 

MasterDifferencesList

Tree of differences collected across all panels:

Protected variable

TSharedPtr< SBo...

 

ModeContents

Contents widget that we swap when mode changes (defaults, components, etc)

Protected variable

TMap< FName, FD...

 

ModePanels

Stored references to widgets used to display various parts of a blueprint, from the mode name

Protected variable

FDiffPanel

 

PanelNew

Protected variable

FDiffPanel

 

PanelOld

The two panels used to show the old & new revision

Protected variable

TArray< TShared...

 

RealDifferences

List of all differences, cached so that we can iterate only the differences and not labels, etc:

Protected variable

TSharedPtr< FTa...

 

TabManager

We can't use the global tab manager because we need to instance the diff control, so we have our own tab manager:

Protected variable

TSharedPtr< SSp...

 

TopRevisionInfoWidget

Protected variable

TWeakPtr< SWind...

 

WeakParentWindow

A pointer to the window holding this

Destructors

Name Description

Public function Virtual

~SBlueprintDiff()

Functions

Name Description

Public function

void

 

Construct

(
    const FArguments& InArgs
)

Public function Static

TSharedPtr< ...

 

CreateDiffWindow

(
    FText WindowTitle,
    UBlueprint* OldBlueprint,
    UBlueprint* NewBlueprint,
    const FRevisionInfo& OldRevision,
    const FRevisionInfo& NewRevision
)

Helper function to create a window that holds a diff widget

Protected function

void

 

CreateGraphEntry

(
    UEdGraph* GraphOld,
    UEdGraph* GraphNew
)

Create a list item entry graph that exists in at least one of the blueprints

Public function Static

TSharedRef< ...

 

DefaultEmptyPanel()

Helper function for generating an empty widget

Protected function

void

 

DisablePinDiffFocus()

Disable the focus on a particular pin

Protected function

FGraphToDiff...

 

FindGraphToDiffEntry

(
    const FString& GraphPath
)

Find the FGraphToDiff that displays the graph with GraphPath relative path

Protected function

void

 

FocusOnGraphRevisions

(
    FGraphToDiff* Diff
)

Bring these revisions of graph into focus on main display

Protected function

FDiffControl

 

GenerateBlueprintTypePanel()

Protected function

FDiffControl

 

GenerateClassSettingsPanel()

Protected function

FDiffControl

 

GenerateComponentsPanel()

Protected function

FDiffControl

 

GenerateDefaultsPanel()

Protected function

void

 

GenerateDifferencesList()

Function used to generate the list of differences and the widgets needed to calculate that list

Protected function

FDiffControl

 

GenerateGraphPanel()

Protected function Const

TSharedRef< ...

 

GenerateGraphWidgetForPanel

(
    FDiffPanel& OutDiffPanel
)

Protected function

FDiffControl

 

GenerateMyBlueprintPanel()

Protected function Const

TSharedRef< ...

 

GenerateRevisionInfoWidgetForPanel

(
    TSharedPtr< SWidget >& OutGenerate...,
    const FText& InRevisionText
)

Protected function Const

FName

 

GetCurrentMode()

Protected function

FDiffPanel &

 

GetDiffPanelForNode

(
    UEdGraphNode& Node
)

Get Graph editor associated with this Graph

Protected function Const

FSlateIcon

 

GetLockViewImage()

Get the image to show for the toggle lock option

Protected function Const

FSlateIcon

 

GetSplitViewModeImage()

Get the image to show for the toggle split view mode option

Protected function

void

 

HandleGraphChanged

(
    const FString& GraphPath
)

Event handler that updates the graph view when user selects a new graph

Protected function Const

bool

 

HasNextDiff()

Called to determine whether we have a list of differences to cycle through

Protected function Const

bool

 

HasPrevDiff()

Protected function Const

bool

 

IsGraphDiffNeeded

(
    UEdGraph* InGraph
)

Checks if a graph is valid for diffing

Protected function

void

 

NextDiff()

Called when user clicks button to go to next difference

Public function

void

 

OnBlueprintChanged

(
    UBlueprint* InBlueprint
)

Called when blueprint is modified

Protected function

void

 

OnCloseAssetEditor

(
    UObject* Asset,
    EAssetEditorCloseReason CloseReason
)

Called when editor may need to be closed

Public function

void

 

OnDiffListSelectionChanged

(
    TSharedPtr< struct FDiffResultItem ...
)

Called when user clicks on an entry in the listview of differences

Public function

void

 

OnGraphChanged

(
    FGraphToDiff* Diff
)

Called when a new Graph is clicked on by user

Public function

void

 

OnGraphSelectionChanged

(
    TSharedPtr< FGraphToDiff > Item,
    ESelectInfo::Type SelectionType
)

Called when user clicks on a new graph list item

Protected function Const

void

 

OnModeChanged

(
    const FName& InNewViewMode
)

Protected function

void

 

OnToggleLockView()

User toggles the option to lock the views between the two blueprints

Protected function

void

 

OnToggleSplitViewMode()

User toggles the option to change the split view mode betwwen vertical and horizontal

Protected function

void

 

PrevDiff()

Called when user clicks button to go to prev difference

Protected function

void

 

ResetGraphEditors()

Reset the graph editor, called when user switches graphs to display

Protected function

void

 

SetCurrentMode

(
    FName NewMode
)

Accessor and event handler for toggling between diff view modes (defaults, components, graph view, interface, macro):

Protected function Const

void

 

UpdateTopSectionVisibility

(
    const FName& InNewViewMode
)

Classes

Name

Description

Public struct

FArguments

Protected struct

FDiffControl

Typedefs

Name

Description

FOpenInDefaults

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss