Commit Graph

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
patrick boutot
a5c08ccaab UMG: Add the NamedSlot and the name of the viewmodel to the asset registry.
#rb yohann.dossantos

[CL 31766242 by patrick boutot in ue5-main branch]
2024-02-23 11:51:20 -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
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
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
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
c1b001cd61 MVVM: Add UX for view's settings. Seperate bindings initialization and sources initialization. Use can now select if it wants the bindings and the sources to be initialized.
#rb editor-ui-systems

[CL 26715851 by patrick boutot in ue5-main branch]
2023-07-31 14:43:55 -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
29bb543f70 MVVM: add searchbar for binding view panel
#jira UE-170982
#rb patrick.boutot

[CL 26466746 by zahra nikbakht in ue5-main branch]
2023-07-19 14:35:01 -04:00
patrick boutot
96ed2dbc61 MVVM: Save the MemberReference with self context. That allow the path to be used in the skeletal compilation phase.
#rb editor-ui-systems

[CL 26053542 by patrick boutot in ue5-main branch]
2023-06-16 11:26:16 -04:00
patrick boutot
d03f30be38 MVVM: Add the viewmodel tag data to the userwidget generated class. It was present on the blueprint asset but that data is not present in coocked build.
#rb editor-ui-systems
#jira UE-164353
#preflight 646f369c2c0a5da0dc849154

[CL 25644058 by patrick boutot in ue5-main branch]
2023-05-26 11:58:53 -04:00
patrick boutot
b4969d3095 MVVM: Unload properties from the view when no widget are using them. That reload the correct properties from a recompiled BP.
#rb none
#preflight 64469ece4944ef7892f2f1ae

[CL 25175416 by patrick boutot in ue5-main branch]
2023-04-24 23:18:34 -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
patrick boutot
bc181cb231 MVVM: Rename MVVMBlueprintViewBinding.ViewModelPath and WidgetPath to SourePath and DestinationPath. Historicly they were named that way because it made sense to bind grom viewmodel to a widget. Now we can bind from any property to any property. We renamed to remove the confusion.
#test MVVM asset in QAGame
#rb Yohann.DosSantos
#preflight 64089d788c0039bbf73e80d8

[CL 24574634 by patrick boutot in ue5-main branch]
2023-03-09 08:41:28 -05: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
patrick boutot
e9c392e679 MVVM: Add the viewmodal used by the UserWidget in the metadata
#jira UE-170872
#rb sebastian.nordgren
#preflight 638f71097e0feab0b7555610

[CL 23445713 by patrick boutot in ue5-main branch]
2022-12-08 09:06:03 -05:00
patrick boutot
f7f8f1b31c MVVM: Saving binding id.
#rb sebastian.nordgren
#preflight 63592875555771b141c78656

[CL 22802866 by patrick boutot in ue5-main branch]
2022-10-26 22:19:39 -04:00
sebastian nordgren
3fdafe9997 MVVM - Replaced all user-facing FStrings with FText. This includes all compiler error messages.
Binding display names now take into account complex conversion functions.

Complex conversion functions now compile correctly.

#rb patrick.boutot
#rnx
#preflight 633ebda6d910a076839e3ddf
#preflight 633ec514a712a61df1354aec

[CL 22388782 by sebastian nordgren in ue5-main branch]
2022-10-06 20:08:12 -04:00
sebastian nordgren
1fb1577293 MVVM - Bindings now have a GUID for identification purposes instead of using the index.
Display name is now more readable when conversion functions are involved.

Moved some conversion function code from MVVMEditorSubsystem to ConversionFunctionHelper so that it can be reused in the compiler.

#rb patrick.boutot
#rnx
#preflight 633d7020164ef40c2e3f308d

[CL 22362227 by sebastian nordgren in ue5-main branch]
2022-10-05 16:05:24 -04:00