Commit Graph

31 Commits

Author SHA1 Message Date
Ben Cosh
3650f14795 This change makes the comment bubbles interactive widgets which allow the user to double click the comment to edit and have extra optional pinning and visibility options.
#UE-2764 - ROCKET: TASK: K2: PUNTABLE: Allow double clicking on comment bubble to edit it.
#Branch UE4
#Proj Engine, UnrealEd, Slate, GraphEditor, BehaviourTreeEditor, EnvironmentQueryEditor, EditorStyle, ReferenceViewer, WorldBrowser

#codereview Nick.Atamas

[CL 2346951 by Ben Cosh in Main branch]
2014-11-03 10:40:57 -05:00
Thomas Sarkanen
22df8494db Fixed crash selecting sub-nodes in Behavior Trees
Crash was caused by the removal of the call to UpdateGraphNode() in SGraphPanel::AddNode(). This meant that sub-nodes didnt get a valid parent panal pointer set.
Allowing nodes to override SetOwner() lets BT sub-nodes correctly recieve their parent.
Also removed previous checks put in place to try to prevent the crash.

#codereview Mieszko.Zielinski

[CL 2332786 by Thomas Sarkanen in Main branch]
2014-10-17 05:01:49 -04:00
Mieszko Zielinski
7a4baf714d Fixed BTEditor crashing on selecting a service node #UE4
#codereview thomas.sarkanen, nick.atamas

[CL 2332267 by Mieszko Zielinski in Main branch]
2014-10-16 18:45:09 -04:00
Wes Hunt
31e2bb00ac Removed a bunch of stuff from Slate standard include, created SlateBasics.h
* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN

[CL 2329610 by Wes Hunt in Main branch]
2014-10-14 22:50:06 -04:00
Phillip Kavan
812df33807 [347817] BP perf - Removed a redundant node construction pass on graph panel updates.
- Cuts update timings roughly in half.
- Fixed issue that this change prevously had introduced: we just needed to ensure that all pin widgets are enabled/disabled when the owning node widget is enabled/disabled.

[CL 2329052 by Phillip Kavan in Main branch]
2014-10-14 15:43:17 -04:00
Michael Noland
4e663a66b1 GraphEditor: Fix some node titles (such as material nodes) having extra blank lines due to \\r injected by the text builder class
[CL 2299010 by Michael Noland in Main branch]
2014-09-15 21:53:46 -04:00
Michael Noland
fa7eb3328f GraphEditor: Make various padding values adjustable to iterate on more compact nodes (WIP / Experimental)
#codereview nick.whiting

[CL 2299009 by Michael Noland in Main branch]
2014-09-15 21:48:46 -04:00
Michael Noland
fff6984e40 GraphEditor: Pad the height of multi-line node titles to be a multiple of the graph snap grid taller than single-line nodes, so the pins will still line up if you place the node N cell snaps above
[CL 2298950 by Michael Noland in Main branch]
2014-09-15 19:53:19 -04:00
Thomas Sarkanen
ff9594e679 Right-click menu operations on Behavior Tree sub-nodes now work
Added new GetNodeUnderMouse() call to SGraphNode. This gives each node type the option of returning child nodes, rather than always operating on the top-level node.

TTP# 346150 - AI: BEHAVIORTREE: Unable to delete decorator and service using right click menu

