Commit Graph

237 Commits

Author SHA1 Message Date
patrick boutot
15c0d7f642 MVVM: Add Conversion Function Library.
The functions are collected when on module load and when the BP class compiles. A function can be a Node. The BP registry do not collect all function types, like opcode functions. This library collects K2_Node and all function types supported by MVVM.
#jira UE-201164, UE-190393
#rb daren.cheng

[CL 31987162 by patrick boutot in ue5-main branch]
2024-03-04 09:12:29 -05:00
zahra nikbakht
29a0cc9b12 MVVM: fix bindings not fired at initialization if they have complex conversion functions which use the same source for different arguments.
#jira UE-208479
#rb yohann.dossantos

[CL 31926973 by zahra nikbakht in ue5-main branch]
2024-02-29 17:50:20 -05:00
patrick boutot
a5c08ccaab UMG: Add the NamedSlot and the name of the viewmodel to the asset registry.
#rb yohann.dossantos

[CL 31766242 by patrick boutot in ue5-main branch]
2024-02-23 11:51:20 -05:00
patrick boutot
001f53a277 MVVM: Fix false positive warning. It is valid for a backward binding to set the same property but it is not valid for a forward binding. Forward binding executes on initialization. The order of initialization is not deterministic and would lead to miss use.
#rb editor-ui-systems

[CL 31747057 by patrick boutot in ue5-main branch]
2024-02-22 20:02:06 -05:00
bob tellez
07aaf3ea51 [Backout] - CL31568442
[FYI] Patrick.Boutot
Original CL Desc
-----------------------------------------------------------------
MVVM: Enable compilation warning when there are 2 bindings trying to change the same value. Since the order is not configurable that can lead to binding executing in different orders and do run in an unexpected behavior.
#rb editor-ui-systems

[CL 31638824 by bob tellez in ue5-main branch]
2024-02-20 00:06:07 -05:00
patrick boutot
aaa9e3684a MVVM: Enable compilation warning when there are 2 bindings trying to change the same value. Since the order is not configurable that can lead to binding executing in different orders and do run in an unexpected behavior.
#rb editor-ui-systems

[CL 31571515 by patrick boutot in ue5-main branch]
2024-02-16 13:12:00 -05:00
patrick boutot
bb3bdc747f MVVM: Change the source sort algo to support destination.
At initalization, one at the time, the source initialize and then execute the bindings. Binding can use a source a soon to be initialize source and a binding can set the value of a source. Both cases need to be taken into account when sorting the sources.
When initializing, the binding can trigger a FieldNotify of another initialized source that can trigger that same source that try to initialize. Add a message if that occurs.
#rb christian.savoie

[CL 31538433 by patrick boutot in ue5-main branch]
2024-02-15 17:11:33 -05:00
dave jones2
a2073bc6c5 UE-206013 - StrongObjectPtr Crash running with -asyncloadingthread
Early runs of async loading in the editor were tripping the TStrongObjectPtr's check that it can only be created on the game thread. The was caused by the FMVVMViewBlueprintCompiler::BlueprintView field. Since we're dealing with a non-UObject here, we typically introduce the object reference either by reflecting the struct, or forcing it to inherit from FGCObject.

However, we can also take advantage of the ownership structure. Both the FMVVMViewBlueprintCompiler and UMVVMBlueprintView are owned by UMVVMWidgetBlueprintExtension_View. Technically, FMVVMViewBlueprintCompiler doesn't need a reference to UMVVMBlueprintView if it's already owned by the extension.

#jira UE-206013
#rb Patrick.Boutot, Francis.Hurteau
#rnx

[CL 31496292 by dave jones2 in ue5-main branch]
2024-02-14 17:27:16 -05:00
patrick boutot
4f6580c630 MVVM: Fix ensure that warn when there is no delayed bindings to execute. Fix ExecuteAtInit flag when one of the field is not a FieldNotify. The ensure was a false positif and the flag was not removed correctly on the second to last source. Update the ToString method to better identify compiler problems in the future.
#rb editor-ui-systems

[CL 31446359 by patrick boutot in ue5-main branch]
2024-02-13 16:20:41 -05:00
patrick boutot
b426a78a9d Generated widget properties are private unless specified "as variable" in the DetailView. This is to prevent mistakes and to not break encapsulation.
#jira UE-194167
#rb editor-ui-systems
#tests full cook

[CL 31381720 by patrick boutot in ue5-main branch]
2024-02-12 10:10:08 -05:00
patrick boutot
2e9a983dfa MVVM: Function in another widget was not correctly tested for availability. Prevent crash when the availability test fails.
#jira UE-204712
#rb editor-ui-systems

[CL 31303323 by patrick boutot in ue5-main branch]
2024-02-08 15:56:09 -05:00
patrick boutot
98f68d2bf9 MVVM: Fix loading pin values. The TrySetDefault reset the other option so the order was important. Introduced with CL30592781.
#jira UE-205197
#rb editor-ui-systems

