Commit Graph

158 Commits

Author SHA1 Message Date
steve robb
935b4b4370 Fixed const correctness of TSoftObjectPtr usage in permission lists.
[CL 34922317 by steve robb in ue5-main branch]
2024-07-18 19:57:55 -04:00
mikko mononen
522a3de52e Details View: Fixed issues with property customization expansion
When restorin expansion for property customizations, we need to do 2 passes.
Sometimes the first pass can removed the expansion states needed for the second pass.
Collect the saved expansion state once, and use the same data on both expansion passes so that the first pass cannot mess things up.

#rb logan.buchy

[CL 34089316 by mikko mononen in ue5-main branch]
2024-06-04 05:54:38 -04:00
mikko mononen
29eaed59d1 Introduced IDetailPropertyChildrenCustomizationHandler - a way to customize properties children in a DetailsView (contributed)
[CL 33717035 by mikko mononen in ue5-main branch]
2024-05-17 04:09:39 -04:00
tyler hundt
e406669e0c Resubmit of CL32530152
Several updates to Conversation Graph System.
   * Add function for getting a corresponding GraphNode from a ConversationNode
   * Add CVar for selecting the whole node when a subnode is dropped on it
   * Add function to retrieve the Add Requirement menu for a custom menu
   * Remove redundant IsUnique check when resetting detail?s panel


[REVIEW] [at]Adam.Rudow, [at]Lane.Engelberg, [at]Bread.Tung, [at]Mark.Pope

[CL 32578501 by tyler hundt in ue5-main branch]
2024-03-28 11:09:01 -04:00
alex kahn
8869d0bc88 [Backout] - CL32530152 - CIS Compile Error
#rnx
[FYI] Tyler.Hundt
Original CL Desc
-----------------------------------------------------------------
Several updates to Conversation Graph System.
   * Add function for getting a corresponding GraphNode from a ConversationNode
   * Add CVar for selecting the whole node when a subnode is dropped on it
   * Add function to retrieve the Add Requirement menu for a custom menu
   * Remove redundant IsUnique check when resetting detail?s panel


[REVIEW] [at]Adam.Rudow, [at]Lane.Engelberg, [at]Bread.Tung, [at]Mark.Pope
#rb Jamie.Dale

[CL 32532290 by alex kahn in ue5-main branch]
2024-03-26 19:55:50 -04:00
tyler hundt
e4ffdda773 Several updates to Conversation Graph System.
* Add function for getting a corresponding GraphNode from a ConversationNode
   * Add CVar for selecting the whole node when a subnode is dropped on it
   * Add function to retrieve the Add Requirement menu for a custom menu
   * Remove redundant IsUnique check when resetting detail?s panel


[REVIEW] [at]Adam.Rudow, [at]Lane.Engelberg, [at]Bread.Tung, [at]Mark.Pope
#rb Jamie.Dale

[CL 32530243 by tyler hundt in ue5-main branch]
2024-03-26 19:22:44 -04:00
brooke hubert
eea691b618 [Details Panel] Fix in progress spin box transactions which would never complete and hold undo transactions open until the editor restarted
Also fix an issue where widgets from previously set objects in a details panel were never destructed if details panel was set to have no objects later

#Jira UE-209277
#rb aditya.ravichandran

[CL 32327562 by brooke hubert in ue5-main branch]
2024-03-19 11:52:14 -04:00
jamie dale
7519468dff Exposed RequestForceRefresh for detail customizations to use
This was available within SDetailsViewBase, but the only publicly available function was ForceRefresh which isn't deferred

Using RequestForceRefresh is preferable when the refresh can be deferred, as it can prevent performance problems from refreshing the view multiple times within a single frame

#rb Rex.Hill

[CL 31275746 by jamie dale in ue5-main branch]
2024-02-07 18:10:19 -05:00
rex hill
d957f99c5c Property editor - Optimized performance when using a PropertyPermissionList to save several minutes of editor startup time
#rb dave.belanger