[CL 2293617 by Thomas Sarkanen in Main branch]
2014-09-11 07:02:40 -04:00
bruce nesbit
d60a5de509 Converted widget .Tag instances for tutorials to use MetaData
[CL 2286138 by bruce nesbit in Main branch]
2014-09-05 07:39:52 -04:00
Mike Beach
1b87f7d3ee Deprecating EdGraphNode's GetTooltip() (in exchange for one that returns FText over FString).
[CL 2283396 by Mike Beach in Main branch]
2014-09-03 18:14:09 -04:00
bruce nesbit
a923c042f5 Revised several graphnode tags for tutorial widgets.
Added tutorial widget support for autofocus (for BP nodes

[CL 2276100 by bruce nesbit in Main branch]
2014-08-28 09:38:24 -04:00
Nick Atamas
057f48f25b Slate: Removed legacy operator() from FArrangedWidgets in favor of operator[]. Fixed uses cases.
[CL 2270701 by Nick Atamas in Main branch]
2014-08-25 12:51:49 -04:00
Olaf Piesche
4e21704ff4 adding nullptr check
[CL 2256743 by Olaf Piesche in Main branch]
2014-08-14 15:50:32 -04:00
Olaf Piesche
a8ce05faa8 Changed FindBlueprintForGraphChecked to FindBlueprintForGraph to prevent asserts from firing
#codereview: bruce.nesbit

[CL 2256706 by Olaf Piesche in Main branch]
2014-08-14 15:49:56 -04:00
bruce nesbit
504df3b51d Fixed Assert in SGraphNode
[CL 2256319 by bruce nesbit in Main branch]
2014-08-14 11:29:36 -04:00
bruce nesbit
768c776bea Tweaked tags
#codereview Thomas.Sarkanen

[CL 2254511 by bruce nesbit in Main branch]
2014-08-13 09:22:55 -04:00
bruce nesbit
6b7fae845b Several tutorial tweaks:
Added some tags to several BP nodes (for use by tutorial)
Added provision to open relevant editor for highlighted widget
Added support for highlighting blueprints nodes

#codereview Thomas.Sarkanen

[CL 2254285 by bruce nesbit in Main branch]
2014-08-13 03:41:45 -04:00
Michael Trepka
5bd6255fde More Clang compile warning fixes
[CL 2237347 by Michael Trepka in Main branch]
2014-07-30 14:51:27 -04:00
Michael Schoell
788de6f349 Removed GetNodeNativeTitle from the editor entirely, now uses BuildSourceString to obtain the source string in a more reliable way.
#codereview Justin.Sargent

[CL 2114371 by Michael Schoell in Main branch]
2014-06-23 15:36:50 -04:00
Martin Wilson
125e54a745 Fix issues with state machine transition creation caused by CL 2109030
#codereview Ben.Cosh

[CL 2109535 by Martin Wilson in Main branch]
2014-06-18 14:17:13 -04:00
Ben Cosh
34f4d6d5fd Modified the dragdrop operations in the blueprint graphs to respect read only attributes set on either graphs or nodes.
#TTP 334976 - BLUEPRINTS: Drag-dropping can still create nodes in read-only graphs (e.g., during PIE or when viewing an anim parent graph)
#Branch UE4
#Proj GraphEditor

#Add added SGraphPanel::IsGraphEditable so nodes and objects placed in the graph can easily determine if the graph is read only.
#Change Modified SGraphPanel::OnDragLeave to restore the tooltip if a FDecoratedDragDropOp has been modified to indicate that the graph is read only.
#Change Modified SGraphPanel::OnDragOver to change the icon on the tooltip to a lined circle if the graph is read only.
#Change Modified SGraphPanel::OnDrop to exit without changes if the graph is read only.
#Change Modified FGraphEditorDragDropAction to present feedback to the user if the drag drop target is invalid. this is activated by setting FGraphEditorDragDropAction::SetDropTargetValid, this just collpases the active icon and displays a lined circle with the same tooltip when set to false.
#Add added SGraphNode::IsNodeEditable to determine if the node is currently editable, based on an evaluation of the IsEditable attribute and the parent graphs IsGraphEditable.
#Change modified SGraphNode::OnDragOver to display a lined circle if the parent graph or the node is read only.
#Change modified SGraphNode::OnDrop to exit without changes if the parent graph or the node is read only.
#Change modified SGraphPin::OnDrop to exit without changes if the parent graph or the owner node is read only.

ReviewedBy Chris.Wood, Nick.Whiting

[CL 2109030 by Ben Cosh in Main branch]
2014-06-18 05:04:59 -04:00
Michael Noland
6046bb9cc9 Blueprints: Add reroute nodes to help organize wires
- Clean up FDragConnection construction and add a factory function in SGraphPin to extend it for some pins
- Clean up arguments to FOnGetContextMenuFor in SGraphPanel
- Various modifications to SGraphPin to permit implementation of wire knots/reroute nodes
#codereview nick.whiting

[CL 2074801 by Michael Noland in Main branch]
2014-05-15 17:34:14 -04:00
Ben Cosh
e90a7467ff Added a movement filter to the node movement call, which now adds any successfully moved nodes. This prevents duplicate movement if two selected comments try to move the same node.
#TTP 314475 - k2: comment boxes within other comment boxes do not move if the outer most box is moved. Also, if two nested comment boxes are moved, the nodes within move 2x as much as they should (video)
#Branch UE4
#Proj GraphEditor, BehaviourTreeEditor

#Add SNodePanel::SNode::FNodeSet typedef for conveniance and clarity
#Change Changed SNodePanel::MoveTo to take an FNodeSet as an exclusion filter on the moved nodes, once moved nodes are appended into this set.

CodeReview Chris.Wood, Nick.Whiting

[CL 2064255 by Ben Cosh in Main branch]
2014-05-06 04:45:44 -04:00
Max Preussner
b63129a60c Slate: Refactored core Slate implementation into SlateCore module in preparation for UMG.
Other Updates:
- The WidgetReflector is now in its own module as well. It will be converted to a plug-in later.
- The Public API of both Slate and SlateCore has largely been reorganized for better discoverabilty. More cleanup work is needed.
- Added a lot of missing API documentation and fixed existing ones. More and better documentation is needed.
- Removed dead code, fixed a couple things I stubled upon, and conformed to coding guidelines (NULL vs nullptr, line breaks, etc.)

Upgrade Notes:
- The Slate Remote Server is currently disabled - will be re-enabled shortly!
- If your module previously had a module dependency to 'Slate', it now also needs a PrivateModuleDependency to 'SlateCore' in its Build.cs file.
- If your module exposes in any of its Public header files types that are now declared in SlateCore, it needs a PublicModuleDependency to 'SlateCore'
- The ToolTip property type on SWidget has changed from SToolTip to IToolTip; change local variables to TSharedPtr<IToolTip> instead of TSharedPtr<SToolTip> where needed
- IToolTip is not a widget. If you need access to the actual widget that represents the tool tip, use IToolTip::AsWidget(); If you need access to the tool tip's content, use IToolTip::GetContentWidget()

Troubleshooting:
- After syncing to this changelist you may have to clean your /Engine/Intermediate/Build/ directory and rebuild your entire project
- If in your project you are getting linker errors for unresolved types that are now declared in SlateCore, you may be missing a dependency to 'SlateCore'
- If in the Engine code you are getting linker errors for unresolved types that are now declared in SlateCore, you may need to rebuild the entire Engine

[CL 2057118 by Max Preussner in Main branch]
2014-04-26 15:07:24 -04:00