Commit Graph

851 Commits

Author SHA1 Message Date
halfdan ingvarsson
a233962e1e Control Rig: Link creation performance improvements
[FYI] benoit.gadreau
#rb sara.schvartzman
#preflight 63ef951f977ceed9151fad2e

[CL 24309702 by halfdan ingvarsson in ue5-main branch]
2023-02-20 02:18:32 -05:00
christopher waters
cad10136bf Removing dependencies on GraphEditor Private by moving GraphActionNode.h to its Public folder.
#preflight 63e159aacf24c08f2c924fb2

[CL 24040429 by christopher waters in ue5-main branch]
2023-02-06 18:06:48 -05:00
christopher waters
fc59298fcd Removing GraphEditor private includes via moving SGraphPinEnum.h to the Public folder.
#preflight 63dd804b1b44ee7cb1851048

[CL 24035653 by christopher waters in ue5-main branch]
2023-02-06 14:21:12 -05:00
Patrick Enfedaque
1ddda77ee7 SGraphNode::PopulateMetaTag : use GetOutermostObject (fixes use case with OFPA Outers)
#jira UE-149481
#rb jeanfrancois.dube, ryan.mangin
#preflight 63c93d868168e8b2529797a8

[CL 23774276 by Patrick Enfedaque in ue5-main branch]
2023-01-19 11:05:15 -05:00
Patrick Boutot
6a2863234b Deprecate arrays from SColorPicker. Memstomp was fixed with 23672712. This CL removed the posibility of creating a new memstomp
#jira UE-173303
#rb daren.cheng
#preflight 63c6034bd040694ab82f3970

[CL 23736262 by Patrick Boutot in ue5-main branch]
2023-01-17 07:24:54 -05:00
Patrick Boutot
6e02de5817 Fix memstomp with color picker. Prepare SColorPicker for API change. Update AssetViewUtilis::PathColors to use FLinearColor instead of shared pointer. The shared pointer was only needed for the SColorPicker.
#jira UE-173303, UE-173454
#review-23672715 23617361,23611673
#rb daren.cheng
#preflight 63c0b12b1a06fc61059f2fa3

[CL 23672712 by Patrick Boutot in ue5-main branch]
2023-01-12 20:33:08 -05:00
phillip kavan
f67d259b19 CIS non-unity fix.
#rb None (trivial)

[CL 23671984 by phillip kavan in ue5-main branch]
2023-01-12 19:09:47 -05:00
phillip kavan
0507c05d34 Extend SGraphActionMenu to allow owners to directly provide the action menu source list at refresh time.
#jira UE-167392
#rb Lauren.Barnes
#preflight 63c075b20225f00e14ab8664

[CL 23671671 by phillip kavan in ue5-main branch]
2023-01-12 18:36:13 -05:00
Andrew Rodham
4ff7bab147 Slate: Initial phase of FVector2D deprecation
- Expanded FDeprecateSlateVector2D to provide structs for parameters, return types and member variables that use FVector2f, while still allowing conversion to/from FVector2d with optional per-module deprecation mechanisms.
  - Many of the high-traffic SlateCore types like FSlateBrush, FGeometry and FSlateLayoutTransform have been converted to use these deprecation mechanisms.
  - Some legacy FGeometry::ToPaintGeometry and MakeChild overloads have been explicitly deprecated since they cause ambiguous overloads with FSlateLayoutTransform if it were to support implicit construction.
  - Deprecated ULocalPlayer::GetPixelBoundingBox and GetPixelPoint to prefer FVector2f for OptionalAllotedSize parameter since this parameter is expected to come from FGeometry
  - Exposed FVector2f members to blueprints

#jira none
#rb Andy.Davidson, Dave.Jones, Vincent.Gauthier, Patrick.Boutot
#preflight 63bc6fd068068a8bd6027c9f

[CL 23631073 by Andrew Rodham in ue5-main branch]
2023-01-10 14:46:43 -05:00
jaime cifuentes
a20a6e0027 Added validation and visual error functionality to AnimNode_SkeletalControlBase, which can be used to check referenced bones and show errors on the AnimGraph nodes that use them (so it is clear if the setup does not work due to a bone missing)
#rb thomas.sarkanen
#jira UE-160111
#preflight 63b85453c927e34482895de4

