#TTP 312311 - ROCKET: TASK: Add a "Documentation Node"
#Branch UE4
#Proj BlueprintGraph, EdGraph, Kismet, KismetCompiler, GraphEditor, Documentation, EditorStyle
#Change Updated UEdGraphSchema to include an interface call to retrieve an FEdGraphSchemaAction to create documentation nodes. At this point only the K2 interfaces implement this.
#Change Updated UEdGraphSchema_K2 to include a call to retrieve an FEdGraphSchemaAction to create documentation nodes. This is used to add the actions to the blueprint palette and context menus.
#Add Added FEdGraphSchemaAction_K2AddDocumentation in EdGraphSchema_K2_Actions.h/cpp to implement the calls in UEdGraphSchema to create documenation nodes from palette and context menus.
#Change Modified FK2ActionMenuBuilder to provide a static call to create a documentation action in the same style as the comment. Additionally added calls to FK2ActionMenuBuilder::GetPaletteActions and FK2ActionMenuBuilder::GetContextAllowedNodeTypes to call this to add entries in the palette and context menus.
#Add Added a new Brush GraphEditor.Documentation_16x, for the context menu icon in SlateEditorStyle.cpp.
#Change Modified GetPaletteItemIcon in SBlueprintPalette.cpp to return the new icon for the DocumentationNode
#Change Modified FKismetCompilerContext::IsNodePure to include the Documentaton node in the drop through ensure test to prevent asserts on compling if a documentation node is present.
#Change Added an entry for Documentation node in FNodeFactory::CreateNodeWidget.
#Change Modified IDocumentationPage interface to provide the ability to provide a TextWrapAt Attribute so this can be set before creating excerpt content if desired.
#Change Modified the UDNParser to control text wrap at values in the created widgets using a float Attribute WrapAt, Added a set call in the DocumentationPage and made the default behaviour mimic the code it replaced.
#Add Added the class UEdGraphNode_Documentation implemented in EdGraphNode_Documentation.h and UEdGraph.cpp, this is the UObject implementation for the documentation nodes.
#Add Added the class SGraphNodeDocumentation as the GraphPanel implementation of the EdGraphNode_Documentation.
#Change Moved the resizable code from SGraphNodeComment into a SGraphNodeResizable and changed SGraphNodeComment and SGraphNodeDocumentation inherit from it to avoid duplicating code.
#Change Added a documentation specific details customisation so the excerpts can be displayed as combo button.
#Change Added FBlueprintDocumentationDetails into BlueprintDetailsCustomization.h/cpp to handle the user interaction with the documentation node in the BP Editor.
ReviewedBy Chris.Wood, Mike.Beach
[CL 2247425 by Ben Cosh in Main branch]
#TTP 337860 - Expose flagged BlueprintEvents as buttons in the Details panel that can be run in-editor
#Branch UE4
#Proj Engine, DetailsCustomization, Kismet, Kismetcompiler, BlueprintGraph
#Change Added FName FBlueprintMetadata::MD_CallInEditor as "CallInEditor"
#Change Added bool UProperty UK2Node_CustomEvent::bCallInEditor to enable call in editor states to be serialised with UK2Node_CustomEvent
#Change Modified FBlueprintGraphActionDetails::CustomizeDetails to add support for the CallInEditor tickbox.
#Change Modified UK2Node_CustomEvent::GetPaletteIcon to return a different node icon when call in editor is enabled.
#Added new icon GraphEditor.CallInEditorEvent_16x for the node corner icons and the blutility combo menu.
#Change Added FKismetUserDeclaredFunctionMetadata::bCallInEditorProperty to help propagate call in editor setting from customevent node's to compiler generated event function entry point
#Change Modified FKismetCompilerContext::CreateFunctionStubForEvent to check customevent node bCallInEditor properties and mark the generated function entry nodes as CallInEditor. This was required as a transitional phase to so the setting could be observed later during meta data generation.
#Change Modified FKismetCompilerContext::FinishCompilingFunction to check function entry points for call in editor flags in the attached FKismetUserDeclaredFunctionMetadata and add CallInEditor meta data if present.
#Change Modified AActor::ProcessEvent to allow events to be processed by the actor instance if the Function has CallInEditor meta data set to true
#Change Added a series of functions to FActorDetails to conditionally add a blutility category and a combo list ( displaying the available blutility functions from the current actor blueprint ) and a button to call the selected function on the actor selection.
ReviewedBy Chris.Wood
#codereview Nick.Whiting
[CL 2230263 by Ben Cosh in Main branch]
#ttp 340697 - BLUEPRINTS: Macro libraries should not be used as BP variable types.
#branch UE4
#proj Editor.BlueprintGraph, Editor.UnrealEd
#add Created new method FKismetEditorUtilities::IsClassABlueprintMacroLibrary()
#add Made call to FKismetEditorUtilities::IsClassABlueprintMacroLibrary() in UEdGraphSchema_K2::IsAllowableBlueprintVariableType(), to filter macro library classes out of the list.
#reviewedby Chris.Wood, Max.Preussner
[CL 2217232 by Richard TalbotWatkin in Main branch]
Will display an error notification on the editable text box when attempting to change a function's local variable or parameter to be the same.
#ttp 336502 - BP: Local variables can have the same name as function parameters and returns, which causes a duplicate property error.
[CL 2192140 by Michael Schoell in Main branch]
#add Added a checkbox to deprecate a Blueprint, the Blueprint will no longer be placeable, children classes can no longer be made of it (or any of it's children) and no new variables can be designated in Blueprints of the BP type.
#change AddSubMenu will now take the tooltip as an FText attribute so the tooltip can be hooked up to a function
#ttp 304153 - LICENSEE: K2: Add support for deprecating a blueprint class
[CL 2181415 by Michael Schoell in Main branch]