[CL 31002167 by patrick boutot in ue5-main branch]
2024-01-30 07:41:13 -05:00
zahra nikbakht
d9a7d6d2d3 MVVM: fix field selector permission setting not working.
Add to the list of disallowed fields.
#rb Patrick.Boutot

[CL 30887449 by zahra nikbakht in ue5-main branch]
2024-01-25 10:53:19 -05:00
zahra nikbakht
80badbd5ce MVVM: allow events to bind to functions with any number of parameters.
#jira UE-199291
#rb Patrick.Boutot

[CL 30825631 by zahra nikbakht in ue5-main branch]
2024-01-23 19:17:27 -05:00
zahra nikbakht
1692e62b5c MVVM: allow viewmodel values to be edited on nested userwidgets.
Expose viewmodels whose creation type is "Create Instance" in the details panel of nested userwidgets and allow editing them independently.
#jira UE-185718
#rb christian.savoie, jared.joyal, Patrick.Boutot

[CL 30717868 by zahra nikbakht in ue5-main branch]
2024-01-19 11:53:42 -05:00
patrick boutot
146c084883 MVVM: Enable K2Node as conversion functions.
#jira UE-190393
#rb editor-ui-systems

[CL 30592808 by patrick boutot in ue5-main branch]
2024-01-12 10:07:58 -05:00
patrick boutot
1293c58646 MVVM: Add PinLinedValue. Use as a variant to easily set the propertypath, function or node of a pin.
#jira UE-200604

[CL 30496334 by patrick boutot in ue5-main branch]
2024-01-08 20:36:10 -05:00
patrick boutot
21dc15a95c MVVM: Update the shared flag correctly after. Issue introduced with CL 30042195.
#rb editor-ui-systems

[CL 30496282 by patrick boutot in ue5-main branch]
2024-01-08 20:31:39 -05:00
patrick boutot
9974aef4a7 MVVM: Add MVVMBlueprintFunctionReference. A struct that can be a K2Node or a UFunction.
#jira UE-200604
#rb editor-ui-systems

[CL 30440347 by patrick boutot in ue5-main branch]
2023-12-22 09:43:14 -05:00
patrick boutot
18bcac7caf MVVM: Fix bad deprecation for PinName. Confused IsValid with IsNone.
#jira UE-200604
#rb patrick.boutot

[CL 30433048 by patrick boutot in ue5-main branch]
2023-12-21 16:18:43 -05:00
patrick boutot
e50e0961e8 MVVM: Rename the property introduced with CL 30396310. It was in conflict with an old property that got removed and was not deprecated properly. Old data tries to load the old property with the bad type.
#rb none

[CL 30402116 by patrick boutot in ue5-main branch]
2023-12-19 15:38:12 -05:00
patrick boutot
abacb37ea4 MVVM: Update the pin from a name to an array of name. That will allow the pin to be used in converion function inside conversion function.
#jira UE-200604
#rb editor-ui-systems

[CL 30396321 by patrick boutot in ue5-main branch]
2023-12-19 11:31:33 -05:00
zahra nikbakht
07b5dae4ec [Backout] - CL30376074
[FYI] zahra.nikbakht
Original CL Desc
-----------------------------------------------------------------
MVVM: allow viewmodel values to be edited on nested userwidgets.
Expose viewmodels whose creation type is "Create Instance" in the details panel of nested userwidgets and allow editing them independently.
#jira UE-185718
#rb Patrick.Boutot

#virtualized

[CL 30378342 by zahra nikbakht in ue5-main branch]
2023-12-18 12:37:49 -05:00
zahra nikbakht
cc8d9c4d96 MVVM: allow viewmodel values to be edited on nested userwidgets.
Expose viewmodels whose creation type is "Create Instance" in the details panel of nested userwidgets and allow editing them independently.
#jira UE-185718
#rb Patrick.Boutot

#virtualized

[CL 30376075 by zahra nikbakht in ue5-main branch]
2023-12-18 10:38:20 -05:00
matt peters
64658cf6ae GetAssetRegistryTags deprecation: Make the old GetAssetRegistryTags and related functions deprecated.
Upgrade the overrides and callsites in all of Epic's code.
Every class that can be subclassed by licensees that has its override change needs to keep the old version of the function as deprecated. Otherwise subclasses that call Super::GetAssetRegistryTags will have a compile error instead of a deprecation warning.
Several classes had their own extension method for GetAssetRegistryTags being passed on to user data classes. Updated all of those to take FAssetRegistryTagsContext just like GetAssetRegistryTags does.
#rnx
#rb Francis.Hurteau

[CL 30224166 by matt peters in ue5-main branch]
2023-12-08 21:45:21 -05:00