[CL 23599353 by jaime cifuentes in ue5-main branch]
2023-01-06 12:16:12 -05:00
henrik karlsson
b5164ac775 Fixes to make modules compile with IWYU. We've added to IWYU toolchain so it compiles "orphaned" headers which does not have a owning cpp file. This identified lots of headers that couldn't be compiled by themselves (or if they were to included first)
Change consist of only forward declaration and additional includes

#preflight 63789c1de30d438849c48188
#rb none

[CL 23218412 by henrik karlsson in ue5-main branch]
2022-11-21 03:22:23 -05:00
Dominik Peacock
67b77e36d6 Added replaced hardcoded in SGraphNodeSwitchStatement::IsAddPinButtonVisible with a overridable UK2Node_Switch::SupportsAddPinButton function
Intention: allow us to inherit from UK2Node_Switch and hide the "Add Pin" button

#jira UE-170007
#rb Phillip.Kavan
#preflight 6372321d5368a3230a41e6ec

[CL 23116465 by Dominik Peacock in ue5-main branch]
2022-11-14 07:27:13 -05:00
benjamin jillich
d549c737b8 [UE-169576] Can't insert reroute nodes via double click
#preflight 636ccad97c2b5051905401d1

[CL 23073713 by benjamin jillich in ue5-main branch]
2022-11-10 05:06:04 -05:00
benjamin jillich
a6ef0d5b7f [UE-136096] Relinking transitions in anim graph state machines
[UE-168360] User can create a transition from a state into the entry state

