202 Commits

Author SHA1 Message Date
marco anastasi
8cd7411052 Warn the user with a confirmation dialog if the revision control provider is changed/disabled
#rb wouter.burgers

[CL 32510690 by marco anastasi in 5.4 branch]
2024-03-26 11:37:42 -04:00
wouter burgers
1f41f6d3f5 SourceControl: Fixed crash in FSourceControlAssetDataCache::LaunchFetchAssetDataTasks().
The fix is theorycrafted by reasoning about the code - I was not able to actually reproduce this.

The callstack suggests a nullptr exception, indicating that the Find() in AssetDataCache failed. The AssetDataToFetch container is populated in two places:
- AddAssetInformationEntry()
- OnUpdateHistoryComplete()

The AddAssetInformationEntry() method populates the AssetDataCache and optionally the AssetDataToFetch container.
The OnUpdateHistoryComplete() assumes the entry in AssetDataCache exists and populates the AssetDataToFetch container.

The ClearPendingTasks() removes pending entries from the AssetDataCache container.
However, it doesn't wait for any pending FUpdateStatus task to be finished.

Thus, if the ClearPendingTasks() method is called after GetFileHistory() queues an FUpdateStatus operation but before that operation returns, the OnUpdateHistoryComplete() would queue an entry in AssetDataToFetch while there is no accompanying entry in AssetDataCache. This will result in the crash. The ClearPendingTasks() is called on shutdown, when the source control provider changes or when the source control dialog is shown - the latter being the most likely thing to have happened.

#rb luc.eygasier, manuel.lang

[CL 32496768 by wouter burgers in 5.4 branch]
2024-03-26 00:47:41 -04:00
marco anastasi
65b2575d93 Snapshot History Design/UI Fixes
* Updated dropdown text color for dates
* Added missing icon(s) for project size
* When a Snapshot is expanded, the background color now remains dark
* When two adjacent Snapshots are expanded, there is now a separation between the expanded areas

#rb wouter.burgers

[CL 32496687 by marco anastasi in 5.4 branch]
2024-03-26 00:45:21 -04:00
patrick boutot
0a156de37d Slate: Add ticking frame to SlateApplication to help prevent a double RHI BeginFrame. The real fix is to enforce the SlateApplication::OnPreTick and OnPostTick to be more strick and hide it from the user.
#jira UE-197511
#rb yohann.dossantos

[CL 32492819 by patrick boutot in 5.4 branch]
2024-03-25 19:47:37 -04:00
wouter burgers
6286d9c136 SkeinUE: Changed 'conflict resolution tab icon' to grey instead of yellow to match the rest of the editor.
[FYI] manuel.lang

[CL 32488552 by wouter burgers in 5.4 branch]
2024-03-25 18:16:28 -04:00
wouter burgers
2c01620d6c SkeinUE: Refactored SSourceControlControls.
The SSourceControlControls is currently instantiated in two places in the editor: bottom right and as part of the snapshot history panel. Regardless, we would like the behavior of these buttons to be the same. This was accomplished by providing 'defaults' in SourceControlMenuHelpers and then setting temporary 'overrides' in SnapshotHistoryPanel. This wasn't very pretty and somewhat confusing with SSourceControlControls providing a mix of instance and static interfaces and behaviors. I've refactored this with the idea in mind that these buttons should behave similar, wherever they are placed in the editor and providing static methods to control that behavior. The default behavior is now no-op and SnapshotHistory provides the UEFN/Skein behavior.

This also allowed the 'CanAutoSave' code to live in one location (in the SnapshotHistoryController) instead of being duplicated in two spots. This was also not possible because engine code cannot be accessed from SkeinSourceControlSlate, where the SSourceControlControls was being instantiated, resulting in the behavior as described in the JIRA bug.

#rb manuel.lang, marco.anastasi

[CL 32488440 by wouter burgers in 5.4 branch]
2024-03-25 18:13:43 -04:00
wouter burgers
1a471a3a55 SourceControl: Added 'unlocked' as a revision control style icon.
#rb manuel.lang, marco.anastasi
#rnx

[CL 31336188 by wouter burgers in 5.4 branch]
2024-02-09 08:10:04 -05:00
marco anastasi
c1168040e6 * Added Restore as Latest functionality
* Created 'Restore as latest' dialog

#rb wouter.burgers

[CL 31095059 by marco anastasi in 5.4 branch]
2024-02-01 13:44:24 -05:00
steve robb
f029468598 Fixed up a lot of bool-taking container resize functions to take EAllowShrinking instead.
[CL 30729174 by steve robb in ue5-main branch]
2024-01-19 16:41:35 -05:00
wouter burgers
2daa2f0820 SkeinUE: Fixed conflicted icon incorrectly being white in some areas since #30499647.
[FYI] manuel.lang
#rnx

[CL 30684127 by wouter burgers in ue5-main branch]
2024-01-18 10:27:11 -05:00
wouter burgers
dd201728e3 SourceControl: Fixed an error being reported for failing to convert to a package name for non-package files (for example: *.uplugin). This was introduced in #24242330.
#rb Marco.Anastasi
#rnx

[CL 30635104 by wouter burgers in ue5-main branch]
2024-01-16 11:23:59 -05:00
marco anastasi
0922d218c0 Fix for "icons for asset change states aren't displaying" in Snapshot History tab
[REVIEW] [at]wouter.burgers, [at]manuel.lang
#rb Manuel.Lang
[FYI] wouter.burgers, manuel.lang

