97 Commits

Author SHA1 Message Date
robert millar
b4fb6f46a7 Move static class member definition into translation unit.
[CL 32499890 by robert millar in 5.4 branch]
2024-03-26 02:40:51 -04:00
zahra nikbakht
7c51e9521d MVVM: support view extensions for injecting MVVM-specific data to widgets.
#patrick.boutot

[CL 32499841 by zahra nikbakht in 5.4 branch]
2024-03-26 02:39:40 -04:00
patrick boutot
aa4f04528c 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 32492751 by patrick boutot in 5.4 branch]
2024-03-25 19:44:50 -04:00
bob tellez
da3e047376 [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 31638804 by bob tellez in 5.4 branch]
2024-02-20 00:03:36 -05:00
patrick boutot
0ca96554ae 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 31568496 by patrick boutot in 5.4 branch]
2024-02-16 11:53:13 -05:00
patrick boutot
cc02cd369e 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 31533842 by patrick boutot in 5.4 branch]
2024-02-15 15:40:59 -05:00
patrick boutot
55134354f5 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 31443637 by patrick boutot in 5.4 branch]
2024-02-13 15:28:15 -05:00
patrick boutot
40f2c425a8 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 31381652 by patrick boutot in 5.4 branch]
2024-02-12 10:07:57 -05:00
patrick boutot
17b4ca66e0 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 31296568 by patrick boutot in 5.4 branch]
2024-02-08 13:38:56 -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
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
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
patrick boutot
fa42c9b609 MVVM: Rework for the view runtime data. The new format allows for better error detection and new features in progress. The view owns the bindings and events. The source has a list of the bindings. That saves runtime of memory, the delegate doesn't store the binding id. All bindings, events, sources are now sorted for better incremental build performance.
Add a different "key" structures to prevent mistakes with indexes.
Unregister the delay bindings when the source is released.
Store the FieldId, in the source itself. That reduces the amount of work when loading the view.
Add option to delay the events initialization (like we do for bindings).
The binding to evaluate "long path" view models are now separated from regular bindings.
#jira UE-194167
#rb editor-ui-systems

[CL 30042205 by patrick boutot in ue5-main branch]
2023-12-01 11:13:35 -05:00
patrick boutot
158eed9d9c MVVM: Enable setter flag by default. Add flag to generate a public getter. Change the display logic for the optional flag and the setter flag.
#rb editor-ui-systems

[CL 30041317 by patrick boutot in ue5-main branch]
2023-12-01 10:43:39 -05:00
patrick boutot
205c1853b9 MVVM: Event do not save the pin id. The graph is rebuilt and the id is new everytime. Warn the user, at compile, when a pin is orphaned. Fix event's setter on the UserWidget (the index is -1 because of that).
#rb editor-ui-systems
#jira UE-130879

[CL 30039594 by patrick boutot in ue5-main branch]
2023-12-01 09:37:20 -05:00
patrick boutot
d145d441ec Fix localization waring initroduced with CL 29815759
#issue 399399
#rb none

[CL 29839871 by patrick boutot in ue5-main branch]
2023-11-20 08:10:01 -05:00
patrick boutot
3e38401639 MVVM: Backout change that make widget private when not enabled via the "is variable". Assets need to be fixed before reenabling.
#rb trivial

[CL 29818028 by patrick boutot in ue5-main branch]
2023-11-17 15:09:55 -05:00
patrick boutot
2ab80be567 MVVM: Big rework of the MVVM view compiler. It add supports for conversion function to go from complex to simple. Supports pin split on simple conversion function. Add ability to to support setter function with more than one argument. Build the list of all the sources.
#jira UE-200602, UE-200602, UE-200602, UE-200602, UE-200602
#rb editor-ui-systems

[CL 29815789 by patrick boutot in ue5-main branch]
2023-11-17 14:09:15 -05:00
bob tellez
f98456e469 [Backout] - CL29797661
[FYI] Patrick.Boutot
Original CL Desc
-----------------------------------------------------------------
MVVM: Big rework of the MVVM view compiler. It add supports for conversion function to go from complex to simple. Supports pin split on simple conversion function. Add ability to to support setter function with more than one argument. Build the list of all the sources.
#jira UE-200602, UE-200602, UE-200602, UE-200602, UE-200602
#rb editor-ui-systems

[CL 29801739 by bob tellez in ue5-main branch]
2023-11-16 23:04:14 -05:00
patrick boutot
c362983f9f MVVM: Big rework of the MVVM view compiler. It add supports for conversion function to go from complex to simple. Supports pin split on simple conversion function. Add ability to to support setter function with more than one argument. Build the list of all the sources.
#jira UE-200602, UE-200602, UE-200602, UE-200602, UE-200602
#rb editor-ui-systems

[CL 29797678 by patrick boutot in ue5-main branch]
2023-11-16 20:11:58 -05:00
patrick boutot
0bb197807d MVVM: Test if a field is allowed base on the path, not only on the field owner. That allow to have a Widget's property allowed on a child widget but not on the base widget.
#rb editor-ui-systems

[CL 29753638 by patrick boutot in ue5-main branch]
2023-11-15 13:51:32 -05:00