Commit Graph

7 Commits

Author SHA1 Message Date
patrick laflamme
187570e7ff Optimized source control changelist to handle a reasonably large number of files smootly (5000-20000).
- 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]
2022-11-01 16:30:00 -04:00
patrick enfedaque
377869bfc1 Uncontrolled Changelist: deleted files support
- 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]
2022-10-03 20:43:35 -04:00
patrick laflamme
d9a04862a3 Added the 'Last Saved' and 'User' column to the changelist window.
- 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]
2022-09-15 18:45:09 -04:00
patrick laflamme
aeddf4fe0c Implemented text search/filtering in the changelist window.
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]
2022-09-12 18:11:36 -04:00
luc eygasier
1dcadd2e97 Moves FUncontrolledChangelist::Name to FUncontrolledChangelistState::Description.
#rb Patrick.Laflamme
#preflight 6318ac73f448dc6e585d5fbd
#jira UE-163065

[CL 21864892 by luc eygasier in ue5-main branch]
2022-09-07 18:11:16 -04:00
patrick laflamme
6e10ae05f3 Fix CIS non-unity build error in SSoucrControlChangelistRows and SSourceControlCommon
#rb Trivial

[CL 21862856 by patrick laflamme in ue5-main branch]
2022-09-07 17:15:55 -04:00
patrick laflamme
b3737f5dd6 Updated the source control changelist code to be more reusable.
- 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]
2022-09-07 17:15:39 -04:00