[CL 31017632 by rex hill in ue5-main branch]
2024-01-30 15:09:46 -05:00
charles lefebvre
e177c41131 Fix compilation error on Linux
#rnx

[CL 29847923 by charles lefebvre in ue5-main branch]
2023-11-20 14:35:07 -05:00
charles lefebvre
e6d1258b95 Fix external objects collapsing on edit
#rb karen.jirak
#tests Tested in PIE
[FYI] jamie.dale

[CL 29847387 by charles lefebvre in ue5-main branch]
2023-11-20 14:22:17 -05:00
karen jirak
0aef208815 Support showing components with no UProperties and add a disallowed types list.
~added isEmpty property to details categories for showing stub categories
~styling support to show them properly

#jira UE-195683
#rb ronald.koppers

[CL 28073151 by karen jirak in ue5-main branch]
2023-09-20 22:48:08 -04:00
karen jirak
48983a4d7d Details Panel - Component card layout actions
~ finish up clean up and refactor of details view style. Make sure that all of the numbers are moved to the style file and anything state related stays in the display manager.

#jira UE-194125
#rb brooke.hubert

[CL 27899004 by karen jirak in ue5-main branch]
2023-09-14 18:21:51 -04:00
karen jirak
231b06059a Reset buttons in details panel hard to hover/click
Problem: With recent changes to the details panel some styling updates caused the scrollbar section to overlap with the reset button when the scrollbar is not showing.

Solution: In SDetailsViewBase.cpp, in the GetScrollbarVisibility method call into DisplayManager.GetIsScrollbarShowing, to tell whether or not we need to show the section which has the scrollbar

#jira UE-195050
#rb brooke.hubert

[CL 27809503 by karen jirak in ue5-main branch]
2023-09-12 17:10:26 -04:00
karen jirak
02a8dc9818 Details Panel - Component card layout actions
The categories on the components for core entities now have an action menu. It has many things in it that will log.

#jira UE-194008
#rb  Brooke.Hubert

[CL 27717413 by karen jirak in ue5-main branch]
2023-09-08 13:15:51 -04:00
mikko mononen
70c2abf5cc Added ScrollPropertyIntoView() to details view and fixed default property button padding
- Fixed padding of default buttons contaier (or else the widget created with CreateDefaultPropertyButtonWidgets() will unintentionally make a row taller)
- Added IDetailsView.ScrollPropertyIntoView(), similar to HighlightProperty() sans does not set highlight

[CL 27407050 by mikko mononen in ue5-main branch]
2023-08-28 04:23:29 -04:00
mikko mononen
91a97670e9 [Backout] - CL27098170
[FYI] mikko.mononen
Original CL Desc
-----------------------------------------------------------------
Prevent accessing of invalid property nodes after undo and redo.

There's a window after undo (between undo and next property view tick) where property nodes point to the previous data.
If e.g. a property customization needs to refresh cached data after undo, they will try to access the data via old pointers.
Similar issue happens when removing item from array, the tick of IDetailCustomNodeBuilder gets called before we have updates the property nodes.

All these issues happen because when we update the child nodes, there are some parts of code that still hold hard refereces to them, and they are not
actually cleared on FPropertyNode::DestroyTree(). That in turn will cause IPropertyHandle to be in valid state, but pointing to data that has been freed.

- Detach property nodes recursively on FPropertyNode::DestroyTree(), also clearing parent pointers to that the invlidate property path cannot be followed.
- Call update view (same as tick) after undo to invalidate property nodes which do not point to correct memory anymore
- Use FEditorDelegates::PostUndoRedo instead of undo client, as in some rare cases with consequtive undo/redo the undo client callbacks get called on a stale pointer
- Postpone gameplay tag caching to next tick, since the delegates are called in reverse and SDetailsView gets OnUndoRedo gets called after out customization

#jira UE-190882

[CL 27169489 by mikko mononen in ue5-main branch]
2023-08-17 07:44:28 -04:00
mikko mononen
5bb059d5a7 Prevent accessing of invalid property nodes after undo and redo.
There's a window after undo (between undo and next property view tick) where property nodes point to the previous data.
If e.g. a property customization needs to refresh cached data after undo, they will try to access the data via old pointers.
Similar issue happens when removing item from array, the tick of IDetailCustomNodeBuilder gets called before we have updates the property nodes.

