Commit Graph

69 Commits

Author SHA1 Message Date
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
82c490c84f MVVM: Prevent crash with undo or when a binding is removed. The DetailView used to point directly to the binding in the view. WHen the view is modified, the DetailView was pointing to a dangling pointer. Also remove the customizaer because they don't respect the selection rules.
#preflight 645bba73e81da34de94eec52, 645c3bbfcf788a25588affbb

[CL 25425022 by patrick boutot in ue5-main branch]
2023-05-11 08:09:35 -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
patrick boutot
f778be2e4a MVVM: Remove the specialized viewmodel editor and use the Blueprint base editor instead.
#jira UE-182297
#preflight 643df3ff211b661dc4179363, 643e7f5ea35280ed4f198658, 643ea4febf1053846658cad3, 643fd0669566b61450a63e88

[CL 25108939 by patrick boutot in ue5-main branch]
2023-04-19 12:21:08 -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
bob tellez
a974b2479b [Backout] - CL25038865
[FYI] Patrick.Boutot
Original CL Desc
-----------------------------------------------------------------
MVVM: Remove the specialized viewmodel editor and use the Blueprint base editor instead.
#jira UE-182297
#preflight 64381b51df20983c41604681

[CL 25050244 by bob tellez in ue5-main branch]
2023-04-14 17:07:03 -04:00
patrick boutot
a4220fc5fe MVVM: Remove the specialized viewmodel editor and use the Blueprint base editor instead.
#jira UE-182297
#preflight 64381b51df20983c41604681

[CL 25039205 by patrick boutot in ue5-main branch]
2023-04-14 09:07:11 -04:00
bob tellez
953cc7733b [Backout] - CL25027663
[FYI] Patrick.Boutot
Original CL Desc
-----------------------------------------------------------------
MVVM: Remove the specialized viewmodel editor and use the Blueprint base editor instead.
#jira UE-182297
#preflight 64381b51df20983c41604681

[CL 25035582 by bob tellez in ue5-main branch]
2023-04-13 20:30:11 -04:00
patrick boutot
ed5cdea372 MVVM: Remove the specialized viewmodel editor and use the Blueprint base editor instead.
#jira UE-182297

[CL 25032617 by patrick boutot in ue5-main branch]
2023-04-13 17:04:04 -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
patrick boutot
3d77bf6493 MVVM:
- 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, UE-170403
#rb patrick.boutot, vincent.gauthier
#preflight 6414c614ca2afe3ee6b1c7c8
#p4v-cherrypick 24695764

[CL 24747288 by patrick boutot in ue5-main branch]
2023-03-22 10:27:59 -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
2c2fa3761b MVVM: Add a global option to allow viewmodel setter function. This prevent the validation for object /Script/CoreUObject.Function.
Add an option to show the detail view in the binding panel. This prevent the bad memory access in the customizer used by a the binding panel.
#preflight 640b5c260e1f02786bff27f5

[CL 24603096 by patrick boutot in ue5-main branch]
2023-03-10 23:20:09 -05: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
patrick boutot
1e1d7865c6 MVVM: Fix access to private UFunction with AllowPrivateAccess.
Fix the IsBindingValid error message that do not include the full property type.
Fix field picker that do not show function when there is no filter.
Support array of object binding (the same way BP does).
#jira UE-164316
#preflight 63ee4b41b5262f41ae2f7594, 63ee50a43c1eb56f052d3b64

[CL 24292264 by patrick boutot in ue5-main branch]
2023-02-17 17:10:33 -05:00
patrick boutot
7dd604438f MVVM: Test if the properties or functions are allowed at compile time.
#jira UE-164316
#preflight 63eaf47eb91ae11c1cf4ded7

[CL 24213905 by patrick boutot in ue5-main branch]
2023-02-14 12:07:02 -05:00
patrick boutot
2758a900b9 MVVM: Rename ViewModelResolver to ViewModelContextResolver
#jira UE-171160
#preflight 63e67449bd38b4c5cbe7374e

[CL 24136977 by patrick boutot in ue5-main branch]
2023-02-11 12:38:02 -05:00
patrick boutot
0d838c4210 MVVM: Filter Viewmodel context creation type per class. Use MVVMAllowedContextCreationType or MVVMDisallowedContextCreationType to allow or disallow types.
UCLASS(meta=(MVVMAllowedContextCreationType="Manual|CreateInstance"))
#jira UE-164316
#preflight 63e5ad91f15c83b793edc3c3

[CL 24119664 by patrick boutot in ue5-main branch]
2023-02-10 10:45:24 -05:00
patrick boutot
136813f938 UMG: Add setting to disable UMG binding.
#jira UE-164316
#preflight 63e455505c0ce8f11b0acb51

[CL 24106280 by patrick boutot in ue5-main branch]
2023-02-09 16:22:43 -05:00
patrick boutot
213eb80530 MVVM: Allow picking selecting an abstract class in as the viewmodal in UMG View but you are not able to create an instance.
Add a new way to select the viewmodel uses by the UMG View. User can extend the Resolver and can implement their own logic.
#jira UE-171160
#rb devan.england, sebatian.nordgren
#preflight 63e412003c44c83044e73fe4

[CL 24100372 by patrick boutot in ue5-main branch]
2023-02-09 12:14:47 -05:00
patrick boutot
f2cfd4e83f MVVM: Add setting to find conversion functions.
#jira UE-164316
#preflight 63e3a287e042058d698ba8b4

[CL 24074931 by patrick boutot in ue5-main branch]
2023-02-08 12:16:32 -05:00
patrick boutot
aa9a64a17f MVVM: Add customization for Viewmodel context. Add picker for the propertypath.
#rb sebastian.nordgren
#preflight 63e2a6ae9910415ae2016818

[CL 24061758 by patrick boutot in ue5-main branch]
2023-02-07 17:51:50 -05:00
patrick boutot
eeb3c16fca MVVM: Add a allowed ExecutionMode list.
Move GlobalCollection to GameInstance subsystem.
Rename category from MVVM to Viewmodel.
#preflight 63d5e0bcba4fadeef09bdfc2

[CL 23927160 by patrick boutot in ue5-main branch]
2023-01-31 10:21:03 -05:00
patrick boutot
9ae72c9a26 MVVM: Change the MVVM category for Viewmodel
[FYI] shirley.man

[CL 23747985 by patrick boutot in ue5-main branch]
2023-01-17 18:39:09 -05:00