From 92e9202974dcb285637159a5bb7079962ce2c409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Nowak?= Date: Sat, 14 Mar 2026 15:18:40 +0100 Subject: [PATCH 1/2] Move the linking levels at a specific camera position command to the camera menu The options menu is part of the old viewport toolbar. The camera menu is part ot the new viewport toolbar. The new menu is enabled for Unreal Engine 5.6 and never. --- ...LevelAtCameraCoordsEndpointEditorExtension.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Source/RedHermesLevelAtCameraCoordsEndpoint/Private/RedHermesLevelAtCameraCoordsEndpointEditorExtension.cpp b/Source/RedHermesLevelAtCameraCoordsEndpoint/Private/RedHermesLevelAtCameraCoordsEndpointEditorExtension.cpp index 6490520..f4c502f 100644 --- a/Source/RedHermesLevelAtCameraCoordsEndpoint/Private/RedHermesLevelAtCameraCoordsEndpointEditorExtension.cpp +++ b/Source/RedHermesLevelAtCameraCoordsEndpoint/Private/RedHermesLevelAtCameraCoordsEndpointEditorExtension.cpp @@ -7,6 +7,7 @@ #include "RedTalaria.h" #include "RedTalariaLevelAtCameraCoordsUrls.h" #include "ToolMenus.h" +#include "Misc/EngineVersionComparison.h" #include "HAL/PlatformApplicationMisc.h" #define LOCTEXT_NAMESPACE "Editor.RedHermesLevelAtCameraCoordsEndpointEditorExtension" @@ -25,7 +26,15 @@ void URedHermesLevelAtCameraCoordsEndpointEditorExtension::RegisterViewportOptio { FToolMenuOwnerScoped ToolMenuOwnerScoped(this); - if (UToolMenu* Menu = UToolMenus::Get()->ExtendMenu("LevelEditor.LevelViewportToolBar.Options")) +#if UE_VERSION_OLDER_THAN(5,6,0) + static const FName ViewportMenuName("LevelEditor.LevelViewportToolBar.Options"); + static const FName ViewportMenuFirstSection("LevelViewportViewportOptions"); +#else + static const FName ViewportMenuName("LevelEditor.LevelViewportToolBar.Camera"); + static const FName ViewportMenuFirstSection("LevelViewportCameraType_Perspective"); +#endif + + if (UToolMenu* Menu = UToolMenus::Get()->ExtendMenu(ViewportMenuName)) { static auto GetPerspectiveLevelEditorViewportClient = [](const FToolMenuContext& MenuContext) -> FLevelEditorViewportClient* { ULevelViewportToolBarContext* Context = MenuContext.FindContext(); @@ -58,8 +67,8 @@ void URedHermesLevelAtCameraCoordsEndpointEditorExtension::RegisterViewportOptio FToolMenuSection& Section = Menu->AddSection( TEXT("Hermes"), - LOCTEXT("LevelViewportToolBar.Options.Hermes", "Hermes"), - FToolMenuInsert(TEXT("LevelViewportViewportOptions"), EToolMenuInsertType::Before)); + LOCTEXT("LevelViewportToolBar.Section.Hermes", "Hermes"), + FToolMenuInsert(ViewportMenuFirstSection, EToolMenuInsertType::Before)); Section.AddMenuEntry("CopyURL", LOCTEXT("ViewportAction.CopyCameraCoordsUrl", "Copy camera coords URL"), LOCTEXT("ViewportAction.CopyCameraCoordsUrlTooltip", "Copy an URL that will open this level at the current camera position"), From 2003feeaff88bdf0e69dd016d26eeb18f0e1bd43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Nowak?= Date: Sat, 14 Mar 2026 16:04:27 +0100 Subject: [PATCH 2/2] Fix the deprecation warnings for engine version 5.7 The old level viewport toolbar was deprecated. See: https://github.com/EpicGames/UnrealEngine/commit/6f5e98aa86ab0a39ce9a4ce009093bf681d6ff32 --- ...edHermesLevelAtCameraCoordsEndpointEditorExtension.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/RedHermesLevelAtCameraCoordsEndpoint/Private/RedHermesLevelAtCameraCoordsEndpointEditorExtension.cpp b/Source/RedHermesLevelAtCameraCoordsEndpoint/Private/RedHermesLevelAtCameraCoordsEndpointEditorExtension.cpp index f4c502f..5315c04 100644 --- a/Source/RedHermesLevelAtCameraCoordsEndpoint/Private/RedHermesLevelAtCameraCoordsEndpointEditorExtension.cpp +++ b/Source/RedHermesLevelAtCameraCoordsEndpoint/Private/RedHermesLevelAtCameraCoordsEndpointEditorExtension.cpp @@ -37,8 +37,12 @@ void URedHermesLevelAtCameraCoordsEndpointEditorExtension::RegisterViewportOptio if (UToolMenu* Menu = UToolMenus::Get()->ExtendMenu(ViewportMenuName)) { static auto GetPerspectiveLevelEditorViewportClient = [](const FToolMenuContext& MenuContext) -> FLevelEditorViewportClient* { - ULevelViewportToolBarContext* Context = MenuContext.FindContext(); - if (Context && Context->LevelViewportToolBarWidget.IsValid()) +#if UE_VERSION_OLDER_THAN(5,7,0) + if (ULevelViewportToolBarContext* Context = MenuContext.FindContext(); + Context && Context->LevelViewportToolBarWidget.IsValid()) +#else + if (ULevelViewportContext* Context = MenuContext.FindContext()) +#endif { FLevelEditorViewportClient* ViewportClient = Context->GetLevelViewportClient(); if (ViewportClient && ViewportClient->ViewportType == LVT_Perspective)