Commit Graph

837 Commits

Author SHA1 Message Date
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
jordan hoffmann
b504d83505 [BugFix] //UE5/Main - Build Engine Localization - GraphDiffControl.cpp Warning: Text conflict from LOCTEXT macro for namespace and key
#jira UE-163377
#rb trivial
#preflight trivial

[CL 21924061 by jordan hoffmann in ue5-main branch]
2022-09-09 13:28:49 -04:00
Robert Millar
1313cc865d FNames containing asset paths are deprecated. FSoftObjectPath or FTopLevelAssetPath should be used instead.
Fixups for class features in the editor.

#jira UE-161932
#rb ben.zeigler
#preflight 631a55942b7fe03eb6c27d74

[CL 21903450 by Robert Millar in ue5-main branch]
2022-09-08 17:06:00 -04:00
jordan hoffmann
43ac7c9adc [BugFix] Blueprints incorrectly diff cleanly when you link a pin to a different pin on the same node
#jira UE-162933
#preflight 631a24c4980179553ed7f7cb

[CL 21897560 by jordan hoffmann in ue5-main branch]
2022-09-08 13:35:34 -04:00
Robert Millar
d2a8b279ca FNames containing asset paths are deprecated. FSoftObjectPath or FTopLevelAssetPath should be used instead.
Fixups for blueprints in editor.

#jira UE-161932
#rb ben.zeigler
#preflight 631820e4d135b61bc59b9981

[CL 21841686 by Robert Millar in ue5-main branch]
2022-09-07 01:06:47 -04:00
bryan sefcik
925161d3e2 Another IWYU pass on Engine/Source/Editor/...
#jira

[CL 21716486 by bryan sefcik in ue5-main branch]
2022-08-30 23:04:40 -04:00
bryan sefcik
0837230669 Ran IWYU again on half of the Engine/Source/Editor/... source files.
#jira

[CL 21716414 by bryan sefcik in ue5-main branch]
2022-08-30 23:03:03 -04:00
bryan sefcik
8cc129f2b6 IWYU Pass 1 - Engine/Source/Editor/...
#jira
#preflight 6306736ac85b7fef22be7751

[CL 21558583 by bryan sefcik in ue5-main branch]
2022-08-24 22:45:13 -04:00
massimo tristano
a2934e54d2 Fix SGraphPinNum bug causing value not to change in the Niagara editor when the user enters a new value.
#rb kevin.ortegren
#preflight 63034cf8c00af5e294de9df3

[CL 21481129 by massimo tristano in ue5-main branch]
2022-08-22 05:37:51 -04:00
massimo tristano
c333401cd5 Re-introduced 21440571 after fixing a crash opening some Blueprints. From 21440571:
Fixed Scalar Parameter and Vector node to avoid triggering a component value change transaction if the user only clicks on the textbox (without effectively changing the value).

Currently when the user clicks on a Scalar or Vector parameter text box and then simply deselects the node, a data change is erroneously detected and a transaction is pushed onto the Undo stack. This change fixes the logic that determines whether the value is actually changed, removing these spurious and redundant transactions.

#rb sebastian.nordgren
#jira UE-159512
#preflight 62ff9986f7404b55a326ce08

[CL 21457315 by massimo tristano in ue5-main branch]
2022-08-19 10:40:49 -04:00
ben hoffman
3cd99fcd75 Revert 21442104 because it crashes a blueprint when you open it.
#fyi massimo.tristano
#preflight skip
#rnx
#jira UE-161349

[CL 21448370 by ben hoffman in ue5-main branch]
2022-08-18 15:31:18 -04:00
massimo tristano
1f8d25197d Fixed Scalar Parameter and Vector node to avoid triggering a component value change transaction if the user only clicks on the textbox (without effectively changing the value).
Currently when the user clicks on a Scalar or Vector parameter text box and then simply deselects the node, a data change is erroneously detected and a transaction is pushed onto the Undo stack. This change fixes the logic that determines whether the value is actually changed, removing these spurious and redundant transactions.

#rb sebastian.nordgren
#jira UE-159512
#preflight 62fe4890200ff87e07bddf46

[CL 21442104 by massimo tristano in ue5-main branch]
2022-08-18 10:39:09 -04:00
massimo tristano
80eb789b44 Fixed assertion crash occurring when mouse-overing collapsed material attributes.
Crash occured while generating preview graph displayed in tooltip.

#jira UE-159508
#rb jason.nadro
#preflight 62f3c0e823003b62a328216c

[CL 21318060 by massimo tristano in ue5-main branch]
2022-08-10 10:34:41 -04:00
Rob Gay
2ae22b2f87 Make Graph Knot API public so it can be extended
#preflight 62f186fe086f90bbc47f1c70

[CL 21276599 by Rob Gay in ue5-main branch]
2022-08-08 18:06:03 -04:00
jordan hoffmann
6d24db7929 [Bug Fix] Crash when diffing a graph that was deleted
#ROBOMERGE-OWNER: jordan.hoffmann
#ROBOMERGE-AUTHOR: jordan.hoffmann
#ROBOMERGE-SOURCE: CL 21211920 via CL 21211921 via CL 21212105
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21213016 by jordan hoffmann in ue5-main branch]
2022-07-21 20:42:14 -04:00