[REVIEW] [at]aditya.ravichandran
#tests Launched with PIE and a bunch of asset windows open from last run
#rb aditya.ravichandran
[CL 30357347 by christian savoie in ue5-main branch]
* Add FTabManager::SetGeneratePerWindowMainMenuDelegate that allows users to set a delegate the tab manager calls when it needs a main menu widget for a tab's window. This way we can avoid drawing the same main menu widget in multiple windows and the flickering that can cause.
* Generated main menu widgets are cached and reused to avoid regenerating widgets for the same tab manager and window combination. FSlateApplication::OnWindowBeingDestroyed is used to clean this cache up as windows are destroyed.
* The old method FTabManager::SetMenuMultiBox to set a main menu widget for a tab manager now uses FTabManager::SetGeneratePerWindowMainMenuDelegate behind the scenes.
* Update FMainMenu::MakeMainMenu to use the new FTabManager::SetGeneratePerWindowMainMenuDelegate to avoid the main menu flickering described in this ticket.
* Remove unused code.
#jira UE-183373
#rb brooke.hubert, Matt.Kuhlenschmidt, aditya.ravichandran
[CL 29179083 by sebastian arleryd in ue5-main branch]
This paves the way for a flickering fix of the main menus when widgets are shared between widgets where I will move the responsibility for creating widgets into the tab manager. In the tab manager, the main menu widgets will be created per window behind the scenes. Therefore, we cannot return a widget from these methods because there might be more than one and they haven't been created yet.
* Private API changes: Change the return type from TSharedRef/Ptr<SWidget> to void on various private API MakeMainMenu methods (of FLevelEditorMenu, FMainFrameModule, FMainMenu, and SStandaloneAssetEditorToolkitHost).
* Public API change: Add new method void IMainFrameModule::MakeMainMenuNoWidget.
* Public API change: Deprecate the method TSharedRef<SWidget> IMainFrameModule::MakeMainMenu and provide a default implementation for the time being that calls MakeMainMenuNoWidget.
#jira UE-183373
#rb brooke.hubert
[CL 28710510 by sebastian arleryd in ue5-main branch]
Note: Workspace Menus is the name of the menu hierarchy created by tab spawners.
The intent here is to give stable section and sub-menu names to the main menu hierarchy created by tab spawners to allow anyone to extend said hierarchy using UToolMenus.
* Add a NameAttribute to FWorkspaceItem which is NAME_None by default. Allow NameAttribute to be set through constructors and the NewGroup and AddGroup methods. Add an FWorkspaceItem::GetFName method for fetching NameAttribute.
* Set the NameAttribute of FWorkspaceItems created for tab spawners using their TabType.
* When adding tab spawners to the main menus, set the FName identifier as appropriate on sections and sub-menus with the value returned by FWorkspaceItem::GetFName.
* Set the NameAttribute on a lot of workspace groups to make use of this new functionality.
#jira UE-186967
[REVIEW] [at]editor-ux [at]editor-framework
#rb brooke.hubert
[CL 28416011 by sebastian arleryd in ue5-main branch]
This avoids the auto-save restore prompt appearing if the editor crashes after the user has already opted to discard their pending changes during shutdown
[FYI] Scott.Clifford
#rb Rex.Hill
[CL 28379316 by jamie dale in ue5-main branch]
This change only affects the main menu entries added by MainMenu.cpp under "MainFrame.MainMenu.Edit", "MainFrame.MainMenu.Window", and "MainFrame.MainMenu.Tools". See the header "Acceptance Criteria WM-1" in https://docs.google.com/document/d/1xZsXdaa3CgIYYmKbZzEUuAbnjgqbV53Qdtax_RbVBLs for an example of what can change in these dynamic menus.
#jira UE-181389
#preflight 644828ebfa6ba3cc5b5ef00b
[CL 25187872 by sebastian arleryd in ue5-main branch]
- Normalize the layout file paths as the config cache expects them to be.
- Removed the ConvertToAbsolutePathForExternalAppForRead call since the config cache expects relatives paths and it generates an unusable path if the platform file is IPlatformPakFile.
#jira UE-148371
#tests Validated that this works with cooked editors that use the IPlatformPakFile.
#rb lauren.barnes
#preflight 6426eb0b50546ea336ae674a
[CL 24871001 by JeanMichel Dignard in ue5-main branch]
- Side panel no longer compressed
- Name changed to "View Changes"
#jira UE-175840
#rb ronald.koppers
#preflight 63daeceb4965eb8c33d456e5
#lockdown jeanmichel.dignard
[CL 23961626 by zach rammell in ue5-main branch]
* Sync Latest no longer listing and reloading all packages when the source control provider provides a sync preview functionality. When a Sync Preview is available, Sync Latest unloads only the files that are going to be overwritten by the sync operation, and then reloads them and the world
* Refactored Revert All operation to improve performance
* Revert All no longer lists and reloads all packages when the source control provider provides a sync preview functionality. Instead it unloads only the files that may be overwritten by the revert operation (i.e. submittable files), and then reloads them and the world
* Replaced RevertAndReloadAllPackages with RevertAndReloadWorld, no longer listing and reloading all packages (see https://p4-swarm.epicgames.net/reviews/23244245/)
This review is a combination of the two archived reviews https://p4-swarm.epicgames.net/reviews/23736137 and https://p4-swarm.epicgames.net/reviews/23736282
#rb wouter.burgers, stuart.hill, brooke.hubert, francis.hurteau
#preflight 63c9c7786a00f3cc8ead6779
[CL 23796067 by marco anastasi in ue5-main branch]
This introduces a MainFrame menu item under TOOLS -> SOURCE CONTROL called 'Sync Content', similar to the existing 'Submit Content' option. The new menu item is tied to the F5 hot key.
#preflight 63722efcb6636838285ea216
[CL 23129394 by wouter burgers in ue5-main branch]