Commit Graph

45 Commits

Author SHA1 Message Date
patrick boutot
67693ef1b7 MVVM: Fix SetViewModel that didn't trigger the child viewmodel binding when changed. Use QAGame UMG_MVVM_LongPath to test. The order the sources are added is important to make sure the bindings are executed in the correct order.
#rb yohann.dossantos
#preflight 642ebaca4847065878530573

[CL 24956638 by patrick boutot in ue5-main branch]
2023-04-06 16:59:04 -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
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
0f5123a168 MVVM: Add option to log all bindings after compilations. Complete the ToString library from CompiledBindings. Expose the LogMVVM to other MVVM modules. In the view, properly report error in the message log.
#jira UE-178313
#preflight 64130274bd6894c43518c04e
#rb daren.cheng

[CL 24673818 by patrick boutot in ue5-main branch]
2023-03-16 13:02:33 -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
8f4aae576d MVVM: Temporary disable code that make the viewmodel variable private. The code is there to prevent setting the variable without using the Setter function.
[CL 24525458 by patrick boutot in ue5-main branch]
2023-03-06 13:07:33 -05:00
patrick boutot
91dfcc1e92 MVVM: First step to support viewmodel inside viewmodel. The wiew now support source that is not a UserWidget property. The compiler generates the missing path.
#jira UE-155920
#preflight 6405aa936e1dadfcdaec0442

[CL 24521505 by patrick boutot in ue5-main branch]
2023-03-06 09:41:11 -05:00
ronald koppers
6f5addd262 Renamed PropertyEditorPermissionList to PropertyPermissionList.
#preflight 63fd04f5c35a14198011368b
#rb Rex.Hill

[CL 24432348 by ronald koppers in ue5-main branch]
2023-02-27 16:27:44 -05:00
ronald koppers
a15889181b Added a new hidden property validation list.
#rb Rex.Hill
#preflight 63f7c9562b1a2765f90a26a5

[CL 24397802 by ronald koppers in ue5-main branch]
2023-02-24 03:57:54 -05:00
patrick boutot
fb31ea2d89 MVVM: Test if the properties or functions are allowed at compile time.
#jira UE-164316
#preflight 63eaf47eb91ae11c1cf4ded7, 63ece0c9514832b242a0f66b

[CL 24289488 by patrick boutot in ue5-main branch]
2023-02-17 15:28:46 -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
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
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
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
2a9085be0f Fix bad index uses introduced with CL23494894. Rename CompilerSourceContexts to CompilerUserWidgetPropertyContexts to help prevent futur issues.
#rb yohann.dossantos
#preflight 63b4d00d202bee5e27bd8563

[CL 23580206 by patrick boutot in ue5-main branch]
2023-01-04 15:47:23 -05:00
patrick boutot
f7e52e6daf MVVM: Rework GetBindingInfoFromFieldPath to support self.
#rb sebatian.nordren
#preflight 63989711776b61ba3b30d2d7

[CL 23500069 by patrick boutot in ue5-main branch]
2022-12-13 18:24:52 -05:00
patrick boutot
1ed29a4a8d MVVM: Selection fixes. Can now select the viewmodel self. Fix the reverse complexe function.
#rb sebastian.nordgren
#preflight 6380e372cc307d6fa5a387bb, 6380ea8833774509007f58f5

[CL 23267974 by patrick boutot in ue5-main branch]
2022-11-25 13:55:44 -05:00
patrick boutot
5fb63a6d59 MVVM: Execute Library Binding
#jira UE-132682
#rb sebastian.nordgren

[CL 23069825 by patrick boutot in ue5-main branch]
2022-11-09 21:03:55 -05:00
sebastian nordgren
8e4f5e6887 MVVM - Widgets without an explicit display name override are now displayed properly in the compile error log.
#rb trivial
#rnx
#preflight 63691c14d0174259ccd68041

[CL 23012905 by sebastian nordgren in ue5-main branch]
2022-11-07 12:24:30 -05:00
Patrick Boutot
cab5cb46a5 MVVM: Set the category on the generated widget property with the cagetory sent by the user.
#preflight 6346fd96663dafe4163a2b44

[CL 22482825 by Patrick Boutot in ue5-main branch]
2022-10-12 14:35:36 -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
Patrick Boutot
deb4338cda MVVM: Compile complex conversion functon and execute them as a regular binding.
#rb sebastian.nordgren
#prefligh 63062f5c5366f61a42bced80

[CL 21544671 by Patrick Boutot in ue5-main branch]
2022-08-24 13:14:51 -04:00