Commit Graph

83 Commits

Author SHA1 Message Date
patrick boutot
9aa134b6c2 MVVM: Rework how we find the property for RepNotify function in InstancedViewModel
#rb editor-ui-systems

[CL 27710548 by patrick boutot in ue5-main branch]
2023-09-08 10:12:25 -04:00
patrick boutot
a0960c2081 MVVM: Update the InstanceViewModel to be more generic. Force a compilation when the widget loads, in case something changed in the cpp. Only rebuild the class when needed. Change the default name of the generated viewmodel.
#rb editor-ui-systems

[CL 27701308 by patrick boutot in ue5-main branch]
2023-09-07 22:17:40 -04:00
patrick boutot
c30be13533 MVVM: Fix bad compilation unit on linux.
[CL 27409541 by patrick boutot in ue5-main branch]
2023-08-28 09:24:07 -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
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
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
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
a39450ea32 MVVM: Add flag on viewmodel context to allow edit, remove and rename in the editor.
#rb editor-ui-systems

[CL 26853896 by patrick boutot in ue5-main branch]
2023-08-04 14:01:32 -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
7391a6794f MVVM: Change the displayname of some Viewmodel properties.
#rb editor-ui-systems

[CL 26051658 by patrick boutot in ue5-main branch]
2023-06-16 10:41:42 -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
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