Files
UnrealEngine/Engine/Source/Editor/MainFrame/Private/HomeScreen/HomeScreenWeb.cpp
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

40 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "HomeScreenWeb.h"
#include "Internationalization/Regex.h"
#include "Misc/MessageDialog.h"
#define LOCTEXT_NAMESPACE "HomeScreenWeb"
void UHomeScreenWeb::NavigateTo(EMainSectionMenu InSectionToNavigate)
{
SectionToNavigate = InSectionToNavigate;
OnNavigationChangedDelegate.Broadcast(InSectionToNavigate);
}
void UHomeScreenWeb::OpenGettingStartedProject()
{
OnTutorialProjectRequestedDelegate.Broadcast();
}
void UHomeScreenWeb::OpenWebPage(const FString& InURL) const
{
const FText ErrorText = FText::Format(LOCTEXT("LaunchingURLNotAllowed", "Given URL is not registered as an allowed one:\n {0}"), FText::FromString(InURL));
const FString EpicOriginRegex = TEXT("^https?://(www|www2|localhost|dev|docs|forums|company|legal)?(\\.staging)?\\.?(unrealengine|epicgames|twinmotion|metahuman|realityscan|kidswebservices|fab|quixel)(\\.com|-(ci|gamedev)\\.ol\\.epicgames\\.net)(:\\d{1,5})?(/[a-zA-Z0-9._~:/?#@!$&'()*+,;=%-]*/?)*$");
const FRegexPattern URLPattern(EpicOriginRegex, ERegexPatternFlags::CaseInsensitive);
FRegexMatcher Matcher(URLPattern, InURL);
if (Matcher.FindNext())
{
FPlatformProcess::LaunchURL(*InURL, nullptr, nullptr);
}
else
{
FMessageDialog::Open(EAppMsgType::Ok, ErrorText);
}
}
#undef LOCTEXT_NAMESPACE