Commit Graph

516 Commits

Author SHA1 Message Date
yoan stamant
e6d36d7569 Remove references to deprecated plugin StructUtils (now part of CoreUObject)
#jira UE-216472
#rb devin.doucette

#changelist validated

[CL 34514179 by yoan stamant in ue5-main branch]
2024-06-19 17:04:50 -04:00
yoan stamant
f92989fb33 Fixed include paths following StructUtils being moved to CoreUObject
#jira UE-216472
#rb devin.doucette

[CL 34513428 by yoan stamant in ue5-main branch]
2024-06-19 16:42:16 -04:00
yoan stamant
938f456b05 Moved UserDefinedStruct to CoreUObject
#jira UE-216472
#rb Devin.Doucette

[CL 34495793 by yoan stamant in ue5-main branch]
2024-06-19 08:00:57 -04:00
gary yuan
f85b2347ba [Backout] - CL34482589
[FYI] Yoan.StAmant
Original CL Desc
-----------------------------------------------------------------
Moved UserDefinedStruct to CoreUObject
#jira UE-216472
#rb Devin.Doucette

[CL 34486763 by gary yuan in ue5-main branch]
2024-06-18 20:05:51 -04:00
yoan stamant
b9344fb62e Moved UserDefinedStruct to CoreUObject
#jira UE-216472
#rb Devin.Doucette

[CL 34482607 by yoan stamant in ue5-main branch]
2024-06-18 17:57:11 -04:00
kevin macaulayvacher
276d09f6df Remove all simple usage of REN_ForceNoResetLoaders from the codebase since the flag has been deprecated and currently does nothing. Simple in this case is direct use of the flag with no conditional logic. More complex uses were removed in another change.
#rnx
#rb Francis.Hurteau

[CL 34424068 by kevin macaulayvacher in ue5-main branch]
2024-06-17 11:55:02 -04:00
patrick boutot
3a35457fff MVVM: Binding are registered individually to make sure all sources that have the same value (pointer) can be triggered. Use the id because the handle callback will be trigger for each registration. Since the viewmodel pointer set at runtime, we can't really prevent more than one registration.
#jira UE-217775
#rb zahra.nikbakht

[CL 34335765 by patrick boutot in ue5-main branch]
2024-06-13 07:44:15 -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
steve robb
e521f5d700 Replaced EAutomationTestFlags::ApplicationContextMask with EAutomationTestFlags_ApplicationContextMask.
[CL 34321160 by steve robb in ue5-main branch]
2024-06-12 16:14:25 -04:00
kevin macaulayvacher
357c98fb83 - UObject::Rename will always remove a mismatching linker unless explicitly told not to via a new rename flag REN_AllowPackageLinkerMismatch. This is meant to be distinct from the deprecated REN_ForceNoResetLoaders as the intent is inverted: There are few reasons to not want to reset loaders when there is a mismatch between package and linker, and when there is no mismatch, we do not want Rename to implicitly resetloaders (we no longer do as of 33136565). The only use case where mismatched linkers is desired is when objects are _temporarily_ renamed to belong to a staging package and desire to have the object continue loading when the object is moved back to the matching linker package (commonly done during blueprint reinstancing). In such a case, the new flag acknowledging the intentional mismatch is meant to be used.
- Any code causing a linker mismatch needs to explicitly clear loading flags for their object to avoid asserting. This is to make the intention clear that rename will make loading correctly impossible when moving the object to a different linker unintentionally. So either clear the loading flags of the object (i.e. finish loading via load calls such as ConditionalPostLoad) or forcibly allow mismatching via the new flag.

- When marking an export as invalid in FLinkerLoad::InvalidateExport() we now also clear loading flags since it is wasteful to load invalid objects.

- Exports marked as invalid are no longer reset to be valid when the linker is reset for the object instance. This is to prevent reloading invalid objects when re-using a linker already resident in memory if a subsequent package load is requested.

