59 Commits

Author SHA1 Message Date
zahra nikbakht
92d7526266 MVVM UX: add tooltips for the editor side of viewmodel extensions.
[CL 36339142 by zahra nikbakht in 5.5 branch]
2024-09-17 12:23:20 -04:00
christian savoie
291cb8f68a [MVVM] Fix VM default resolvers to be created in the correct package so they save properly
[REVIEW] [at]editor-ui-systems
#tests Add a new VM that defaults to resolver, restart editor to see data being saved correctly

[CL 36172869 by christian savoie in 5.5 branch]
2024-09-10 21:32:44 -04:00
zahra nikbakht
e34e1d0bc4 MVVM/UMG: use the link icon as the Bind drop down for UMG details panel.
Add a checkmark next to the bound viewmodel property when vewing from the Bind menu.
fix pin color not reflecting the property color
fix conversion functions not showing as a binding in the Bind button
#jira UE-204913
#rb daren.cheng, Vincent.Gauthier

[CL 35798945 by zahra nikbakht in ue5-main branch]
2024-08-26 10:51:19 -04:00
christian savoie
8a3b1c35fc [MVVM] Add ability to set default resolver to select by default in project settings.
* Fixed a mixed up condition
* Cleanup resolver reference when not using it as a creation type.

[REVIEW] [at]editor-ui-systems, [at]jc.authier
#tests Changed creation types. Added a VM that's defaulted to use resolver type.
#rb daren.cheng, jc.authier

[CL 35642642 by christian savoie in ue5-main branch]
2024-08-19 18:26:43 -04:00
zahra nikbakht
1cba503479 UMG: Check the drag-drop extensions to see if a widget accepts drop when moving widgets in the designer.
#jira UE-215900
#rb daren.cheng

[CL 34324947 by zahra nikbakht in ue5-main branch]
2024-06-12 17:53:53 -04:00
graham lewis
136ba6d02b Disable drag and dropping children into panel hierarchy when it has an MVVM extension.
IDragDropExtension:
- Extension class providing CanDropOnTarget and GetDropFailureText functions.

FDragDropExtensibilityManager:
- Maintains a list of IDragDropExtensions.

IHasDragDropExtensibility:
- Extension class providing GetDragDropExtensibilityManager function.

IUMGEditorModule:
- Inherits IHasDragDropExtensibility.

FUMGEditorModule:
- Creates FDragDropExtensibilityManager instance on startup.

FDragDropExtension:
- MVVM IDragDropExtension implementation. CanDropOnTarget returns false if the target widget has a UMVVMBlueprintViewExtension_PanelWidget extension.

FModelViewViewModelEditorModule:
- Adds FDragDropExtension on startup and removes on shutdown.

