Commit Graph

111 Commits

Author SHA1 Message Date
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
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
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
steve robb
7da84c1d1b Replaced UE_NODISCARD with [[nodiscard]].
[CL 30593744 by steve robb in ue5-main branch]
2024-01-12 10:47:04 -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
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
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
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
patrick boutot
8fcc4bc35b MVVM: Add developer option to copy the generated graph from a binding. Move the common for tthe ENtryRow to the MVVMRowHelper.
#jira UE-200604
#rb editor-ui-systems

[CL 30179639 by patrick boutot in ue5-main branch]
2023-12-07 10:20:55 -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
07fb8f1055 MVVM: Setter inside a struct is now supported. PropertyPath like Viewmodel.StructA.StructB.Value. It will use the property setter and requires a blueprint graph.
[CL 29894383 by patrick boutot in ue5-main branch]
2023-11-22 14:33:59 -05:00
patrick boutot
486a1c9515 MVVM: Add function to resolve the PropertyPath.
[REVIEW] editor-ui-systems

[CL 29891950 by patrick boutot in ue5-main branch]
2023-11-22 13:12:26 -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
patrick boutot
bc194e6447 MVVM: Split and recombine structure argument for conversion function parameters and events parameters.
Fix event broadcast when a ViewBinding changes.
Add option to reparents the viewmodel class. Force the list to be repainted when the viewmodel changes. That helps with display names when the viewmodel is renamed and with graphpin that needs to be rebuilt.
#jira UE-164353-ui-systems

[CL 29045441 by patrick boutot in ue5-main branch]
2023-10-24 10:12:34 -04:00
patrick boutot
52e687f13f MVVM: Instead of saving the name of the root widget for self reference, use a different flag. When the Blueprint asset is renamed the root widget is also renamed and self reference do not work anymore. Redirect the previously saved reference.
IsEmpty is renamed to IsValid. It used to be that we wanted to know if there was a source and a path but now the IsEmpty is confusing.
Fix Widget rename for conversion function pins and event pins.
#jira UE-191812
[REVIEW] editor-ui-systems

[CL 28965810 by patrick boutot in ue5-main branch]
2023-10-20 10:45:57 -04:00