All these issues happen because when we update the child nodes, there are some parts of code that still hold hard refereces to them, and they are not
actually cleared on FPropertyNode::DestroyTree(). That in turn will cause IPropertyHandle to be in valid state, but pointing to data that has been freed.

- Detach property nodes recursively on FPropertyNode::DestroyTree(), also clearing parent pointers to that the invlidate property path cannot be followed.
- Call update view (same as tick) after undo to invalidate property nodes which do not point to correct memory anymore
- Use FEditorDelegates::PostUndoRedo instead of undo client, as in some rare cases with consequtive undo/redo the undo client callbacks get called on a stale pointer
- Postpone gameplay tag caching to next tick, since the delegates are called in reverse and SDetailsView gets OnUndoRedo gets called after out customization

#jira UE-190882

[CL 27098189 by mikko mononen in ue5-main branch]
2023-08-15 04:12:54 -04:00
George Rolfe
069b160d74 PropertyEditor animate multiple rows
#jira UE-184924
#rb karen.jirak
#preflight 64704d82296b2b37c6ec0cc8

[CL 25638804 by George Rolfe in ue5-main branch]
2023-05-26 03:55:07 -04:00
jordan hoffmann
cb523ba72c [BugFix] Details splitter doesn't highlight certain diffed properties and scrolling isn't synced with those rows
#rb trivial
#preflight 64655795fa4cf416517c3313

[CL 25531733 by jordan hoffmann in ue5-main branch]
2023-05-18 15:30:14 -04:00
jordan hoffmann
ac0ef9c038 [BugFix] No clear way to unhiglight a property
CL 22279933 introduced a regression to SDetailsViewBase::HighlightProperty that made it impossible to unhighlight properties.
udn: https://epicgames.lightning.force.com/lightning/r/Case/5004z00001nziOiAAI/view

#jira none
#rb none
#preflight trivial

[CL 25222768 by jordan hoffmann in ue5-main branch]
2023-04-27 16:15:13 -04:00
jordan hoffmann
ce19d1c65c [Feature] DetailsSplitter
This is a splitter that can dynamically connect matching properties as well as provide buttons for copying values between the two details panels.
#rb ben.hoffmann, dave.jones, karen.jirak
#jira UE-181566
#preflight 64386ecf930b3b84925271d9

[CL 25050248 by jordan hoffmann in ue5-main branch]
2023-04-14 17:07:14 -04:00
jordan hoffmann
fce2dc06b3 [Feature] AsyncTreeDifferences
This is an improvement on how we diff object details so we can diff in real time and unify several algorithms into one
AsyncTreeDifferences is a generic structure that can diff any tree while AsyncDetailViewDiff is a specialization of that for details panels
Docs: https://docs.google.com/document/d/1rwY-FtTxq2BVptLaMdpKNpzb4hOSn8efm-Z-cF0fBhE/edit?usp=sharing
#rb ben.hoffmann, ben.zeigler, dave.jones
#preflight 6437336e0c4277fc0bdc4d8a

[CL 25027228 by jordan hoffmann in ue5-main branch]
2023-04-13 12:15:13 -04:00
jamie dale
23337ef4ec Fixed the details panel failing to restore expansion state when running deferred actions
#rb Rex.Hill

[CL 24867872 by jamie dale in ue5-main branch]
2023-03-31 02:43:24 -04:00
trystan binkley-jone
88002d9e22 DetailsPanel: Fixed issue that prevented the details view from restoring property expansion states in cases where a details customization forced a refresh while the details view was processing deferred actions, such as when an array property is modified.
#jira UE-175894
#rb Daren.Cheng
#preflight 64028819c13b7130d2164ffb

[CL 24511744 by trystan binkley-jone in ue5-main branch]
2023-03-03 20:26:41 -05:00