34 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
christian savoie
2a16908813 [MVVM] Change default resolver to use TSoftClassPtr
[FYI] daren.cheng, zahra.nikbakht
#tests Launch editor and look at options in field in settings

[CL 35747633 by christian savoie in ue5-main branch]
2024-08-22 13:43:32 -04:00
christian savoie
9541ac84e5 Remove meta class specifier causing crash in editor
[CL 35660104 by christian savoie in ue5-main branch]
2024-08-20 13:08:57 -04:00
christian savoie
8a3b1c35fc [MVVM] Add ability to set default resolver to select by default in project settings.
* Fixed a mixed up condition
* Cleanup resolver reference when not using it as a creation type.

[REVIEW] [at]editor-ui-systems, [at]jc.authier
#tests Changed creation types. Added a VM that's defaulted to use resolver type.
#rb daren.cheng, jc.authier

[CL 35642642 by christian savoie in ue5-main branch]
2024-08-19 18:26:43 -04:00
patrick boutot
56488c7325 MVVM: Add an event when a conversion function setting changes. The event is used to rebuild the library.
#rb zahra.nikbakht

[CL 34638925 by patrick boutot in ue5-main branch]
2024-06-25 08:55:46 -04:00
patrick boutot
b74db8a2a5 MVVM: Deprecate bAllowConversionFunctionGeneratedGraphInEditor. The conversion function graph will be recreated everytime the asset is loaded to be in sync with the saved data.
#rb yohann.dossantos

[CL 34208671 by patrick boutot in ue5-main branch]
2024-06-07 13:56:38 -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
patrick boutot
14bfac7129 MVVM: In project settings allow the abstract class for the class picker.
#jira UE-190393
#rb editor-ui-systems

[CL 32321529 by patrick boutot in ue5-main branch]
2024-03-19 07:04:45 -04:00
patrick boutot
b48842aa7a MVVM: Evalute the bindings automatically when the source is set but the value didn't changed. That is a global option and an option on the viewmodel definition itself.
Change the category of MVVMDeveloperProjectSettings.
Fix bug in customization, the bCreateSetter flag was set but never propagated to the copied object.
#jira UE-209383
#rb editor-ui-systems

[CL 32242163 by patrick boutot in ue5-main branch]
2024-03-14 08:07:46 -04: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
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
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
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
f852893a58 MVVM: Allow a property or a function if it's from the blueprint we are currently compiling.
#jira UE-191812
#rb editor-ui-systems

[CL 28963236 by patrick boutot in ue5-main branch]
2023-10-20 09:15:33 -04:00
daren cheng
6feb5780e6 Fix MVVM failing validation due to checking if object nodes were allowed within themselves
Add PropertyHasFiltering method to complete MVVM allowlist API.
Make LocalizableMessage API exposed so that it can be allowlisted.

#rb yohann.dossantos byron.cornejo
[FYI] [at]Patrick.boutot

[CL 28521880 by daren cheng in ue5-main branch]
2023-10-05 18:27:37 -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
1ffbe228b6 Add setting to disable Binding Event
#jira UE-166284
#rb editor-ui-systems

[CL 27302901 by patrick boutot in ue5-main branch]
2023-08-23 08:39:32 -04:00
patrick boutot
ffcc9c9fce MVVM: Add setting to show the View settings.
[CL 26870803 by patrick boutot in ue5-main branch]
2023-08-05 11:47:54 -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
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
patrick boutot
427ba04371 MVVM: Remove needs to have a SourcePath for ComplexConversionFunction. The source data is inside the function itself and the fieldnotify name is already saved in the class binding.
Update GetBindingInfoFromFieldPath to support viewmodel inside another viewmodel. Add unittest for the function.
Add DoesInitializeAtConstruction on the view class. That is to support manual initialization. When the flag is false, the user is responsible for initializing the view.
Add ReevaluateSourceCreator. A source that was discovered at compile time and added to the list of SourceCreator may need to be evaluated if the path contains notify. That function is similar to SetViewModel but finds the new value from the SourceCreator.
Fix issue when a binding destination can't be evaluated at initialization. Since we only reactivate the bindings link to a source in SetViewModel, some bindings were never registered and never executed after the SetViewModel properly set the binding destination.
Update the view class ToString functions with the new flags.
Prevent adding a new binding when the editor data contains a conversion function and a regular function. That may occur when the user started with a regular binding and changed it afterward for a conversion function. We may not want to reset the binding to be non destructive.
#prefligth 6419e837bb1320be412d274d, 641b068aee0aed13479e6ea3

[CL 24750233 by patrick boutot in ue5-main branch]
2023-03-22 13:07:37 -04:00