* Relinking multiple transitions (transition nodes at once) when none of the transition nodes is selected.
* Selective relinking in case a subset of the transition nodes on a transitions are selected.
* Special case handling for transitions from entry state (they don't have a transition node connected).
* Drawing circle indicator around the arrow head in case the mouse cursor is approaching the transition.
* Hovering the arrow head of a transition highlights it by filling the circle with solid orange color and turning the arrow black.
* Ending the relink operation in empty space or the entry node will cancel the relink operation.
* Fixed bug that prevents creating new transitions ending in an entry state.

#jira https://jira.it.epicgames.com/browse/UE-136096
#jira https://jira.it.epicgames.com/browse/UE-168360
#preflight 636a169963037c10262bc421

[CL 23025287 by benjamin jillich in ue5-main branch]
2022-11-08 04:09:22 -05:00
Helge Mathee
5867d63b99 Control Rig: Visual representation of casts on connection lines
#rb sara.schvartzman
#jira UE-158186
#preflight https://horde.devtools.epicgames.com/job/63511d888176062ea72f4494

[CL 22653714 by Helge Mathee in ue5-main branch]
2022-10-20 08:55:17 -04:00
lauren barnes
1a3732c1a1 Additional conditions before dereferencing pointers
#rb trivial

[CL 22549587 by lauren barnes in ue5-main branch]
2022-10-15 16:51:07 -04:00
lauren barnes
073e5693ba Check that LastOuter is valid before dereferencing
#rb trivial

[CL 22534910 by lauren barnes in ue5-main branch]
2022-10-14 17:13:52 -04:00
yohann dossantos
59b5769eca -Text font size changes in Text Box (Multy-Line) widget applies only after moving the text widget
It was the initial bug, but while looking at it, I noticed that the MultilineEditableTextBox was containing both a Font via FEditableTextBoxStyle, and another one via FTextBlockStyle, thus being error prone / inconsistent.
In order to fix the underlying issue (in addition to fix the initial bug), I removed the Font from FEditableTextBoxStyle, and moved the FTextBlockStyle from MultilineEditableTextBox to FEditableTextBoxStyle.
It solves the duplication issue and so make it clear where the Font should be set/read from.
However, as the text block style is now embedded in the editable text box style, it cannot be initialized the exact same way, and I had to do some changes to ensure there was no regression, by configuring various FEditableTextBoxStyle in some style files. I also change the default value for TextBlockStyle to better match our default theme.

-Default font is not set for text widgets.
EditableWidget: ensure to have a default font, and to set the style when calling SynchronizeProperties to ensure it reacts directly without having to force a refresh (by moving the widget for instance)

Bonus:
-Move to cpp some private methods that where 'forced' inline (and we were using function pointer on them). It will avoid some noise in public interface and speed up iteration / compile time when playing with them.

#jira UE-96464
#jira UE-137126

[RN] MultilineEditableTextBox was containing both a Font via FEditableTextBoxStyle, and another one via FTextBlockStyle, thus being error prone / inconsistent.The Font from FEditableTextBoxStyle has been removed, and the FTextBlockStyle moved from MultilineEditableTextBox to FEditableTextBoxStyle. It solves the duplication issue and so make it clear where the Font should be set/read from.
However, as the FTextBlockStyle is now embedded in the FEditableTextBoxStyle, it cannot be initialized the exact same way, and you can now configure the FTextBlockStyle of FEditableTextBoxStyle when creating one from scratch, by calling SetTextStyle on it.


Test
- created a Widget blueprint with different editable types combination: multiline or single line, box or no box.
    -Validated that everything was reacting live as expected now.
    -Created a blue print to set the text style and validated it was working.
    -Create data with old version, then open it with updated version to validate that the visual was still the same and deprecation of style working as expected.
-checked different places in the editor using variation of editable text to ensure they were behaving as before (detail view, console command entry, comment on blueprint node).
#preflight 63344b9f110bb3721ef8aa77

[CL 22232366 by yohann dossantos in ue5-main branch]
2022-09-28 17:59:29 -04:00
phillip kavan
befdf280c6 Exclude override flag members from the optional input pin set on MakeStruct nodes.
Overview:
- An "override flag" is an inline toggle-style Boolean edit condition. These are implicitly set to true at runtime within the output struct value if any member that's bound to it is exposed as a visible input pin on a MakeStruct node.
- For context, the Property Editor implicitly sets an override flag to true at edit time when a member that's bound to it is enabled for editing. These members are not otherwise labeled/exposed for direct editing.
- An override flag is meant to signal to a system that the user wishes to use the bound member's value in place of the current value (whatever that may be) when the full struct value is applied. Examples: FPostProcessSettings, FMovieSceneSequencePlaybackSettings, etc.

Previous UX:
- All boolean edit conditions were being treated as override flags on a MakeStruct node.
- Any inline toggle edit condition that did not begin with "bOverride_" or whose suffix otherwise did not match another value member could be exposed as an input on a MakeStruct node.
- Override flags exposed as inputs would always be set to TRUE at runtime regardless of input if it was declared at the top of the struct and if a member value bound to it was also exposed as an input pin.

After this change:
- Only inline toggle edit conditions and legacy struct members that follow the "bOverride_" naming convention will be treated as an override flag on a MakeStruct node.
- Inline toggle edit conditions can no longer be exposed directly as an input on a MakeStruct node. The intent was to bring the MakeStruct node UX closer to parity with the Property Editor UX.

Additional notes:
- Members that follow the legacy "bOverride_" naming convention were already being excluded from the optional input pin set on MakeStruct nodes if another member property name also matched its suffix. These have historically been excluded from ALL optional pin sets that utilize any FOptionalPinManager subtype (regardless of node type), so there was no change here.
- Existing MakeStruct nodes that may have already exposed inline toggle edit condition members as input pins will now orphan those pins on load if connected or if set to a non-default value (true). The "correct" way to set an override flag is by choosing to expose a member that's bound to the override condition as an input.
- Existing BreakStruct nodes are unchanged currently. Meaning, inline edit conditions that don't follow the legacy "bOverride_" convention can still be optionally exposed as an output pin. This UX was preserved as existing Blueprint logic could conceivably rely on the value of an override flag.
- Only one implicit assignment is now emitted for each override flag binding. Previously, we were emitting one assignment statement per bound property, so it could result in redundant assignments to the same flag if more than one property was bound to it.

#jira UE-147873
#rb Ben.Zeigler, Sebastian.Nordgren
#preflight 632c7353c7791417aa87f3bf

[CL 22164359 by phillip kavan in ue5-main branch]
2022-09-23 20:20:58 -04:00
yohann dossantos
adb9f13530 Fix for regional issue (when using ',' as decimal separator) in the numeric and vector input in blueprint.
The regression was introduced a few weeks ago when fixing another bug.
The issue was that conversion functions (between float and string) using the current regionnal settings were introduced in the graph pins, but this kind of conversion is done in a lot of places and does not all support the different type of decimal separator ('.' or ','). So those conversion functions were not supporting the new format of decimal they were receiving.
Also, while the bug is mentionning issue with float, it was existing also for vector.
Bonus: remove a bit of duplicated code.

#jira UE-162993, UE-159512
#rb jamie.dale massimo.tristano patrick.boutot

#test In blueprint/niagara/material, played with node using float, vector, rotator, to ensure that everything was behaving as expected with 2 regional settings (english with '.' decimal separator, french with ',' separator).
Validated that the initial bug (selecting default value with the mouse but not changing it was adding an entry in the undo stack), was still fix.
#preflight 6329be440a4ad044de92d0c9

[CL 22094319 by yohann dossantos in ue5-main branch]
2022-09-20 11:38:57 -04:00
dave jones2
50533cba09 UE-145634 - Delegate fixup doesn't work when bound functions are not in the current BP
Another consequence of using doubles everywhere in Blueprints is that delegate binding can fail if a native delegate signature uses floats. The initial attempt at fixing this would update modify function pins in the current Blueprint to use PC_Float as a subcategory if it was used in a delegate binding. Unfortunately, this doesn't work if we're binding to a function in a different BP class. Attempting to fix up those functions would dirty several Blueprints, and likely confuse users.

The approach that we take here creates a proxy delegate function that matches the underlying signature. The proxy's function graph will then call the original bound function, which implicitly handles any double/float conversions. Additionally, we'll perform a "capture" of any actors that we need to call the bound function on. The compiler will add a new hidden property for the actor class, which we set in the original graph that had the bound delegate. The proxy function graph will then read this property when it calls the original function.

#jira UE-145634
#preflight 63191b1cb069eea9ab594ea2
#rb phillip.kavan

[CL 22087332 by dave jones2 in ue5-main branch]
2022-09-19 22:27:18 -04:00
sebastian nordgren
c4b81d8b75 Multi-line editable text boxes no longer call IPropertyUtilities::RequestRefresh() when adding or removing lines, which caused textboxes created in property row generators to fail to accept input past a single line.
This was a bug exposed because FPropertyRowGenerator previously ignored RequestRefresh() calls entirely, but now does a deferred refresh.

Since this was the only use of it, IEditableTextProperty and all its implementations have also had their RequestRefresh() methods removed.

[REVIEW] [at]jamie.dale, [at]vincent.gauthier
#preflight 632432a2cb23fcbbd8ef5dd2

[CL 22050354 by sebastian nordgren in ue5-main branch]
2022-09-16 11:35:06 -04:00
dave jones2
1b50b70aee UE-160862 - Fix FW-Gameplay miscellaneous module truncation warnings
#jira UE-160862
#preflight 63191b1cb069eea9ab594ea2
#rb andrew.davidson

[CL 21974045 by dave jones2 in ue5-main branch]
2022-09-12 18:16:22 -04:00
bryan sefcik
b93a6cf7ed Pass 1 on editor include fixes:
Removed redundant private include paths from build.cs files.
Fixed include paths to be relative to the private or public folders.
Hid or removed includes that reached into other private module folders.
Updated PublicInclude paths when necessary.

#jira
#preflight 631e283bec5b0c765fc0ffdb

[CL 21960084 by bryan sefcik in ue5-main branch]
2022-09-11 18:33:06 -04:00
jordan hoffmann
b17b74c49d small comment change
#jira trivial
#preflight trivial

[CL 21924417 by jordan hoffmann in ue5-main branch]
2022-09-09 13:58:00 -04:00