Instead of scanning the cache in its entirity (twice!) on every source control status cache, the Skein provider now keeps track of remaining/upcoming conflicts incrementally as new source control statuses come in.
#jira UE-213176
#rb Manuel.Lang
[CL 33300055 by wouter burgers in ue5-main branch]
I wasn't actually able to reproduce the issue, but I did find some oddities regarding the visibility of the checkin/sync/restore buttons. For example: if Skein is 'unavailable', the checkin/sync buttons would be hidden but the restore button could be available. I also made the buttons more explicitly tied to Skein to avoid them showing up using Git/Perforce.
#rb Marco.Anastasi
[CL 33265056 by wouter burgers in ue5-main branch]
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 31796796 by wouter burgers in ue5-main branch]
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]
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]
* 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]