Commit Graph

25 Commits

Author SHA1 Message Date
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
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
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
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
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
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
3c9aacb1ad [Engine/Plugins]
* Updated public headers for ~170 engine plugins using iwyu to remove includes not needed. Removed includes are still available behind UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_2

#preflight 63c08f4a2a6acaf1622bcc73
#rb none

[CL 23674775 by henrik karlsson in ue5-main branch]
2023-01-13 01:54:01 -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
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
patrick boutot
37fce7d953 MVVM: First draft of the viewmodel panel.
#rb sebastian.nordren

#ROBOMERGE-AUTHOR: patrick.boutot
#ROBOMERGE-SOURCE: CL 20488825 via CL 20488833 via CL 20488842
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v954-20466795)

[CL 20490633 by patrick boutot in ue5-main branch]
2022-06-03 14:47:48 -04:00
sebastian nordgren
35fe208abe MVVM: Added transactions and property chain notifications to SMVVMViewBindingListEntryRow.
#jira UE-145128
[REVIEW] [at]patrick.boutot, [at]vincent.gauthier
#rnx
#preflight 62877376286cf1867a460c97

#ROBOMERGE-AUTHOR: sebastian.nordgren
#ROBOMERGE-SOURCE: CL 20294192 via CL 20294679 via CL 20294841
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v948-20297126)

[CL 20305133 by sebastian nordgren in ue5-main branch]
2022-05-20 18:54:53 -04:00
patrick boutot
38b2f19b88 MVVM: Blueprint Path can now support long path. A deprecation path exist. The compiler was modified to support long path. A ViewModelCreator is generated for Manual, this allow the setter to works in standalone.
#rb sebastian.nordgren

#ROBOMERGE-AUTHOR: patrick.boutot
#ROBOMERGE-SOURCE: CL 20259322 via CL 20259326 via CL 20259331
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20262972 by patrick boutot in ue5-main branch]
2022-05-18 12:54:12 -04:00
Patrick Boutot
5cc291be88 MVVM: Move the ModelViewViewModel plugin to //UE5/Main/
#preflight 62471b2edc6183e3f51a8a07
#preflight 62473c85f73c316f680acef9

[CL 19592606 by Patrick Boutot in ue5-main branch]
2022-04-01 14:21:11 -04:00