29 Commits

Author SHA1 Message Date
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
32891330a9 MVVM: Change the description when there is no viewmodel or bindings or events. Change the condition for when adding the view to the Generated UserWidget.
#jira UE-201683

[CL 30049922 by patrick boutot in ue5-main branch]
2023-12-01 14:57:43 -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
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
95bdea3abd MVVM: Mark autogenerated functions transient when requested. That can create function to be null when loaded. We want to execute the function and compile the functions in the editor but we want to recreate them on every reload.
#jira UE-164353

[CL 28973846 by patrick boutot in ue5-main branch]
2023-10-20 14:23:38 -04:00
byron cornejo
5cf5c7226c Removing blueprint Callable and Blueprint Event flag from OnRepFunction. Clears Class children while handling compilation finish.
[CL 27798402 by byron cornejo in ue5-main branch]
2023-09-12 13:22:15 -04:00
patrick boutot
a0960c2081 MVVM: Update the InstanceViewModel to be more generic. Force a compilation when the widget loads, in case something changed in the cpp. Only rebuild the class when needed. Change the default name of the generated viewmodel.
#rb editor-ui-systems

[CL 27701308 by patrick boutot in ue5-main branch]
2023-09-07 22:17:40 -04:00
patrick boutot
7055c5a8d6 MVVM: Add instanced viewmodel. A way to create your viewmodel inside the view. The viewmodel is private and can only be used by the view. The feature is enabled by a setting. Change how the customization for the viewmodel context hide properties. Add a new submenu for the viewmodel panel.
#rb editor-ui-systems

[CL 27409246 by patrick boutot in ue5-main branch]
2023-08-28 08:59:49 -04:00
patrick boutot
30997ca639 MVVM: Reuse the same library when generating the view class. It helps the cook make smaller diff packages when the cook is deterministic.
[REVIEW] editor-ui-systems

[CL 27359733 by patrick boutot in ue5-main branch]
2023-08-24 17:34:17 -04:00
patrick boutot
b26e2d88d4 MVVM: Backend for binding event. Didn't use the ComponentDelegateBinding because of initialization order is different. Create a new entry in the ViewClass and reuse the binding library to find the delegate property. At editor time, a BP function is gnerated, similar to Complex Conversion function. When the event is broadcast at runtim, the BP function is executed.
The generated function can assign a property value on a viewmodel, a widget or any property of the UserWidget.
#jira UE-166284
#rb editor-ui-systems

[CL 27236611 by patrick boutot in ue5-main branch]
2023-08-21 08:46:45 -04:00
patrick boutot
35862acde5 MVVM: If we are not allowed to add the view, remove all the generated functions added by the view.
#rb none
#jira UE-130879

[CL 26883465 by patrick boutot in ue5-main branch]
2023-08-07 11:10:21 -04:00
patrick boutot
b5cd4278b5 MVVM: Fix conversion function with multiples input paths.
Bindings will only be executed once at initialization. The bug happend when more than once source can activate the same binding.
Binding can now be OneWay if at least one argument is a FieldNotify. Otherwise it needs to be a OneTime.
Binding that has hardcoded value, no paths, are now supported.
#rb vincent.gauthier

[CL 26846320 by patrick boutot in ue5-main branch]
2023-08-04 10:49:38 -04:00
patrick boutot
b8b7b1e074 MVVM: Add option to generate conversion graph when compiling and not saved in the packages.
Useful when graph cannot be saved.
#jira UE-130879

[CL 26614927 by patrick boutot in ue5-main branch]
2023-07-26 14:04:59 -04:00
patrick boutot
3bf46e8ebb MVVM: Add a message at compile time when 2 views will be use at runtime.
#preflight 646e63f84422ba05f4286e65

[CL 25635282 by patrick boutot in ue5-main branch]
2023-05-25 19:34:21 -04:00
patrick boutot
2fba638de9 MVVM: Do not add the view if there is no bindings.
#preflight 6464e2252d446eac96c956df

[CL 25508628 by patrick boutot in ue5-main branch]
2023-05-17 11:52:48 -04:00
danny couture
2959cc678f Temporary stopgap to prevent blueprint compilation from ALT in editor from trying to preload objects
#rnx
#rb Francis.Hurteau
#preflight trivial

[CL 25240075 by danny couture in ue5-main branch]
2023-04-28 16:33:48 -04:00
patrick boutot
6952a33198 Gather search data for the BlueprintExtension. Used by the FindInBlueprint system.
#rb phillip.kavan, dan.oconnor
#preflight 643ee91b9566b614505c1b29

[CL 25104434 by patrick boutot in ue5-main branch]
2023-04-19 08:26:32 -04:00
patrick boutot
06a212dc01 MVVM: Add option to not add the compiled result to the final GeneratedClass. Used for property validation.
[CL 24884489 by patrick boutot in ue5-main branch]
2023-04-01 02:41:19 -04:00
zahra nikbakht
f6c07441c6 Disable/enable context filtering in MVVM binding creation through project settings or a temporary checkbox
#preflight 641c89d9a86ae7cbcce4dae3
#rb patrick.boutot
#jira UE-180197

[CL 24766690 by zahra nikbakht in ue5-main branch]
2023-03-23 15:27:54 -04:00
zahra nikbakht
e206fdedb6 - Move the list of messages (errors, warnings, info) from the bindings themselves to the owning viewmodel.
- Add a border on each MVVM binding row in the list view of bindings that changes color to red/yellow if there is any error/warning for that binding
- detect if a property is bound to both a MVVM binding and a legacy binding at the same time and add a warning for it.
#jira UE-170983
#jira UE-170403
#rb patrick.boutot, vincent.gauthier
#preflight 6414c614ca2afe3ee6b1c7c8

[CL 24695764 by zahra nikbakht in ue5-main branch]
2023-03-17 16:33:42 -04:00
henrik karlsson
2f78497e67 [Engine/Plugins]
* Updated private files with IWYU for all plugins which had 3 or less changes made in ue5 main since last integration to fn

#preflight 63bf8d8b577437afe607dc72
#rb none

[CL 23659643 by henrik karlsson in ue5-main branch]
2023-01-12 01:48:34 -05:00
sebastian nordgren
6c38a45a61 MVVM - Blueprint view is now transactional, which causes undo to function in many cases that did not work before.
#jira UE-166281
[REVIEW] [at]patrick.boutot
#rnx
#preflight 63974ffd2960b7322075bf84

[CL 23499759 by sebastian nordgren in ue5-main branch]
2022-12-13 18:12:47 -05:00
bryan sefcik
50d4fac9e0 Updated ../Engine/Plugins/... to inline gen.cpp files
Before:
3548 unity files
Total CPU Time: 47343.578125 s
Total time in Parallel executor: 494.60 seconds

After:
3445 unity files
Total CPU Time: 46044.671875 s
Total time in Parallel executor: 468.51 seconds

#jira
#preflight 63336159b20e73a098b7f24f

[CL 22218213 by bryan sefcik in ue5-main branch]
2022-09-28 01:06:15 -04:00