Standardized changelist description single line to a helper function to ensure the changelist window and history window have consistency
#rb wouter.burgers
#preflight 638e09551776b8c21c18e716
[CL 23394656 by brooke hubert in ue5-main branch]
- Handling simple source control updates nofications, for example when user scroll the outliner which query source control status of the scrolled files, usually took 450ms with 15000 files to refresh in the changelist window now takes about 3ms.
- Cached UI item to reuse them when user change the filter.
- Detect and update only the item that changed.
- Preserved the item sort order from the previous update when possible.
- Lazily read the file modification timestamp only when the item is fist displayed.
- Updated files modification in background (triggred when when a package is saved).
- Only monitor source control file status for files that are visible (unless the view is sorted by status)
- Splitted Uncontrolled Changelist and Source Controlled Changelist update to update then independently and just update the one that was notified as updated.
- Converted the file view from a STreeView to a SListView.
Updated changelist UI to display (X out of Y files) when a filter is active and remove files from the view.
#rb Luc.Eygasier
#jira UE-139957 Changelists window refreshes excessively
#preflight 63615588ce68f7cbb695d54a
[CL 22890915 by patrick laflamme in ue5-main branch]
- Removed conversion/creation of temporary strings when sorting.
- Removed several branching operations.
- Used Stricmp rather than operator<() as it tells if the string is <> or == in a single operation.
- Sorted the 'Last Modified' column using FDateTime rather that the FText/FString.
- Mesured before/after the change with Insight, in average, the sorting 15 now times faster. (avg 2.4 ms for 7600 items).
- Do not sort by default, waited until the user decide to sort to enable the feature.
#rb Patrick.Enfedaque
#jira UE-139957 - Changelists window refreshes excessively (Partially adressing this issue).
#preflight 63500e398176062ea7e3f6ed
[CL 22635606 by patrick laflamme in ue5-main branch]
- Deleted files will show up in the Uncontrolled Changelists when a Source Control provider is selected
- Deleted files won't show up if SCC is disabled but will still be tracked in case SCC is renabled
#jira UE-164493
#rb luc.eygasier
#preflight 633af0bcba39998ce83121b4
[CL 22322389 by patrick enfedaque in ue5-main branch]
- Use same code to retrieve asset display information then FFileTreeItem
#rb patrick.laflamme
#preflight 6336cec7e72271755f0e7bea
[CL 22272707 by patrick enfedaque in ue5-main branch]
- Implemented sorting and searching for the new columns.
- Added a FUpdateStatus request to the source control provider when the user selects a changelist. This gets the users that checked out the files along with extra file status.
Added support to enable/disable changelist window columns for 'Type', 'Last Saved' and 'User' columns and persisted the settings.
Added tooltips over the changelist row that display the content of a column. Useful when the value is clipped because the column is too small.
Added tooltips over the changelist row header.
Prevented creation of useless temporary strings in PerforceSourceControlOperations.cpp
#rb Patrick.Enfedaque
#preflight 6323613367163bf6600d4fc6
[CL 22040806 by patrick laflamme in ue5-main branch]
Changed the color of the uncontrolled changelist from gray to orange
Added an icon in the to the file status column header.
#jira UE-155216 - Make the selected changelist view (list of files in a CL) searchable.
#jira UE-155213 - Make the list of changelists searchable.
#rb Patrick.Enfedaque
#preflight 631b8c332b7fe03eb601ec03
[CL 21973932 by patrick laflamme in ue5-main branch]
- Moved all source control table row widgets found in SSourceControlChangelists.cpp into a separated files SSourceControlChangelistRows.h/.cpp
- Moved content SFileTableRow.h into SSourceControlChangelistRows.h/.cpp and deleted the file.
- Created column Id constants for the changelist files "Icon", "Name", "Path", "Type" rather than using hardcoded string.
- Moved functions shared by the SSourceCOntrolChangeslists.cpp and SSourceControlChangelistRows.cpp into SSourceControlCommon.h/.cpp.
#rb Luc.Eygasier
#preflight 6317ab57f448dc6e583f2132
[CL 21862849 by patrick laflamme in ue5-main branch]
This submit should not regress any existing functionalites of the previous widget.
Along with the user interface changes, notable bug fixes were included
- If a changelist is not specified for P4 operations 'Mark for Add', 'Mark for Delete and 'Checkout', defaulted to the 'default' P4 changlist. Without a valid changelist, the cache wasn't properly updated.
- Fixed updating the cache for P4 'Mark for delete' operation not correctly updating the file changelist cached in the file state.
Other changes:
- P4 changelists are now always returned sorted by changelist number, ascending.
- Some of the safe operations were running synchronous are not running asynchrnous (create new changelist, delete empty changelist, delete shelved files).
This submit addresses the following Jiras:
#jira UE-155207 - Refactor the changelist window layout to have the left/right panel.
#jira UE-155209 - Add the context menu on right click on a file or a changelist.
#jira UE-155218 - Support creating new empty changelist from the changelist view.
#jira UE-155220 - Support moving files from the selected changelist (right view) to another changelist (left view)
#jira UE-155211 - Add visual feedback for any operation taking more than 0.5s.
#jira UE-155212 - Display a list of uncontrolled files in the left panel of the changelist window
#jira UE-155499 - Changelist windows buttons should be disabled if SCC is disabled
#jira UE-155229 - Add an option to automatically refresh the changelist window when new assets are imported|created (as uncontrolled), marked for add, checked out, marked for delete
#jira UE-107577 - Source Control's Changelists dialog does not refresh to reflect changes made while open
#rb Patrick.Enfedaque
#preflight 62ff946ef7404b55a326297b
[CL 21499885 by patrick laflamme in ue5-main branch]
* Adds Source Control Asset Data cache. Preventing Source Control Changelist Window to rebuild AssetData from scratch when UI refresh takes place
* Modifies Source Control beautification to async process, preventing crowded changelists to block the workflow. The filenames are now beautified when available.
* Parallelize AssetData information retrieval from SourceControl
* Updates message displayed when refreshing window's items
#rb Sebastien.Lussier, JeanFrancois.Dube
#jira UETOOL-3522
#robomerge Private-Frosty
#changelist validated
[CL 17375288 by luc eygasier in ue5-main branch]
* Adds Offline files to Source Control Changelist Window
* Use TSet.Remove return value to update state.
#rb Sebastien.Lussier
#changelist validated
[CL 16593836 by luc eygasier in ue5-main branch]
Added Move files operation on files in changelist dialog (incl. move to new)
Added new changelist button in toolbar
Added cancellable "path beautification" when we have deleted/shelved files with no matching file, until we make it lazy and/or batched
#rb sebastien.lussier
[CL 15797238 by julien lheureux in ue5-main branch]
Added an exception to changelist validation for deleted files
Improved display of deleted & shelved objects in changelists & submit dialog - improvements related to OFPA in a subsequent change.
#rb sebastien.lussier
#jira UE-107677, UE-107768
[CL 15322858 by julien lheureux in ue5-main branch]