#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]
Added new SKeySelector widget to take care of selecting keys in various situations
Used new widget for Key detail customization and Blueprint Key Pins
TTP#335356 - EDITOR: Input axis dropdown menu not filterable
[CL 2238263 by Matthew Griffin in Main branch]
#TTP 333452 - BLUEPRINTS: Can't rearrange component categories in the my blueprint tab
#TTP 341990 - LIVE: BLUEPRINTS: Cannot drag and drop into subcategories
#Branch UE4
#Proj Engine, Kismet, UnrealEd, GraphEditor
#Change Added UBlueprint::CategorySorting TArray to store an ordered sort list of categories for variables and components.
#Change Modified dropped on category to update the CategorySorting array in the blueprint
#Change Modified FGraphActionNode to store a categorychain for category nodes only.
#Change Modified FGraphActionNode::AddChild to build and hand off the full category chain to new category nodes.
#Change Modified SMyBlueprint::CollectAllActions to reference the sorting array stored in the blueprint, participating actions are added into a mutimap with the respective sort index and the map is sorted before populating the graph action list.
#Change Added an additional pass when the sorted categories are modified to strip any unused categories out of the blueprint and shrink the array as a lazy maintenance.
#Removed FBlueprintEditorUtils::MoveCategoryBeforeCategory
#info I stopped short of marking the blueprint dirty on category sorting changes after initially having this in. the logic behind this is that marking blueprints dirty for minor changes can be annoying, you can always just manually save your changes and its seems a contrived workflow that you would open a blueprint and change the category sort in my blueprint without making any other changes. Easy to change if there is any real objection to it.
#codereview Mike.Beach
[CL 2237060 by Ben Cosh in Main branch]
#ttp 334222 - Regression: BP: In the my blueprints tab, collapsed graphs are incorrectly put into a 'Functions' category when created
[CL 2235799 by Michael Schoell in Main branch]
Submitting a category in the BP details panel will no longer mark the Blueprint as structurally modified if nothing has changed.
#ttp 341162 - Regression: BP: After entering a tooltip for a variable, it gets deselected
[CL 2234979 by Michael Schoell in Main branch]
Slate TPanelChildren, TSlotlessChildren are no longer full-fledged arrays; removed any unused Array API.
Fixed up a lot of improper use cases.
This better encapsulates the action of adding/removing Slate Widgets from the runtime tree as a Slate Core concern.
Alows us to add parent pointers in the future with significantly less effort.
#codereview Wes.Hunt
#codereview Nick.Darnell
#codereview Matt.Kuhlendschmidt
#codereview Justin.Sargent
[CL 2234301 by Nick Atamas in Main branch]
Added new widget overlay system for graph panels, designed to allow more flexibilty than the current brush-only implementation. This requred a small refactor to avoid the assumption that all child widgets of an SNodePanel are SNodes (and because there is no usable RTTI present).
Added index widget overlay to BT graph nodes.
Added flag to parent nodes to allow us to change the appearance of child nodes when another child is hovered.
TTP# 339733 - Editor: Behaviour Tree: Add better execution order indicators
reviewed by Lukasz.Furman
[CL 2226658 by Thomas Sarkanen in Main branch]
Also mass delete and changing categories allowed to functions, macros, and delegates.
#ttp 341290 - BP: Add support for categories for functions in the My Blueprints tab
[CL 2222608 by Michael Schoell in Main branch]
#ttp 332013 - The scroll wheel doesnt work properly in the material editor when a large comment box is created
#ttp 339978 - Graph Editor's Zoom to Cursor is super weird (bad) compared to ortho viewport's (good)
#branch UE4
#proj Editor.GraphEditor
#reviewedby Max.Preussner
[CL 2136463 by Richard TalbotWatkin in Main branch]