#localization none
#tests ran local build and preflight
#preferred_allowlister alex.kahn

[CL 30600518 by marco anastasi in ue5-main branch]
2024-01-12 14:34:43 -05:00
wouter burgers
432c808da4 SkeinUE: Changed conflicted icon used by Skein to be white (in the file) with a warning color applied instead of being a colored icon in the file.
[FYI] manuel.lang
#rnx

[CL 30499754 by wouter burgers in ue5-main branch]
2024-01-09 04:08:55 -05:00
marco anastasi
9be55ae1ae Populate Assets List in expanded Snapshot view
Created Asset Class 'filter pill' widget
Extended Assets List to display a colour pill representing the asset class

#rb wouter.burgers

[CL 30443162 by marco anastasi in ue5-main branch]
2023-12-22 14:15:22 -05:00
wouter burgers
389ae421f8 Skein / Snapshot History: Assorted snapshot history UI updates. See JIRA for checkmarked list.
#rb Marco.Anastasi
#rnx

[CL 30438221 by wouter burgers in ue5-main branch]
2023-12-22 03:31:43 -05:00
wouter burgers
bc627402f6 Skein / ConflictUE: Assorted conflict resolution UI updates. See JIRA for checkmarked list.
#rb Marco.Anastasi
#rnx

[CL 30379040 by wouter burgers in ue5-main branch]
2023-12-18 12:54:53 -05:00
wouter burgers
5204069750 Skein / ConflictUE: Fixed 'check in changes' no longer redirecting to the 'conflict resolution' window when there are conflicts remaining. This was introduced in #29863963 when SSourceControlControls was created.
#rb Marco.Anastasi
#rnx

[CL 30260472 by wouter burgers in ue5-main branch]
2023-12-12 07:03:52 -05:00
marco anastasi
367d9976f1 Added warning highlight to Asset List [No.] column when user has rewound to an older revision
#rb wouter.burgers

[CL 30038475 by marco anastasi in ue5-main branch]
2023-12-01 08:23:59 -05:00
marco anastasi
4fc92d88f3 * Create 'Check in before syncing older snapshot' dialog
* Create Warning dialog for further rewind
* Implement 'Sync snapshot' functionality
* Implement 'Rewind to' functionality

#rb wouter.burgers

[CL 30015297 by marco anastasi in ue5-main branch]
2023-11-30 10:36:24 -05:00
wouter burgers
9dce208c39 UEFN / Skein: Fixed 'Sync To Latest' functionality moving the user out of their selected 'EditorMode' and losing a part of their progress, by disabling the SourceControl 'Check In Changes' and 'Sync Latest' buttons while an interactive tool is active.
#rb Jamie.Dale, Manuel.Lang, Marco.Anastasi
#rnx

[CL 30010665 by wouter burgers in ue5-main branch]
2023-11-30 03:37:36 -05:00
wouter burgers
e3cd7f6351 SourceControl: Fixed Content Browser not updating after reverting a Content Browser asset move to a subfolder along with any additional action that will trigger a world reload.
Technical:
- Moving an asset to a subfolder and choosing REVERT ALL works! The asset will show up again in Content Browser.
- Moving an asset to a subfolder, moving an actor (which triggers a world reload) and choosing REVERT ALL does NOT work! The asset will not show up again in Content Browser until the project is closed and re-opened. The reason it doesn't show up is because the AssetRegistry still thinks there is a REDIRECTOR asset in that location and the Content Browser doesn't show those by default.

The cause for this is that when the two packages (for example: a redirector material package and a world package) are passed into UPackageTools::ReloadPackages, it will call CreateNewMapForEditing which will cause the redirector material package to go STALE. This is tracked by FScopedTrackFilteredPackages. This results in the redirector material package never actually being reloaded, leaving the AssetRegistry with incorrect data, causing the Content Browser to not show it.

This is fixed by doing the world reload(s) separately.

#rb Manuel.Lang, Marco.Anastasi, Patrick.Enfedaque
#rnx

[CL 29916664 by wouter burgers in ue5-main branch]
2023-11-24 03:11:20 -05:00
wouter burgers
b1096cb5d0 Skein / ConflictUE: Enable conflict resolution workflow and remove the obsolete retrieval of asset list pre-pass.
If a conflict situation ever ends up blocking an internal developer (due to some unforeseen issue), the CLI command 'asset resolve conclude' can always get them out of it.

#rb Marco.Anastasi
#rnx

[CL 29884264 by wouter burgers in ue5-main branch]
2023-11-22 03:36:56 -05:00
marco anastasi
3ccf57012b * Implemented basic Snapshot List
* Added Snapshot creator avatar to Snapshots list
* Extended information displayed in snapshot state column in Snapshot list

#rb Stuart.Hill, wouter.burgers

[CL 29867991 by marco anastasi in ue5-main branch]
2023-11-21 12:06:27 -05:00
marco anastasi
768aebf28f Added #if SOURCE_CONTROL_WITH_SLATE to SSourceControlControls Slate class in SourceControl module
#rb paul.chipchase

[CL 29864891 by marco anastasi in ue5-main branch]
2023-11-21 10:29:56 -05:00
marco anastasi
0eb858d5d9 * Created Snapshot History Tab structure
* Created Date Picker Widget
* Created Source Control Controls Widget
* Refactored Status Bar menu to use Source Control Controls Widget

#rb wouter.burgers, stuart.hill

[CL 29864023 by marco anastasi in ue5-main branch]
2023-11-21 09:56:04 -05:00