Commit Graph

464 Commits

Author SHA1 Message Date
patrick boutot
97f39a99cb MVVM: Fix GetReturn value that returns an invalid property in the MVVM context. There is only one none const out param or a property mark as the return type. That is to prevent unintended mistakes with argument ordering.
#jira UE-200604
#rb yohann.dossantos

[CL 32152299 by patrick boutot in ue5-main branch]
2024-03-11 08:20:13 -04:00
patrick boutot
461b7754a0 MVVM: Set the viewclass's type as explicitly constructed just to prevent implicit errors.
#jira UE-201178
#rb editor-ui-systems

[CL 32126996 by patrick boutot in ue5-main branch]
2024-03-08 14:10:25 -05:00
patrick boutot
7d96f7cae6 MVVM: Add the source needed to run the event. When running the event, early exist if the sources are not valid. Some sources are optional and should not trigger an error. Binding do the same but it's the view that decides when to trigger the binding. Since the event can be trigger from anywhere the event itself has to check.
#jira UE-201178
#rb zahra.nikbakht

[CL 32126833 by patrick boutot in ue5-main branch]
2024-03-08 14:09:12 -05:00
patrick boutot
259878c511 MVVM: Add an option to auto update the view's viewmodel when it's creation context is the global viewmodel collection. The viewmodel can be added/remove/modified from the global viewmodel collection at anytime and it will update the view.
#jira UE-208792
#rb editor-ui-systems

[CL 31991059 by patrick boutot in ue5-main branch]
2024-03-04 12:09:48 -05:00
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
0de814afb9 Add option to filter the resolver to only returns the viewmodel desired class.
#jira UE-207188
#rb yohann.dossantos

[CL 31795278 by patrick boutot in ue5-main branch]
2024-02-25 21:26:40 -05:00
christopher waters
15bede992d Entire engine compiling with -DisableUnity -IncludeHeaders
[CL 31778133 by christopher waters in ue5-main branch]
2024-02-23 16:51:32 -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
patrick boutot
ba94f51c64 Fix build issue 432248 introduced with CL 31643104
#rnx
#jira UE-164353, FORT-711345

[CL 31643701 by patrick boutot in ue5-main branch]
2024-02-20 09:22:01 -05:00
patrick boutot
ed96d450f9 MVVM: Add the UserWidget to the message log. The UserWidget is a link that the user can click on.
#jira UE-164353, FORT-711345
#rb editor-ui-systems

[CL 31643226 by patrick boutot in ue5-main branch]
2024-02-20 09:03:49 -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
hilda cruz
bc54fcf54c [Backout] - CL31610257
[FYI] Patrick.Boutot
#rnx
Original CL Desc
-----------------------------------------------------------------
MVVM: Add the UserWidget to the message log. The UserWidget is a link that the user can click on.
#jira UE-164353
#rb editor-ui-systems

[CL 31637723 by hilda cruz in ue5-main branch]
2024-02-19 22:33:06 -05:00
patrick boutot
82c961e519 MVVM: Add the UserWidget to the message log. The UserWidget is a link that the user can click on.
#jira UE-164353
#rb editor-ui-systems

[CL 31613893 by patrick boutot in ue5-main branch]
2024-02-19 11:53:46 -05:00
patrick boutot
16e9296b30 MVVM: Always assign the viewmodel value to the property value. It's a bug to not assign it when it's null.
#rb daren.cheng

[CL 31587293 by patrick boutot in ue5-main branch]
2024-02-16 18:52:47 -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
vincent gauthier
e5c2f534a8 Localization Warning fixes.
#rnx
#jira UE-207165
#rb vincent.gauthier
[FYI] patrick.boutot

[CL 31566357 by vincent gauthier in ue5-main branch]
2024-02-16 10:59:31 -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
zahra nikbakht
58ee7f4dd0 MVVM: add customization for property paths and conversion functions of bindings in the details panel
#jira UE-205044
#rb patrick.boutot

[CL 31485951 by zahra nikbakht in ue5-main branch]
2024-02-14 14:03:50 -05:00
mikko mononen
f543d8078b PropertyAccessEditor: Added BindingChain to OnCanBindProperty.
[CL 31465565 by mikko mononen in ue5-main branch]
2024-02-14 07:07:33 -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