- When UStruct upgrades UFields to FFields, the UStruct objects are marked as invalid to prevent reloading the objects unnecessarily

- Fixes an issue where since Rename can clear the linker for mismatched types, any calls to FLinkerLoad::InvalidateExport needs to be moved before the rename operation to be effective.

- CollectUnreachableObjects will no longer mark unreachable objects as invalid in the linkerloader. That code would mark objects as invalid until the linker is destroyed which incorrectly assumed would happen soon. If however a load for the same package occurs before the linker is destroyed, the in-memory linker would be re-used keeping the marked exports as invalid so those exports would not be loaded (even though they should have been).

#jira UE-212466 UE-214849
#rb Francis.Hurteau, Michael.Galetzka
[RN] UObject::Rename will always remove the renamed object's linker if the rename moves the object into a different package. As a result, any renames occuring while an object is loading will now assert instead of leading to hard to diagnose crashes long after the Rename call has completed. If renaming to a different package is intentional and the linker should not be cleared, the new flag REN_AllowPackageLinkerMismatch can be used to prevent clearing linkers on the object even though the linker is for a different package than the package has been renamed to be part of.

[CL 34304935 by kevin macaulayvacher in ue5-main branch]
2024-06-12 08:47:36 -04:00
patrick boutot
b74db8a2a5 MVVM: Deprecate bAllowConversionFunctionGeneratedGraphInEditor. The conversion function graph will be recreated everytime the asset is loaded to be in sync with the saved data.
#rb yohann.dossantos

[CL 34208671 by patrick boutot in ue5-main branch]
2024-06-07 13:56:38 -04:00
bunnylacey
880a0521bb PR #11968: Request update to FViewModelClassFilter in SMVVMSelectViewModel.h
#jira UE-216536
#rb patrick.boutot

[CL 34205656 by bunnylacey in ue5-main branch]
2024-06-07 12:04:04 -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
41d1197cd5 Added missing #pragma once.
#rnx

[CL 34033453 by graham lewis in ue5-main branch]
2024-05-31 11:31:27 -04:00
patrick boutot
4da60c9351 Add generic ToText node that uses the local culture.
#rb Jamie.Dale, editor-ui-systems

[CL 34033448 by patrick boutot in ue5-main branch]
2024-05-31 11:31:22 -04:00
patrick boutot
b187d4525a MVVM: Autocast is supported for conversion function.
#rb yohann.dossantos

[CL 34033327 by patrick boutot in ue5-main branch]
2024-05-31 11:27:14 -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
13ed9205c5 MVVM: Can only select property of loaded UObject ptr.
#rb editor-ui-systems
#rnx

[CL 33937408 by patrick boutot in ue5-main branch]
2024-05-28 07:31:07 -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
1d35c2f98b MVVM: Update FMVVMCompiledBindingLibrary::FieldPathToString to update the saved name of the property/function when the library is not loaded.
#rb editor-ui-systems

[CL 33922187 by patrick boutot in ue5-main branch]
2024-05-27 07:32:26 -04:00
daren cheng
917df99aeb Add conversion functions for MVVM Material Param updates.
#jira UE-211563
#rb Patrick.Boutot
#tests PIE

[CL 33902748 by daren cheng in ue5-main branch]
2024-05-24 15:16:20 -04:00
zahra nikbakht
d7a503b3d4 MVVM Extension: fix slot template settings not being applied in cooked build.
The outer of the slot template must be an object which is available at runtime.
#rb Patrick.Boutot

[CL 33574634 by zahra nikbakht in ue5-main branch]
2024-05-10 10:28:57 -04:00
patrick boutot
1946b5c298 MVVM: Hide autogenerated function from the picker. Rename old function before creating a new one. That could be reproduced by selecting multiple conversion function on the same binding.
#jira UE-211315, UE-211315
#rb editor-ui-systems

[CL 33425581 by patrick boutot in ue5-main branch]
2024-05-03 10:08:40 -04:00