FWidgetBlueprintEditorUtils:
- Added CanDropOnTargetExtensions function which iterates current IDragDropExtensions (via UMG module's FDragDropExtensibilityManager).

ProcessHierarchyDragDrop:
- Checks FWidgetBlueprintEditorUtils::CanDropOnTargetExtensions.

#jira UE-215900
[REVIEW] [at]zahra.nikbakht, [at]editor-ui-systems, [at]chris.gagnon
#rb zahra.nikbakht

[CL 34123034 by graham lewis in ue5-main branch]
2024-06-05 09:45:23 -04:00
graham lewis
d582333dac Add designer preview entries to MVVM panel extension.
UMVVMBlueprintViewExtension:
- Added virtual OnPreviewContentChanged function.

UMVVMWidgetBlueprintExtension_View:
- Added GetAllBlueprintExtensions function.

FBlueprintViewDesignerExtension:
- New designer extension which overrides PreviewContentChanged and calls OnPreviewContentChanged on each UMVVMBlueprintViewExtension.

FBlueprintViewDesignerExtensionFactory:
- New designer extension factory which creates a FBlueprintViewDesignerExtension.

UMVVMBlueprintViewExtension_PanelWidget:
- Added NumDesignerPreviewEntries property.
- Added static CreateDesignerPreviewEntries function which clears panels children then adds specified number of entries.
- Overrides OnPreviewContentChanged which calls CreateDesignerPreviewEntries using the preview panel widget.

FModelViewViewModelEditorModule:
- Adds PanelWidgetExtensionFactory on module startup and removes on shutdown.

FMVVMPanelWidgetExtensionCustomizationExtender:
- Added "Num Designer Preview Entries" property row.
- Calls UMVVMBlueprintViewExtension_PanelWidget::CreateDesignerPreviewEntries when entry class, slot template or "Num Designer Preview Entries" properties change.

#jira UE-213718
[REVIEW] [at]zahra.nikbakht, [at]editor-ui-systems, [at]chris.gagnon
#rb Vincent.Gauthier, zahra.nikbakht

[CL 34032917 by graham lewis in ue5-main branch]
2024-05-31 11:11:52 -04:00
graham lewis
0bb81eb6b1 Disable adding children to panel hierarchy when it has an MVVM extension.
IClipboardExtension:
- Added virtual CanWidgetAcceptPaste function.

FClipboardExtension:
- Overrides CanWidgetAcceptPaste. Checks if specified widget has any UMVVMBlueprintViewExtensions.

FWidgetBlueprintEditorUtils:
- Added static CanPasteWidgetsExtension function. Checks CanWidgetAcceptPaste on all IClipboardExtensions.

FWidgetBlueprintEditor:
- CanPasteWidgets now also calls FWidgetBlueprintEditorUtils::CanPasteWidgetsExtension.

#jira UE-215900
[REVIEW] [at]zahra.nikbakht, [at]editor-ui-systems, [at]chris.gagnon
#rb Patrick.Boutot, zahra.nikbakht

[CL 34008039 by graham lewis in ue5-main branch]
2024-05-30 14:13:13 -04:00
zahra nikbakht
ddf102e86a MVVM: fix crash when deleting binding that previously errored.
Make sure the struct details view is cleared when a binding is invalid.
#rb Patrick.Boutot

[CL 33953602 by zahra nikbakht in ue5-main branch]
2024-05-28 17:11:47 -04:00
patrick boutot
0f8c13cc1e MVVM: Add an option to select the event as a binding or as an event. Allow the user to bind a multicast delegate property in 2 different ways. UX could be improved. Tried a combobox but that removed the nice primary button. I tried a ContextMenu but was not clear what double click was going to do.
#rb editor-ui-systems

[CL 33922334 by patrick boutot in ue5-main branch]
2024-05-27 07:45:27 -04:00
patrick boutot
354a79c632 MVVM: Fix customization extender that didn't check if the extension was of the correct type.
#rb zahra.nikbakht

[CL 33371723 by patrick boutot in ue5-main branch]
2024-05-01 09:55:52 -04:00
patrick boutot
6445e4e840 MVVM: Add tag and name to handle added by extender.
#rb graham.lewis, zahra.nikbakht

[CL 33333947 by patrick boutot in ue5-main branch]
2024-04-30 08:29:17 -04:00
patrick boutot
24977a7a73 MVVM: Modification to support extension on the view instance. The class/shared version has the option to create isntance data. The class extension receives that instance and can ack on it. Modified the Panel to create an property of the instance.
#rb daren.cheng
[FYI] Zahra.Nikbakht

[CL 33274421 by patrick boutot in ue5-main branch]
2024-04-26 15:38:33 -04:00
zahra nikbakht
cb2a943bcb MVVM: Extension improvements:
Support undo/redo
Support copy/paste
Add setting for supported widget types
#rb patrick.boutot

[CL 33102960 by zahra nikbakht in ue5-main branch]
2024-04-19 10:53:00 -04:00
zahra nikbakht
414291a73e MVVM: add an extension to panel widgets to define entry classes for them and allow binding the generated entries to an array of viewmodels
#rb patrick.boutot

[CL 32933358 by zahra nikbakht in ue5-main branch]
2024-04-12 12:24:08 -04:00
zahra nikbakht
1bd1c64fc1 MVVM: create a ListViewBase extension to support selecting an entry viewmodel and assigning them to entry widgets at runtime.
#rb patrick.boutot

[CL 32364945 by zahra nikbakht in ue5-main branch]
2024-03-20 10:11:43 -04:00
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
patrick boutot
259878c511 MVVM: Add an option to auto update the view's viewmodel when it's creation context is the global viewmodel collection. The viewmodel can be added/remove/modified from the global viewmodel collection at anytime and it will update the view.
#jira UE-208792
#rb editor-ui-systems

[CL 31991059 by patrick boutot in ue5-main branch]
2024-03-04 12:09:48 -05:00
patrick boutot
0de814afb9 Add option to filter the resolver to only returns the viewmodel desired class.
#jira UE-207188
#rb yohann.dossantos

[CL 31795278 by patrick boutot in ue5-main branch]
2024-02-25 21:26:40 -05:00
zahra nikbakht
58ee7f4dd0 MVVM: add customization for property paths and conversion functions of bindings in the details panel
#jira UE-205044
#rb patrick.boutot

[CL 31485951 by zahra nikbakht in ue5-main branch]
2024-02-14 14:03:50 -05:00
mikko mononen
f543d8078b PropertyAccessEditor: Added BindingChain to OnCanBindProperty.
[CL 31465565 by mikko mononen in ue5-main branch]
2024-02-14 07:07:33 -05:00
zahra nikbakht
1692e62b5c MVVM: allow viewmodel values to be edited on nested userwidgets.
Expose viewmodels whose creation type is "Create Instance" in the details panel of nested userwidgets and allow editing them independently.
#jira UE-185718
#rb christian.savoie, jared.joyal, Patrick.Boutot

[CL 30717868 by zahra nikbakht in ue5-main branch]
2024-01-19 11:53:42 -05:00
patrick boutot
d4ab788a71 MVVM: Update after 30041295 review to the viewmodel customization
#rb zahra.nikbakht

[CL 30153054 by patrick boutot in ue5-main branch]
2023-12-06 08:36:31 -05:00
patrick boutot
158eed9d9c MVVM: Enable setter flag by default. Add flag to generate a public getter. Change the display logic for the optional flag and the setter flag.
#rb editor-ui-systems

[CL 30041317 by patrick boutot in ue5-main branch]
2023-12-01 10:43:39 -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