Commit Graph

35 Commits

Author SHA1 Message Date
alain lafleur
1b905ebe01 Merging
//Fortnite/Main/...
to //Fortnite/Dev-FN-32/...

Data driven condition bindings

Authoring and compilation of the new type is hidden behind a project setting.
Fix crash when changing hooked event and trying to edit conversion function parameters.
Fix issue with events valid source check node being purged from the graph upon regenerating connections in the wrapper graph.

Fixes FORT-768257

#tests Tested in editor and in game. Tried with widget property bindings, tried with vm bindings. Verified with multiple bindings to ensure we only execute when it's the condition property that is modified. Ran with cooked version. Tested in standalone and pie.
#rnx
#rb Vincent.Gauthier

[CL 36754418 by alain lafleur in 5.5 branch]
2024-10-01 18:59:25 -04:00
patrick boutot
2e269042c7 MVVM: Add Callback on the WidgetBlueprintGeneratedClass to collect save override. The generated function are transient in editor but save during the cooking process.
#rb Jamie.Dale, Zahra.Nikbakht, Vincent.Gauthier

[CL 35115660 by patrick boutot in ue5-main branch]
2024-07-26 14:43:34 -04:00
kevin macaulayvacher
276d09f6df Remove all simple usage of REN_ForceNoResetLoaders from the codebase since the flag has been deprecated and currently does nothing. Simple in this case is direct use of the flag with no conditional logic. More complex uses were removed in another change.
#rnx
#rb Francis.Hurteau

[CL 34424068 by kevin macaulayvacher in ue5-main branch]
2024-06-17 11:55:02 -04:00
graham lewis
d582333dac Add designer preview entries to MVVM panel extension.
UMVVMBlueprintViewExtension:
- Added virtual OnPreviewContentChanged function.

UMVVMWidgetBlueprintExtension_View:
- Added GetAllBlueprintExtensions function.

FBlueprintViewDesignerExtension:
- New designer extension which overrides PreviewContentChanged and calls OnPreviewContentChanged on each UMVVMBlueprintViewExtension.

FBlueprintViewDesignerExtensionFactory:
- New designer extension factory which creates a FBlueprintViewDesignerExtension.

UMVVMBlueprintViewExtension_PanelWidget:
- Added NumDesignerPreviewEntries property.
- Added static CreateDesignerPreviewEntries function which clears panels children then adds specified number of entries.
- Overrides OnPreviewContentChanged which calls CreateDesignerPreviewEntries using the preview panel widget.

FModelViewViewModelEditorModule:
- Adds PanelWidgetExtensionFactory on module startup and removes on shutdown.

FMVVMPanelWidgetExtensionCustomizationExtender:
- Added "Num Designer Preview Entries" property row.
- Calls UMVVMBlueprintViewExtension_PanelWidget::CreateDesignerPreviewEntries when entry class, slot template or "Num Designer Preview Entries" properties change.

#jira UE-213718
[REVIEW] [at]zahra.nikbakht, [at]editor-ui-systems, [at]chris.gagnon
#rb Vincent.Gauthier, zahra.nikbakht

[CL 34032917 by graham lewis in ue5-main branch]
2024-05-31 11:11:52 -04:00
patrick boutot
354a79c632 MVVM: Fix customization extender that didn't check if the extension was of the correct type.
#rb zahra.nikbakht

[CL 33371723 by patrick boutot in ue5-main branch]
2024-05-01 09:55:52 -04:00
zahra nikbakht
cb2a943bcb MVVM: Extension improvements:
Support undo/redo
Support copy/paste
Add setting for supported widget types
#rb patrick.boutot

[CL 33102960 by zahra nikbakht in ue5-main branch]
2024-04-19 10:53:00 -04:00
zahra nikbakht
7f230554ca MVVM: support view extensions for injecting MVVM-specific data to widgets.
#patrick.boutot
#rb Patrick.Boutot

[CL 32341457 by zahra nikbakht in ue5-main branch]
2024-03-19 18:05:51 -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