2019-12-26 15:33:43 -05:00
// Copyright Epic Games, Inc. All Rights Reserved.
2024-07-19 19:18:48 -04:00
# if WITH_EDITOR
2014-03-14 14:13:41 -04:00
# include "TranslationEditor.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
# include "Misc/FeedbackContext.h"
# include "Modules/ModuleManager.h"
# include "Framework/Application/SlateApplication.h"
# include "Widgets/Input/SButton.h"
# include "TranslationEditorModule.h"
# include "TranslationEditorMenu.h"
2022-10-26 12:57:32 -04:00
# include "PropertyEditorModule.h"
2022-08-24 22:45:13 -04:00
# include "PropertyPath.h"
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
# include "Logging/MessageLog.h"
# include "IPropertyTableRow.h"
2014-03-14 14:13:41 -04:00
# include "DesktopPlatformModule.h"
# include "IPropertyTableWidgetHandle.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
# include "Widgets/Input/SSearchBox.h"
# include "Widgets/Docking/SDockTab.h"
2015-05-28 21:40:23 -04:00
# include "ILocalizationServiceModule.h"
2015-07-09 19:38:01 -04:00
# include "LocalizationCommandletTasks.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
# include "Framework/Notifications/NotificationManager.h"
# include "Widgets/Notifications/SNotificationList.h"
2014-04-23 18:48:34 -04:00
2014-03-14 14:13:41 -04:00
# define LOCTEXT_NAMESPACE "TranslationEditor"
Initial support for composite fonts for Slate, UMG, and Canvas
Slate now has the concept of composite fonts and font families (via FCompositeFont and FTypeface). A composite font is a font that contains a default font family, as well as any number of sub-font families which should be used for a given set of character ranges. This change will greatly improve the localization support for fonts.
UFont assets can now use two forms of caching "offline" (which is the way they have always worked historically), and "runtime" (which utilizes the Slate font cache to cache glyphs on demand). These runtime cached UFont assets are now the only way to specify which font to use for a UMG widget, and address the previous issues about ensuring that the required font files were staged for your game.
The Slate font cache now works on FFontData instances, rather than filenames. This allows the UFont asset to embed a blob of TTF or OTF font data inside it, rather than require the fonts be loaded from files on disk.
The Canvas text renderer has been updated to support runtime cached UFont assets. This gives our legacy Canvas based tools the same improved font localization support as the rest of the Slate-based editor UI.
UFont asset creation has been changed to use runtime caching by default, and additionally, you can now import a TTF or OTF file via the Content Browser and it will automatically create a UFont asset. If you still want an offline cached UFont asset, you can just change the cache type in the font editor, and the usual font picker dialog will appear and allow you to generate a font texture atlas.
[CL 2342203 by Jamie Dale in Main branch]
2014-10-28 09:02:03 -04:00
namespace TranslationEditorUtils
{
/** Get the filename used by the given font info */
FString GetFontFilename ( const FSlateFontInfo & InFontInfo )
{
const FCompositeFont * const ResolvedCompositeFont = InFontInfo . GetCompositeFont ( ) ;
return ( ResolvedCompositeFont & & ResolvedCompositeFont - > DefaultTypeface . Fonts . Num ( ) > 0 )
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3167359)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3152124 on 2016/10/05 by Jamie.Dale
Fixed SOutputLog filter not handling OnTextCommitted
Change 3152255 on 2016/10/05 by Michael.Dupuis
#jira UE-28173 Support \" properly in FName
Change 3152273 on 2016/10/05 by Nick.Darnell
Core - The module manager is now thread safer, we had a critical section around the internal module list - but we were incrementing/decrementing shared pointers to module data shared pointers that were not thread safe outside of the critical section. Ran into a crash working on some heavily threaded code in automation.
Change 3152314 on 2016/10/05 by Nick.Darnell
Automation - Continued work to rough out the automation workflow for screenshot. Still lots of work remaining, but it appears the basic of approving images might be working as of this CL.
Change 3152316 on 2016/10/05 by Michael.Dupuis
#jira UE-30346 Update selection when in tree view mode
Change 3152317 on 2016/10/05 by Nick.Darnell
Automation - Adding some test shots to compare against to EngineTest for screenshot approval.
Change 3152319 on 2016/10/05 by Michael.Dupuis
#jira UE-29817 StringAssetReference will now only open an Asset picker (not actor picker) as the goal is to reference an asset
Change 3152521 on 2016/10/05 by Nick.Darnell
Automation - Fixing some issues with where it reads the screenshot compare rules.
Change 3152536 on 2016/10/05 by Alexis.Matte
Fix FBX automation test.
- Make sure the fbx test can avoid automatic detection of the mesh type
- Avoid to log the warning when the importer set the material usage after creating a material for skeletalmesh.
Change 3152572 on 2016/10/05 by Nick.Darnell
Automation - The GameProjectAutomationTests now do some pre-run house cleaning to make sure the project doesn't already exist, and tries to remove it if it was created previously but not deleted.
Change 3152591 on 2016/10/05 by Nick.Darnell
Automation - Changing the game project errors to be errors.
Change 3153115 on 2016/10/06 by Jamie.Dale
Removed superflous padding when SPropertyEditorAsset had no buttons
Change 3153215 on 2016/10/06 by Michael.Dupuis
Fixed build warning
Change 3153248 on 2016/10/06 by Nick.Darnell
Automation - Working on solving projects not being generated, suspect UBT isn't built or isn't available.
Change 3153255 on 2016/10/06 by Nick.Darnell
PR #2835: Fix TestEqual AddError Message in FAutomationTestBase (Contributed by dorgonman)
#jira UE-36922
Change 3153300 on 2016/10/06 by Nick.Darnell
Automation - Enabled verbose logging to automation build farm.
Change 3153343 on 2016/10/06 by Matt.Kuhlenschmidt
PR #2825: More project launcher progress improvements (Contributed by projectgheist)
Change 3153506 on 2016/10/06 by Gareth.Martin
Fixed crash trying to edit landscape with r.LightPropagationVolume=1 enabled
#jira UE-36933
Change 3153752 on 2016/10/06 by tim.gautier
Add toggle button to UMG_Behavior. Set Level Blueprint for TM-UMG to AllWidget
Change 3153763 on 2016/10/06 by Nick.Darnell
Automation - Disable verbose logging.
Change 3153778 on 2016/10/06 by Nick.Darnell
PR #2837: Fixed engine compilation with defined LOG_SLATE_EVENTS (Contributed by Pierdek)
#jira UE-36940
Change 3153943 on 2016/10/06 by Nick.Darnell
Automation - Disabling some broken tests.
Change 3154035 on 2016/10/06 by Nick.Darnell
Automation - Fixing re-runs for tests that want them. Previously this wasn't working for any test that was run using the Reprostring method of being executed.
Change 3154039 on 2016/10/06 by Nick.Darnell
Automation - Updating some test assets in the EngineTest project.
Change 3154476 on 2016/10/07 by Richard.TalbotWatkin
Fix to regression where vertex color view in Mesh Paint Mode no longer worked correctly. We now allow selected static meshes to go down the dynamic path if VertexColors show mode is active.
#jira UE-36772 - Selecting a channel in Vertex Paint mode does not show the channel color
Change 3154650 on 2016/10/07 by Alexis.Matte
Add new front axis facing X option to fbx importer
Change 3154785 on 2016/10/07 by Nick.Darnell
Automation - Continued work on automation, ripping out the message bus from the screenshot manager, that's causing the screenshot manager to recieve shots from every machine ever running tests. The Automation Controller is now in charge, and will tell the screenshot manager whatever it needs.
Change 3155131 on 2016/10/07 by Michael.Dupuis
#jira UE-36509 Do not disabled inverse filter when doing a sync to asset
Change 3155141 on 2016/10/07 by Michael.Dupuis
#jira UE-36056 Do not open the Actor Picker if we're working on an archetype object
Change 3155262 on 2016/10/07 by Michael.Dupuis
#jira UE-19737 reset ctrl key when resetting state to None
Change 3156326 on 2016/10/09 by Matt.Kuhlenschmidt
Fixed crash when asset picker is used without a property editor (usually a heavily customized property).
Change 3156473 on 2016/10/10 by Richard.TalbotWatkin
Attempt to make geometry render / rebuild more robust in the hope of catching UE-36265.
#jira UE-36265 - [CrashReport] UE4Editor_Engine!FModelSceneProxy::HasSelectedSurfaces() [modelrender.cpp:538]
Change 3156479 on 2016/10/10 by Richard.TalbotWatkin
Fixed non-editor build.
Change 3156579 on 2016/10/10 by Alexis.Matte
Add a check to make sure curve pointer is valid.
#jira UE-36177
Change 3156585 on 2016/10/10 by Ben.Marsh
Fix line endings for screenshot settings.
Change 3156617 on 2016/10/10 by Matt.Kuhlenschmidt
Disable per-pixel blending of menus by default. Causes artifacts on windows versions and we are not using it.
Change 3156674 on 2016/10/10 by Nick.Darnell
Automation - Continued work on the automation workflow. Now screenshot functional test actors actually have the screenshot processed for differences during the test back on the test controller machine, and then waits for the results of the comparison to be performed.
Change 3156709 on 2016/10/10 by Alexis.Matte
#jira UE-16337
Make sure the base mesh import data transform is used when we import a LOD.
Change 3156714 on 2016/10/10 by Nick.Darnell
Automation - Fixing -game crash due to TestName being null in functional test.
Change 3156721 on 2016/10/10 by Nick.Darnell
Automation - FunctionalAITest now implements IsReady to check if the navigation mesh has finished being built.
Change 3156748 on 2016/10/10 by Nick.Darnell
Autopmation - Fixing a warning.
Change 3156943 on 2016/10/10 by Alex.Delesky
Fixed an issue where closing out the "Add Code" window with an active toast stating that an IDE was downloading would prevent the toast from clearing correctly.
#jira none
Change 3156946 on 2016/10/10 by Alex.Delesky
#jira UE-36414 - Adding support for the P4Changelist command line argument to the P4 operations that were missing it.
Change 3158215 on 2016/10/11 by Nick.Darnell
Automation - Continued work on the screenshot comparison, fixed a crash, the system now reports if the screenshot was new, as well as similar, so that the script can react and warn when new screenshots are produced. Manually fired screenshots now properly wait until they've been compared before the test moves forward.
Change 3158322 on 2016/10/11 by Michael.Dupuis
#jira UE-36063 If the collection is not shown when trying to save one, force show them so the user understand what is going on
Change 3158333 on 2016/10/11 by Alex.Delesky
#jira UE-36829 - Rebuilt SVN 1.9.4 libs for Windows with CyrusSASL 2.1.26 and SWIG 3.0.10 support.
Change 3158399 on 2016/10/11 by Nick.Darnell
Automation - TTF Font log statements that were not warnings are no longer warnings.
Change 3158406 on 2016/10/11 by Nick.Darnell
Automation - Updating some automation scripts in the engnine that were using file paths to now use FStringAssetReferences, that cleaned up a lot of nasty convert filepath to asset reference code in the tests. Also introducing some maps, and setting up the configs to use them to try and appease some of the existing tests that were expecting them.
Change 3158419 on 2016/10/11 by Alex.Delesky
#jira UE-36829 - SVN 1.9.4 libraries, but also with Java 8u101 support.
Change 3158537 on 2016/10/11 by Nick.Darnell
Automation - Updating some automation scripts in the engnine that were using file paths to now use FStringAssetReferences, that cleaned up a lot of nasty convert filepath to asset reference code in the tests. Also introducing some maps, and setting up the configs to use them to try and appease some of the existing tests that were expecting them.
Adding some missing files.
Change 3158726 on 2016/10/11 by Michael.Dupuis
#jira UE-37001 Perform manual migration of UICurve to proper config category
Change 3158728 on 2016/10/11 by Nick.Darnell
Automation - Fixing some warnings. Adding more testing to the Domino map to serve as a better example.
Change 3158753 on 2016/10/11 by Michael.Dupuis
#jira UE-26261 change it's by its
Change 3158984 on 2016/10/11 by Alexis.Matte
Fix D&D folder import in content browser. We have to expand the root directory to have the correct path.
#jira UE-32155
Change 3159640 on 2016/10/12 by Jamie.Dale
Split localized package redirection out of FCoreDelegates::PackageNameResolvers
They're different enough in behavior that the delegate resolution was breaking the localized package resolution by resolving in too many places and causing the localized package to be loaded with its real localized name as well as the fake non-localized name.
#jira UE-37119
Change 3159741 on 2016/10/12 by Nick.Darnell
Slate - Fixing the SGraphPanel's mouse offset calculations so that it works with HDPI mode.
Change 3159762 on 2016/10/12 by Nick.Darnell
Automation - Adding a way to take a screenshot with the UI, not great yet - it doesn't really obey the rules of resolution, because of the method it uses.
Change 3160210 on 2016/10/12 by Gareth.Martin
Fixed crash when changing Landscape LOD while using "Grass use Landscape Lightmap"
Change 3160216 on 2016/10/12 by Gareth.Martin
Removed unused FLandscapeComponentSceneProxy::LayerNames and made LayerColors editor-only
Fixed negative LODBias on landscape components to actually do anything
Change 3160239 on 2016/10/12 by Gareth.Martin
Removed an unused variable
Change 3160455 on 2016/10/12 by Jamie.Dale
Fixed FText properties exported to asset tags displaying in their NSLOCTEXT form in the asset tooltips
Change 3160457 on 2016/10/12 by Jamie.Dale
Localization automation now groups everything into a single CL and reverts PO files without significant changes
Change 3160554 on 2016/10/12 by Nick.Darnell
UMG - Fixing some panning logic to work with HDPI mode in the designer.
Change 3161712 on 2016/10/13 by Jamie.Dale
Fixed TSharedMapView using hard-coded types
Change 3163044 on 2016/10/14 by Jamie.Dale
Fixed line-break iterators incorrectly breaking words in CJK
Change 3163046 on 2016/10/14 by Jamie.Dale
Text layout no longer creates break candidates when wrapping is disabled
Change 3163217 on 2016/10/14 by Jamie.Dale
Fixed ensure caused by FMediaTextureResource::GetResourceSizeEx
Change 3163641 on 2016/10/14 by Alex.Delesky
#jira UE-36829 - Updated Mac SVN libraries, along with a more accurate changelog for Windows SVN libs
Change 3164428 on 2016/10/17 by Nick.Darnell
Slate - Making the FReply for SetMousePos easier to debug, since that option is potentially very frustrating to debug when someone is changing it.
Change 3164833 on 2016/10/17 by Jamie.Dale
Fixed ParseNumber consuming strings with multiple sequential dots as valid numbers, eg) "10..."
Change 3164868 on 2016/10/17 by Alexis.Matte
Remove re-import material and LOD import material
#jira UE-36640
Change 3164874 on 2016/10/17 by Alexis.Matte
Fix fbx scene re-import of staticmesh loosing there materials
#jira UE-37032
Change 3165080 on 2016/10/17 by Alexis.Matte
Remove skinxx workflow for static mesh
#jira UE-37262
Change 3165232 on 2016/10/17 by Nick.Darnell
Automation - Adding some sub-level testing.
Change 3165822 on 2016/10/18 by Nick.Darnell
Slate - Add a counter to track how much time we spend drawing custom verts each frame.
Change 3165934 on 2016/10/18 by Nick.Darnell
Slate - Addding cycle counters to SInvalidationPanel's Tick and Paint.
Change 3165947 on 2016/10/18 by Nick.Darnell
Slate - Addding very verbose slate stats behind a compiler flag to avoid the large overhead of these stats. To enable them you'll need to set WITH_VERY_VERBOSE_SLATE_STATS to 1, added a guide on debugging slate performance to the SlateGlobals.h
// HOW TO GET AN IN-DEPTH PERFORMANCE ANALYSIS OF SLATE
//
// Step 1)
// Set WITH_VERY_VERBOSE_SLATE_STATS to 1.
//
// Step 2)
// When running the game (outside of the editor), run these commandline options
// in order and you'll get a large dump of where all the time is going in Slate.
//
// stat group enable slateverbose
// stat group enable slateveryverbose
// stat dumpave -root=stat_slate -num=120 -ms=0
Change 3165962 on 2016/10/18 by Nick.Darnell
UMG - Play first frame of sequence in UMG immediately when told to play an animation.
Change 3165981 on 2016/10/18 by Nick.Darnell
Core - GetDisplayNameText now stores the FName for DisplayName in a static instead of using TEXT("DisplayName").
Change 3166000 on 2016/10/18 by Jamie.Dale
Removed bulk-data from fonts
The main complaints about composite fonts have always been:
1) They use too much memory at runtime.
2) They bloat if you use the same font face twice.
3) They often break when used outside the game thread.
This change aims to address all of these issues by removing bulk-data from fonts (which was the cause of the memory bloat and threading issues), and introduces UFontFace assets (which allow you to re-use the same font face in different entries within a composite font).
No existing font data is lost during this transition, however you must manually update your UFont assets to reference external UFontFace assets before you're able to edit the existing data (which is automatically upgraded to UFontFace assets *within* the UFont package). This upgrade can be done via the composite font editor.
During cook these UFontFace assets write out the actual TTF/OTF font data as a .ufont file, which is what FreeType actually loads at runtime (the internals of the Slate font cache are now completely independent of UObjects and their lifetimes and loading concerns).
Since we're now always loading files from disk, we can also give the user an option of whether to "pre-load" (which will load the entire font into memory, like bulk-data always used to), or "stream" the font from disk (which has minimal memory overhead, but needs decent I/O performance).
Change 3166001 on 2016/10/18 by Jamie.Dale
Updated the Launcher to no longer use bulk-data for fonts
Change 3166003 on 2016/10/18 by Jamie.Dale
Updated the Engine fonts to use UFontFace assets
Change 3166028 on 2016/10/18 by Alex.Delesky
#jira UE-37021 - The scrollbar will now remain at the bottom of the output log after specifying a filter.
Change 3166071 on 2016/10/18 by Nick.Darnell
Slate - Fixing a warning about hiding an inherited member.
Change 3166213 on 2016/10/18 by Jamie.Dale
Fixing crash caused by accessing a zeroed FText
Change 3166222 on 2016/10/18 by Nick.Darnell
Automation - Adding some code to end the sub level test when it starts.
Change 3166231 on 2016/10/18 by Nick.Darnell
Editor - Fixing the build warning, SOutputLog.cpp:748:4: warning: field 'TextLayout' will be initialized after field 'CachedNumMessages'
Change 3166717 on 2016/10/18 by Nick.Darnell
Automation - Removing references to old options that are no longer file paths, and are now StringAssetReferences these options were not being used by anyone as far as I can tell.
#jira UE-37482
Change 3167279 on 2016/10/19 by Jamie.Dale
Fixed text render component regression with custom MIDs
#jira UE-37305
Change 3167356 on 2016/10/19 by Alexis.Matte
Make sure the old asset are build correctly
#jira UE-37461
Change 3167359 on 2016/10/19 by Alexis.Matte
Fix re-import of mesh material assignment regression
#jira UE-37479
[CL 3168049 by Matt Kuhlenschmidt in Main branch]
2016-10-19 15:01:48 -04:00
? ResolvedCompositeFont - > DefaultTypeface . Fonts [ 0 ] . Font . GetFontFilename ( )
: FString ( ) ;
Initial support for composite fonts for Slate, UMG, and Canvas
Slate now has the concept of composite fonts and font families (via FCompositeFont and FTypeface). A composite font is a font that contains a default font family, as well as any number of sub-font families which should be used for a given set of character ranges. This change will greatly improve the localization support for fonts.
UFont assets can now use two forms of caching "offline" (which is the way they have always worked historically), and "runtime" (which utilizes the Slate font cache to cache glyphs on demand). These runtime cached UFont assets are now the only way to specify which font to use for a UMG widget, and address the previous issues about ensuring that the required font files were staged for your game.
The Slate font cache now works on FFontData instances, rather than filenames. This allows the UFont asset to embed a blob of TTF or OTF font data inside it, rather than require the fonts be loaded from files on disk.
The Canvas text renderer has been updated to support runtime cached UFont assets. This gives our legacy Canvas based tools the same improved font localization support as the rest of the Slate-based editor UI.
UFont asset creation has been changed to use runtime caching by default, and additionally, you can now import a TTF or OTF file via the Content Browser and it will automatically create a UFont asset. If you still want an offline cached UFont asset, you can just change the cache type in the font editor, and the usual font picker dialog will appear and allow you to generate a font texture atlas.
[CL 2342203 by Jamie Dale in Main branch]
2014-10-28 09:02:03 -04:00
}
} // namespace TranslationEditorUtils
2014-03-14 14:13:41 -04:00
const FName FTranslationEditor : : UntranslatedTabId ( TEXT ( " TranslationEditor_Untranslated " ) ) ;
const FName FTranslationEditor : : ReviewTabId ( TEXT ( " TranslationEditor_Review " ) ) ;
const FName FTranslationEditor : : CompletedTabId ( TEXT ( " TranslationEditor_Completed " ) ) ;
const FName FTranslationEditor : : PreviewTabId ( TEXT ( " TranslationEditor_Preview " ) ) ;
const FName FTranslationEditor : : ContextTabId ( TEXT ( " TranslationEditor_Context " ) ) ;
const FName FTranslationEditor : : HistoryTabId ( TEXT ( " TranslationEditor_History " ) ) ;
2014-04-23 18:48:34 -04:00
const FName FTranslationEditor : : SearchTabId ( TEXT ( " TranslationEditor_Search " ) ) ;
2014-04-23 19:14:07 -04:00
const FName FTranslationEditor : : ChangedOnImportTabId ( TEXT ( " TranslationEditor_ChangedOnImport " ) ) ;
2014-03-14 14:13:41 -04:00
void FTranslationEditor : : Initialize ( )
{
// Set up delegate functions for the buttons/spinboxes in the custom font columns' headers
SourceColumn - > SetOnChangeFontButtonClicked ( FOnClicked : : CreateSP ( this , & FTranslationEditor : : ChangeSourceFont_FReply ) ) ;
SourceColumn - > SetOnFontSizeValueCommitted ( FOnInt32ValueCommitted : : CreateSP ( this , & FTranslationEditor : : OnSourceFontSizeCommitt ) ) ;
TranslationColumn - > SetOnChangeFontButtonClicked ( FOnClicked : : CreateSP ( this , & FTranslationEditor : : ChangeTranslationTargetFont_FReply ) ) ;
TranslationColumn - > SetOnFontSizeValueCommitted ( FOnInt32ValueCommitted : : CreateSP ( this , & FTranslationEditor : : OnTranslationTargetFontSizeCommitt ) ) ;
}
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2964666)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945310 on 2016/04/15 by Jon.Nabozny
Fix UI locking Angular Rotation Offset for PhysicsConstraintComponents when the motion is for axes is Free or Locked.
#JIRA UE-29368
Change 2945490 on 2016/04/15 by Jon.Nabozny
Remove extraneous changes introduced in CL-2945310.
Change 2946706 on 2016/04/18 by James.Golding
Checkin of slice test assets
Change 2947895 on 2016/04/19 by Benn.Gallagher
PR #2292: Use ref instead of copy in FAnimNode_ModifyBone::EvaluateBoneTransforms (Contributed by MiKom)
#jira UE-29567
Change 2947944 on 2016/04/19 by Benn.Gallagher
Fixed a few extra needless bone container copies
Change 2948279 on 2016/04/19 by Marc.Audy
Add well defined Map and Set Property names
Change 2948280 on 2016/04/19 by Marc.Audy
Properly name parameters
Change 2948792 on 2016/04/19 by Marc.Audy
Remove unused ini class name settings
Change 2948917 on 2016/04/19 by Aaron.McLeran
UE-29654 FadeIn invalidates Audio Components in 4.11
Change 2949567 on 2016/04/20 by James.Golding
- Add SliceProceduralMesh utility to UKismetProceduralMeshLibrary. It will slice the ProcMeshComp with a plan, including simple collision geom, and optionally create cap geometry, and create an addition ProceduralMeshComponent for the other half
- Add support for simple collision on ProceduralMeshComponent, and added bUseComplexAsSimpleCollision to allow it to be used
- Move GeomTools.h and .cpp from Editor to Engine module, so it can be used at runtime. Also move utils into an FGeomTools namespace.
- Add GetSectionFromStaticMesh and CopyProceduralMeshFromStaticMeshComponent utilities to UKismetProceduralMeshLibrary
- Expose UStaticMesh::GetNumLODs to BP, and add BP exposed UStaticMesh:: GetNumSections function
Change 2950482 on 2016/04/20 by Aaron.McLeran
FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
Change 2951102 on 2016/04/21 by Thomas.Sarkanen
Un-deprecated blueprint functions for attachment/detachment
Renamed functions to <FuncName> (Deprecated).
Hid functions in the BP context menu so new ones cant be added.
#jira UE-23216 - "Snap to Target, Keep World Scale" when attaching doesn't work properly if parent is scaled.
Change 2951173 on 2016/04/21 by James.Golding
Fix cap geom generation when more than one polygon is generated
Fix CIS warning in KismetProceduralMeshLibrary.cpp
Change 2951334 on 2016/04/21 by Osman.Tsjardiwal
Add CapMaterial param to SliceProceduralMesh util
Change 2951528 on 2016/04/21 by Marc.Audy
Fix spelling errors in comments
Change 2952933 on 2016/04/22 by Lukasz.Furman
fixed behavior tree getting stuck on instantly finished gameplay tasks
copy of CL# 2952930
Change 2953948 on 2016/04/24 by James.Golding
Put #if WITH_EDITOR back into FPoly::Triangulate to fix non-editor builds (FPoly::Finalize not available in non-editor)
Change 2954558 on 2016/04/25 by Marc.Audy
Make USceneComponent::Attach* members private and remove deprecation messages and pragmas disabling/enabling deprecation throughout SceneComponent.h/cpp
#jira UE-29038
Change 2954865 on 2016/04/25 by Aaron.McLeran
UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
Change 2955009 on 2016/04/25 by Zak.Middleton
#ue4 - Wrap call from UCharacterMovementComponent::PostPhysicsTickComponent() to UpdateBasedMovement() in a FScopedMovementUpdate to accumulate moves with better perf.
Change 2955878 on 2016/04/26 by Benn.Gallagher
[Epic Friday] - Added spherical constraints to anim dynamics
Change 2956380 on 2016/04/26 by Lina.Halper
PR #2298: Step interpolation for UAnimSequence (Contributed by douglaslassance)
Change 2956383 on 2016/04/26 by Lina.Halper
Fixed to match coding standard
Change 2957866 on 2016/04/27 by Zak.Middleton
#ue4 - Add max depenetration distance settings for CharacterMovementComponent. Add controls to throttle logging when character is stuck in geometry so it doesn't spam the log.
- Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.
- "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.
#tests QA-Surfaces multiplayer, walking in to moving objects and pawns.
Change 2957953 on 2016/04/27 by Aaron.McLeran
UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
Change 2958011 on 2016/04/27 by Jon.Nabozny
CalcAABB wasn't properly accounting for current transform on Convex elements, causing bad results.
#JIRA UE-29525
Change 2958321 on 2016/04/27 by Lukasz.Furman
path following update pass, added flags to request result, fixed AITask stacking vs scripted/BP move requests
Change 2959506 on 2016/04/28 by Aaron.McLeran
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
Change 2959686 on 2016/04/28 by Marc.Audy
Correctly handle multiple viewpoints when significance is being sorted descending
Change 2959773 on 2016/04/28 by Marc.Audy
Fix shadowing warning
Change 2959785 on 2016/04/28 by Aaron.McLeran
UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
Change 2960852 on 2016/04/29 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2960738
Change 2960946 on 2016/04/29 by Marc.Audy
Fix post merge compile error
Change 2962501 on 2016/05/02 by Marc.Audy
Remove interim GetMutableAttach accessors and use the variables directly now that they are private
Change 2962535 on 2016/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2962478
Change 2962578 on 2016/05/02 by Marc.Audy
Switch ObjectGraphMove to using UserFlags instead of custom move data
Change 2962651 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2962662 on 2016/05/02 by Lukasz.Furman
deprecated old implementation of gameplay debugger
#jira UE-30011
Change 2962919 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2963475 on 2016/05/02 by Mieszko.Zielinski
Made SimpleMoveToLocation/Actor not reset velocity if agent not already at goal #UE4
#jira UE-30176
Change 2964098 on 2016/05/03 by Marc.Audy
Spelling fix
Change 2964099 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964156 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964272 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable fixes
Change 2964395 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable Fixes
Change 2964460 on 2016/05/03 by Marc.Audy
Reschedule coolingdown tick functions during pause frames.
#jira UE-30221
Change 2964666 on 2016/05/03 by Marc.Audy
Fix shipping compile error
[CL 2964775 by Marc Audy in Main branch]
2016-05-03 15:44:33 -04:00
void FTranslationEditor : : RegisterTabSpawners ( const TSharedRef < class FTabManager > & InTabManager )
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2964666)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945310 on 2016/04/15 by Jon.Nabozny
Fix UI locking Angular Rotation Offset for PhysicsConstraintComponents when the motion is for axes is Free or Locked.
#JIRA UE-29368
Change 2945490 on 2016/04/15 by Jon.Nabozny
Remove extraneous changes introduced in CL-2945310.
Change 2946706 on 2016/04/18 by James.Golding
Checkin of slice test assets
Change 2947895 on 2016/04/19 by Benn.Gallagher
PR #2292: Use ref instead of copy in FAnimNode_ModifyBone::EvaluateBoneTransforms (Contributed by MiKom)
#jira UE-29567
Change 2947944 on 2016/04/19 by Benn.Gallagher
Fixed a few extra needless bone container copies
Change 2948279 on 2016/04/19 by Marc.Audy
Add well defined Map and Set Property names
Change 2948280 on 2016/04/19 by Marc.Audy
Properly name parameters
Change 2948792 on 2016/04/19 by Marc.Audy
Remove unused ini class name settings
Change 2948917 on 2016/04/19 by Aaron.McLeran
UE-29654 FadeIn invalidates Audio Components in 4.11
Change 2949567 on 2016/04/20 by James.Golding
- Add SliceProceduralMesh utility to UKismetProceduralMeshLibrary. It will slice the ProcMeshComp with a plan, including simple collision geom, and optionally create cap geometry, and create an addition ProceduralMeshComponent for the other half
- Add support for simple collision on ProceduralMeshComponent, and added bUseComplexAsSimpleCollision to allow it to be used
- Move GeomTools.h and .cpp from Editor to Engine module, so it can be used at runtime. Also move utils into an FGeomTools namespace.
- Add GetSectionFromStaticMesh and CopyProceduralMeshFromStaticMeshComponent utilities to UKismetProceduralMeshLibrary
- Expose UStaticMesh::GetNumLODs to BP, and add BP exposed UStaticMesh:: GetNumSections function
Change 2950482 on 2016/04/20 by Aaron.McLeran
FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
Change 2951102 on 2016/04/21 by Thomas.Sarkanen
Un-deprecated blueprint functions for attachment/detachment
Renamed functions to <FuncName> (Deprecated).
Hid functions in the BP context menu so new ones cant be added.
#jira UE-23216 - "Snap to Target, Keep World Scale" when attaching doesn't work properly if parent is scaled.
Change 2951173 on 2016/04/21 by James.Golding
Fix cap geom generation when more than one polygon is generated
Fix CIS warning in KismetProceduralMeshLibrary.cpp
Change 2951334 on 2016/04/21 by Osman.Tsjardiwal
Add CapMaterial param to SliceProceduralMesh util
Change 2951528 on 2016/04/21 by Marc.Audy
Fix spelling errors in comments
Change 2952933 on 2016/04/22 by Lukasz.Furman
fixed behavior tree getting stuck on instantly finished gameplay tasks
copy of CL# 2952930
Change 2953948 on 2016/04/24 by James.Golding
Put #if WITH_EDITOR back into FPoly::Triangulate to fix non-editor builds (FPoly::Finalize not available in non-editor)
Change 2954558 on 2016/04/25 by Marc.Audy
Make USceneComponent::Attach* members private and remove deprecation messages and pragmas disabling/enabling deprecation throughout SceneComponent.h/cpp
#jira UE-29038
Change 2954865 on 2016/04/25 by Aaron.McLeran
UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
Change 2955009 on 2016/04/25 by Zak.Middleton
#ue4 - Wrap call from UCharacterMovementComponent::PostPhysicsTickComponent() to UpdateBasedMovement() in a FScopedMovementUpdate to accumulate moves with better perf.
Change 2955878 on 2016/04/26 by Benn.Gallagher
[Epic Friday] - Added spherical constraints to anim dynamics
Change 2956380 on 2016/04/26 by Lina.Halper
PR #2298: Step interpolation for UAnimSequence (Contributed by douglaslassance)
Change 2956383 on 2016/04/26 by Lina.Halper
Fixed to match coding standard
Change 2957866 on 2016/04/27 by Zak.Middleton
#ue4 - Add max depenetration distance settings for CharacterMovementComponent. Add controls to throttle logging when character is stuck in geometry so it doesn't spam the log.
- Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.
- "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.
#tests QA-Surfaces multiplayer, walking in to moving objects and pawns.
Change 2957953 on 2016/04/27 by Aaron.McLeran
UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
Change 2958011 on 2016/04/27 by Jon.Nabozny
CalcAABB wasn't properly accounting for current transform on Convex elements, causing bad results.
#JIRA UE-29525
Change 2958321 on 2016/04/27 by Lukasz.Furman
path following update pass, added flags to request result, fixed AITask stacking vs scripted/BP move requests
Change 2959506 on 2016/04/28 by Aaron.McLeran
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
Change 2959686 on 2016/04/28 by Marc.Audy
Correctly handle multiple viewpoints when significance is being sorted descending
Change 2959773 on 2016/04/28 by Marc.Audy
Fix shadowing warning
Change 2959785 on 2016/04/28 by Aaron.McLeran
UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
Change 2960852 on 2016/04/29 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2960738
Change 2960946 on 2016/04/29 by Marc.Audy
Fix post merge compile error
Change 2962501 on 2016/05/02 by Marc.Audy
Remove interim GetMutableAttach accessors and use the variables directly now that they are private
Change 2962535 on 2016/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2962478
Change 2962578 on 2016/05/02 by Marc.Audy
Switch ObjectGraphMove to using UserFlags instead of custom move data
Change 2962651 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2962662 on 2016/05/02 by Lukasz.Furman
deprecated old implementation of gameplay debugger
#jira UE-30011
Change 2962919 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2963475 on 2016/05/02 by Mieszko.Zielinski
Made SimpleMoveToLocation/Actor not reset velocity if agent not already at goal #UE4
#jira UE-30176
Change 2964098 on 2016/05/03 by Marc.Audy
Spelling fix
Change 2964099 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964156 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964272 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable fixes
Change 2964395 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable Fixes
Change 2964460 on 2016/05/03 by Marc.Audy
Reschedule coolingdown tick functions during pause frames.
#jira UE-30221
Change 2964666 on 2016/05/03 by Marc.Audy
Fix shipping compile error
[CL 2964775 by Marc Audy in Main branch]
2016-05-03 15:44:33 -04:00
WorkspaceMenuCategory = InTabManager - > AddLocalWorkspaceMenuCategory ( LOCTEXT ( " WorkspaceMenu_TranslationEditor " , " Translation Editor " ) ) ;
2014-10-09 12:34:55 -04:00
auto WorkspaceMenuCategoryRef = WorkspaceMenuCategory . ToSharedRef ( ) ;
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2964666)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945310 on 2016/04/15 by Jon.Nabozny
Fix UI locking Angular Rotation Offset for PhysicsConstraintComponents when the motion is for axes is Free or Locked.
#JIRA UE-29368
Change 2945490 on 2016/04/15 by Jon.Nabozny
Remove extraneous changes introduced in CL-2945310.
Change 2946706 on 2016/04/18 by James.Golding
Checkin of slice test assets
Change 2947895 on 2016/04/19 by Benn.Gallagher
PR #2292: Use ref instead of copy in FAnimNode_ModifyBone::EvaluateBoneTransforms (Contributed by MiKom)
#jira UE-29567
Change 2947944 on 2016/04/19 by Benn.Gallagher
Fixed a few extra needless bone container copies
Change 2948279 on 2016/04/19 by Marc.Audy
Add well defined Map and Set Property names
Change 2948280 on 2016/04/19 by Marc.Audy
Properly name parameters
Change 2948792 on 2016/04/19 by Marc.Audy
Remove unused ini class name settings
Change 2948917 on 2016/04/19 by Aaron.McLeran
UE-29654 FadeIn invalidates Audio Components in 4.11
Change 2949567 on 2016/04/20 by James.Golding
- Add SliceProceduralMesh utility to UKismetProceduralMeshLibrary. It will slice the ProcMeshComp with a plan, including simple collision geom, and optionally create cap geometry, and create an addition ProceduralMeshComponent for the other half
- Add support for simple collision on ProceduralMeshComponent, and added bUseComplexAsSimpleCollision to allow it to be used
- Move GeomTools.h and .cpp from Editor to Engine module, so it can be used at runtime. Also move utils into an FGeomTools namespace.
- Add GetSectionFromStaticMesh and CopyProceduralMeshFromStaticMeshComponent utilities to UKismetProceduralMeshLibrary
- Expose UStaticMesh::GetNumLODs to BP, and add BP exposed UStaticMesh:: GetNumSections function
Change 2950482 on 2016/04/20 by Aaron.McLeran
FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
Change 2951102 on 2016/04/21 by Thomas.Sarkanen
Un-deprecated blueprint functions for attachment/detachment
Renamed functions to <FuncName> (Deprecated).
Hid functions in the BP context menu so new ones cant be added.
#jira UE-23216 - "Snap to Target, Keep World Scale" when attaching doesn't work properly if parent is scaled.
Change 2951173 on 2016/04/21 by James.Golding
Fix cap geom generation when more than one polygon is generated
Fix CIS warning in KismetProceduralMeshLibrary.cpp
Change 2951334 on 2016/04/21 by Osman.Tsjardiwal
Add CapMaterial param to SliceProceduralMesh util
Change 2951528 on 2016/04/21 by Marc.Audy
Fix spelling errors in comments
Change 2952933 on 2016/04/22 by Lukasz.Furman
fixed behavior tree getting stuck on instantly finished gameplay tasks
copy of CL# 2952930
Change 2953948 on 2016/04/24 by James.Golding
Put #if WITH_EDITOR back into FPoly::Triangulate to fix non-editor builds (FPoly::Finalize not available in non-editor)
Change 2954558 on 2016/04/25 by Marc.Audy
Make USceneComponent::Attach* members private and remove deprecation messages and pragmas disabling/enabling deprecation throughout SceneComponent.h/cpp
#jira UE-29038
Change 2954865 on 2016/04/25 by Aaron.McLeran
UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
Change 2955009 on 2016/04/25 by Zak.Middleton
#ue4 - Wrap call from UCharacterMovementComponent::PostPhysicsTickComponent() to UpdateBasedMovement() in a FScopedMovementUpdate to accumulate moves with better perf.
Change 2955878 on 2016/04/26 by Benn.Gallagher
[Epic Friday] - Added spherical constraints to anim dynamics
Change 2956380 on 2016/04/26 by Lina.Halper
PR #2298: Step interpolation for UAnimSequence (Contributed by douglaslassance)
Change 2956383 on 2016/04/26 by Lina.Halper
Fixed to match coding standard
Change 2957866 on 2016/04/27 by Zak.Middleton
#ue4 - Add max depenetration distance settings for CharacterMovementComponent. Add controls to throttle logging when character is stuck in geometry so it doesn't spam the log.
- Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.
- "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.
#tests QA-Surfaces multiplayer, walking in to moving objects and pawns.
Change 2957953 on 2016/04/27 by Aaron.McLeran
UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
Change 2958011 on 2016/04/27 by Jon.Nabozny
CalcAABB wasn't properly accounting for current transform on Convex elements, causing bad results.
#JIRA UE-29525
Change 2958321 on 2016/04/27 by Lukasz.Furman
path following update pass, added flags to request result, fixed AITask stacking vs scripted/BP move requests
Change 2959506 on 2016/04/28 by Aaron.McLeran
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
Change 2959686 on 2016/04/28 by Marc.Audy
Correctly handle multiple viewpoints when significance is being sorted descending
Change 2959773 on 2016/04/28 by Marc.Audy
Fix shadowing warning
Change 2959785 on 2016/04/28 by Aaron.McLeran
UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
Change 2960852 on 2016/04/29 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2960738
Change 2960946 on 2016/04/29 by Marc.Audy
Fix post merge compile error
Change 2962501 on 2016/05/02 by Marc.Audy
Remove interim GetMutableAttach accessors and use the variables directly now that they are private
Change 2962535 on 2016/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2962478
Change 2962578 on 2016/05/02 by Marc.Audy
Switch ObjectGraphMove to using UserFlags instead of custom move data
Change 2962651 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2962662 on 2016/05/02 by Lukasz.Furman
deprecated old implementation of gameplay debugger
#jira UE-30011
Change 2962919 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2963475 on 2016/05/02 by Mieszko.Zielinski
Made SimpleMoveToLocation/Actor not reset velocity if agent not already at goal #UE4
#jira UE-30176
Change 2964098 on 2016/05/03 by Marc.Audy
Spelling fix
Change 2964099 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964156 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964272 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable fixes
Change 2964395 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable Fixes
Change 2964460 on 2016/05/03 by Marc.Audy
Reschedule coolingdown tick functions during pause frames.
#jira UE-30221
Change 2964666 on 2016/05/03 by Marc.Audy
Fix shipping compile error
[CL 2964775 by Marc Audy in Main branch]
2016-05-03 15:44:33 -04:00
FAssetEditorToolkit : : RegisterTabSpawners ( InTabManager ) ;
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2964666)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945310 on 2016/04/15 by Jon.Nabozny
Fix UI locking Angular Rotation Offset for PhysicsConstraintComponents when the motion is for axes is Free or Locked.
#JIRA UE-29368
Change 2945490 on 2016/04/15 by Jon.Nabozny
Remove extraneous changes introduced in CL-2945310.
Change 2946706 on 2016/04/18 by James.Golding
Checkin of slice test assets
Change 2947895 on 2016/04/19 by Benn.Gallagher
PR #2292: Use ref instead of copy in FAnimNode_ModifyBone::EvaluateBoneTransforms (Contributed by MiKom)
#jira UE-29567
Change 2947944 on 2016/04/19 by Benn.Gallagher
Fixed a few extra needless bone container copies
Change 2948279 on 2016/04/19 by Marc.Audy
Add well defined Map and Set Property names
Change 2948280 on 2016/04/19 by Marc.Audy
Properly name parameters
Change 2948792 on 2016/04/19 by Marc.Audy
Remove unused ini class name settings
Change 2948917 on 2016/04/19 by Aaron.McLeran
UE-29654 FadeIn invalidates Audio Components in 4.11
Change 2949567 on 2016/04/20 by James.Golding
- Add SliceProceduralMesh utility to UKismetProceduralMeshLibrary. It will slice the ProcMeshComp with a plan, including simple collision geom, and optionally create cap geometry, and create an addition ProceduralMeshComponent for the other half
- Add support for simple collision on ProceduralMeshComponent, and added bUseComplexAsSimpleCollision to allow it to be used
- Move GeomTools.h and .cpp from Editor to Engine module, so it can be used at runtime. Also move utils into an FGeomTools namespace.
- Add GetSectionFromStaticMesh and CopyProceduralMeshFromStaticMeshComponent utilities to UKismetProceduralMeshLibrary
- Expose UStaticMesh::GetNumLODs to BP, and add BP exposed UStaticMesh:: GetNumSections function
Change 2950482 on 2016/04/20 by Aaron.McLeran
FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
Change 2951102 on 2016/04/21 by Thomas.Sarkanen
Un-deprecated blueprint functions for attachment/detachment
Renamed functions to <FuncName> (Deprecated).
Hid functions in the BP context menu so new ones cant be added.
#jira UE-23216 - "Snap to Target, Keep World Scale" when attaching doesn't work properly if parent is scaled.
Change 2951173 on 2016/04/21 by James.Golding
Fix cap geom generation when more than one polygon is generated
Fix CIS warning in KismetProceduralMeshLibrary.cpp
Change 2951334 on 2016/04/21 by Osman.Tsjardiwal
Add CapMaterial param to SliceProceduralMesh util
Change 2951528 on 2016/04/21 by Marc.Audy
Fix spelling errors in comments
Change 2952933 on 2016/04/22 by Lukasz.Furman
fixed behavior tree getting stuck on instantly finished gameplay tasks
copy of CL# 2952930
Change 2953948 on 2016/04/24 by James.Golding
Put #if WITH_EDITOR back into FPoly::Triangulate to fix non-editor builds (FPoly::Finalize not available in non-editor)
Change 2954558 on 2016/04/25 by Marc.Audy
Make USceneComponent::Attach* members private and remove deprecation messages and pragmas disabling/enabling deprecation throughout SceneComponent.h/cpp
#jira UE-29038
Change 2954865 on 2016/04/25 by Aaron.McLeran
UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
Change 2955009 on 2016/04/25 by Zak.Middleton
#ue4 - Wrap call from UCharacterMovementComponent::PostPhysicsTickComponent() to UpdateBasedMovement() in a FScopedMovementUpdate to accumulate moves with better perf.
Change 2955878 on 2016/04/26 by Benn.Gallagher
[Epic Friday] - Added spherical constraints to anim dynamics
Change 2956380 on 2016/04/26 by Lina.Halper
PR #2298: Step interpolation for UAnimSequence (Contributed by douglaslassance)
Change 2956383 on 2016/04/26 by Lina.Halper
Fixed to match coding standard
Change 2957866 on 2016/04/27 by Zak.Middleton
#ue4 - Add max depenetration distance settings for CharacterMovementComponent. Add controls to throttle logging when character is stuck in geometry so it doesn't spam the log.
- Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.
- "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.
#tests QA-Surfaces multiplayer, walking in to moving objects and pawns.
Change 2957953 on 2016/04/27 by Aaron.McLeran
UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
Change 2958011 on 2016/04/27 by Jon.Nabozny
CalcAABB wasn't properly accounting for current transform on Convex elements, causing bad results.
#JIRA UE-29525
Change 2958321 on 2016/04/27 by Lukasz.Furman
path following update pass, added flags to request result, fixed AITask stacking vs scripted/BP move requests
Change 2959506 on 2016/04/28 by Aaron.McLeran
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
Change 2959686 on 2016/04/28 by Marc.Audy
Correctly handle multiple viewpoints when significance is being sorted descending
Change 2959773 on 2016/04/28 by Marc.Audy
Fix shadowing warning
Change 2959785 on 2016/04/28 by Aaron.McLeran
UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
Change 2960852 on 2016/04/29 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2960738
Change 2960946 on 2016/04/29 by Marc.Audy
Fix post merge compile error
Change 2962501 on 2016/05/02 by Marc.Audy
Remove interim GetMutableAttach accessors and use the variables directly now that they are private
Change 2962535 on 2016/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2962478
Change 2962578 on 2016/05/02 by Marc.Audy
Switch ObjectGraphMove to using UserFlags instead of custom move data
Change 2962651 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2962662 on 2016/05/02 by Lukasz.Furman
deprecated old implementation of gameplay debugger
#jira UE-30011
Change 2962919 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2963475 on 2016/05/02 by Mieszko.Zielinski
Made SimpleMoveToLocation/Actor not reset velocity if agent not already at goal #UE4
#jira UE-30176
Change 2964098 on 2016/05/03 by Marc.Audy
Spelling fix
Change 2964099 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964156 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964272 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable fixes
Change 2964395 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable Fixes
Change 2964460 on 2016/05/03 by Marc.Audy
Reschedule coolingdown tick functions during pause frames.
#jira UE-30221
Change 2964666 on 2016/05/03 by Marc.Audy
Fix shipping compile error
[CL 2964775 by Marc Audy in Main branch]
2016-05-03 15:44:33 -04:00
InTabManager - > RegisterTabSpawner ( UntranslatedTabId , FOnSpawnTab : : CreateSP ( this , & FTranslationEditor : : SpawnTab_Untranslated ) )
2014-03-14 14:13:41 -04:00
. SetDisplayName ( LOCTEXT ( " UntranslatedTab " , " Untranslated " ) )
2014-10-09 12:34:55 -04:00
. SetGroup ( WorkspaceMenuCategoryRef ) ;
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2964666)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945310 on 2016/04/15 by Jon.Nabozny
Fix UI locking Angular Rotation Offset for PhysicsConstraintComponents when the motion is for axes is Free or Locked.
#JIRA UE-29368
Change 2945490 on 2016/04/15 by Jon.Nabozny
Remove extraneous changes introduced in CL-2945310.
Change 2946706 on 2016/04/18 by James.Golding
Checkin of slice test assets
Change 2947895 on 2016/04/19 by Benn.Gallagher
PR #2292: Use ref instead of copy in FAnimNode_ModifyBone::EvaluateBoneTransforms (Contributed by MiKom)
#jira UE-29567
Change 2947944 on 2016/04/19 by Benn.Gallagher
Fixed a few extra needless bone container copies
Change 2948279 on 2016/04/19 by Marc.Audy
Add well defined Map and Set Property names
Change 2948280 on 2016/04/19 by Marc.Audy
Properly name parameters
Change 2948792 on 2016/04/19 by Marc.Audy
Remove unused ini class name settings
Change 2948917 on 2016/04/19 by Aaron.McLeran
UE-29654 FadeIn invalidates Audio Components in 4.11
Change 2949567 on 2016/04/20 by James.Golding
- Add SliceProceduralMesh utility to UKismetProceduralMeshLibrary. It will slice the ProcMeshComp with a plan, including simple collision geom, and optionally create cap geometry, and create an addition ProceduralMeshComponent for the other half
- Add support for simple collision on ProceduralMeshComponent, and added bUseComplexAsSimpleCollision to allow it to be used
- Move GeomTools.h and .cpp from Editor to Engine module, so it can be used at runtime. Also move utils into an FGeomTools namespace.
- Add GetSectionFromStaticMesh and CopyProceduralMeshFromStaticMeshComponent utilities to UKismetProceduralMeshLibrary
- Expose UStaticMesh::GetNumLODs to BP, and add BP exposed UStaticMesh:: GetNumSections function
Change 2950482 on 2016/04/20 by Aaron.McLeran
FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
Change 2951102 on 2016/04/21 by Thomas.Sarkanen
Un-deprecated blueprint functions for attachment/detachment
Renamed functions to <FuncName> (Deprecated).
Hid functions in the BP context menu so new ones cant be added.
#jira UE-23216 - "Snap to Target, Keep World Scale" when attaching doesn't work properly if parent is scaled.
Change 2951173 on 2016/04/21 by James.Golding
Fix cap geom generation when more than one polygon is generated
Fix CIS warning in KismetProceduralMeshLibrary.cpp
Change 2951334 on 2016/04/21 by Osman.Tsjardiwal
Add CapMaterial param to SliceProceduralMesh util
Change 2951528 on 2016/04/21 by Marc.Audy
Fix spelling errors in comments
Change 2952933 on 2016/04/22 by Lukasz.Furman
fixed behavior tree getting stuck on instantly finished gameplay tasks
copy of CL# 2952930
Change 2953948 on 2016/04/24 by James.Golding
Put #if WITH_EDITOR back into FPoly::Triangulate to fix non-editor builds (FPoly::Finalize not available in non-editor)
Change 2954558 on 2016/04/25 by Marc.Audy
Make USceneComponent::Attach* members private and remove deprecation messages and pragmas disabling/enabling deprecation throughout SceneComponent.h/cpp
#jira UE-29038
Change 2954865 on 2016/04/25 by Aaron.McLeran
UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
Change 2955009 on 2016/04/25 by Zak.Middleton
#ue4 - Wrap call from UCharacterMovementComponent::PostPhysicsTickComponent() to UpdateBasedMovement() in a FScopedMovementUpdate to accumulate moves with better perf.
Change 2955878 on 2016/04/26 by Benn.Gallagher
[Epic Friday] - Added spherical constraints to anim dynamics
Change 2956380 on 2016/04/26 by Lina.Halper
PR #2298: Step interpolation for UAnimSequence (Contributed by douglaslassance)
Change 2956383 on 2016/04/26 by Lina.Halper
Fixed to match coding standard
Change 2957866 on 2016/04/27 by Zak.Middleton
#ue4 - Add max depenetration distance settings for CharacterMovementComponent. Add controls to throttle logging when character is stuck in geometry so it doesn't spam the log.
- Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.
- "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.
#tests QA-Surfaces multiplayer, walking in to moving objects and pawns.
Change 2957953 on 2016/04/27 by Aaron.McLeran
UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
Change 2958011 on 2016/04/27 by Jon.Nabozny
CalcAABB wasn't properly accounting for current transform on Convex elements, causing bad results.
#JIRA UE-29525
Change 2958321 on 2016/04/27 by Lukasz.Furman
path following update pass, added flags to request result, fixed AITask stacking vs scripted/BP move requests
Change 2959506 on 2016/04/28 by Aaron.McLeran
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
Change 2959686 on 2016/04/28 by Marc.Audy
Correctly handle multiple viewpoints when significance is being sorted descending
Change 2959773 on 2016/04/28 by Marc.Audy
Fix shadowing warning
Change 2959785 on 2016/04/28 by Aaron.McLeran
UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
Change 2960852 on 2016/04/29 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2960738
Change 2960946 on 2016/04/29 by Marc.Audy
Fix post merge compile error
Change 2962501 on 2016/05/02 by Marc.Audy
Remove interim GetMutableAttach accessors and use the variables directly now that they are private
Change 2962535 on 2016/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2962478
Change 2962578 on 2016/05/02 by Marc.Audy
Switch ObjectGraphMove to using UserFlags instead of custom move data
Change 2962651 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2962662 on 2016/05/02 by Lukasz.Furman
deprecated old implementation of gameplay debugger
#jira UE-30011
Change 2962919 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2963475 on 2016/05/02 by Mieszko.Zielinski
Made SimpleMoveToLocation/Actor not reset velocity if agent not already at goal #UE4
#jira UE-30176
Change 2964098 on 2016/05/03 by Marc.Audy
Spelling fix
Change 2964099 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964156 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964272 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable fixes
Change 2964395 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable Fixes
Change 2964460 on 2016/05/03 by Marc.Audy
Reschedule coolingdown tick functions during pause frames.
#jira UE-30221
Change 2964666 on 2016/05/03 by Marc.Audy
Fix shipping compile error
[CL 2964775 by Marc Audy in Main branch]
2016-05-03 15:44:33 -04:00
InTabManager - > RegisterTabSpawner ( ReviewTabId , FOnSpawnTab : : CreateSP ( this , & FTranslationEditor : : SpawnTab_Review ) )
2014-03-14 14:13:41 -04:00
. SetDisplayName ( LOCTEXT ( " ReviewTab " , " Needs Review " ) )
2014-10-09 12:34:55 -04:00
. SetGroup ( WorkspaceMenuCategoryRef ) ;
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2964666)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945310 on 2016/04/15 by Jon.Nabozny
Fix UI locking Angular Rotation Offset for PhysicsConstraintComponents when the motion is for axes is Free or Locked.
#JIRA UE-29368
Change 2945490 on 2016/04/15 by Jon.Nabozny
Remove extraneous changes introduced in CL-2945310.
Change 2946706 on 2016/04/18 by James.Golding
Checkin of slice test assets
Change 2947895 on 2016/04/19 by Benn.Gallagher
PR #2292: Use ref instead of copy in FAnimNode_ModifyBone::EvaluateBoneTransforms (Contributed by MiKom)
#jira UE-29567
Change 2947944 on 2016/04/19 by Benn.Gallagher
Fixed a few extra needless bone container copies
Change 2948279 on 2016/04/19 by Marc.Audy
Add well defined Map and Set Property names
Change 2948280 on 2016/04/19 by Marc.Audy
Properly name parameters
Change 2948792 on 2016/04/19 by Marc.Audy
Remove unused ini class name settings
Change 2948917 on 2016/04/19 by Aaron.McLeran
UE-29654 FadeIn invalidates Audio Components in 4.11
Change 2949567 on 2016/04/20 by James.Golding
- Add SliceProceduralMesh utility to UKismetProceduralMeshLibrary. It will slice the ProcMeshComp with a plan, including simple collision geom, and optionally create cap geometry, and create an addition ProceduralMeshComponent for the other half
- Add support for simple collision on ProceduralMeshComponent, and added bUseComplexAsSimpleCollision to allow it to be used
- Move GeomTools.h and .cpp from Editor to Engine module, so it can be used at runtime. Also move utils into an FGeomTools namespace.
- Add GetSectionFromStaticMesh and CopyProceduralMeshFromStaticMeshComponent utilities to UKismetProceduralMeshLibrary
- Expose UStaticMesh::GetNumLODs to BP, and add BP exposed UStaticMesh:: GetNumSections function
Change 2950482 on 2016/04/20 by Aaron.McLeran
FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
Change 2951102 on 2016/04/21 by Thomas.Sarkanen
Un-deprecated blueprint functions for attachment/detachment
Renamed functions to <FuncName> (Deprecated).
Hid functions in the BP context menu so new ones cant be added.
#jira UE-23216 - "Snap to Target, Keep World Scale" when attaching doesn't work properly if parent is scaled.
Change 2951173 on 2016/04/21 by James.Golding
Fix cap geom generation when more than one polygon is generated
Fix CIS warning in KismetProceduralMeshLibrary.cpp
Change 2951334 on 2016/04/21 by Osman.Tsjardiwal
Add CapMaterial param to SliceProceduralMesh util
Change 2951528 on 2016/04/21 by Marc.Audy
Fix spelling errors in comments
Change 2952933 on 2016/04/22 by Lukasz.Furman
fixed behavior tree getting stuck on instantly finished gameplay tasks
copy of CL# 2952930
Change 2953948 on 2016/04/24 by James.Golding
Put #if WITH_EDITOR back into FPoly::Triangulate to fix non-editor builds (FPoly::Finalize not available in non-editor)
Change 2954558 on 2016/04/25 by Marc.Audy
Make USceneComponent::Attach* members private and remove deprecation messages and pragmas disabling/enabling deprecation throughout SceneComponent.h/cpp
#jira UE-29038
Change 2954865 on 2016/04/25 by Aaron.McLeran
UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
Change 2955009 on 2016/04/25 by Zak.Middleton
#ue4 - Wrap call from UCharacterMovementComponent::PostPhysicsTickComponent() to UpdateBasedMovement() in a FScopedMovementUpdate to accumulate moves with better perf.
Change 2955878 on 2016/04/26 by Benn.Gallagher
[Epic Friday] - Added spherical constraints to anim dynamics
Change 2956380 on 2016/04/26 by Lina.Halper
PR #2298: Step interpolation for UAnimSequence (Contributed by douglaslassance)
Change 2956383 on 2016/04/26 by Lina.Halper
Fixed to match coding standard
Change 2957866 on 2016/04/27 by Zak.Middleton
#ue4 - Add max depenetration distance settings for CharacterMovementComponent. Add controls to throttle logging when character is stuck in geometry so it doesn't spam the log.
- Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.
- "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.
#tests QA-Surfaces multiplayer, walking in to moving objects and pawns.
Change 2957953 on 2016/04/27 by Aaron.McLeran
UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
Change 2958011 on 2016/04/27 by Jon.Nabozny
CalcAABB wasn't properly accounting for current transform on Convex elements, causing bad results.
#JIRA UE-29525
Change 2958321 on 2016/04/27 by Lukasz.Furman
path following update pass, added flags to request result, fixed AITask stacking vs scripted/BP move requests
Change 2959506 on 2016/04/28 by Aaron.McLeran
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
Change 2959686 on 2016/04/28 by Marc.Audy
Correctly handle multiple viewpoints when significance is being sorted descending
Change 2959773 on 2016/04/28 by Marc.Audy
Fix shadowing warning
Change 2959785 on 2016/04/28 by Aaron.McLeran
UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
Change 2960852 on 2016/04/29 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2960738
Change 2960946 on 2016/04/29 by Marc.Audy
Fix post merge compile error
Change 2962501 on 2016/05/02 by Marc.Audy
Remove interim GetMutableAttach accessors and use the variables directly now that they are private
Change 2962535 on 2016/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2962478
Change 2962578 on 2016/05/02 by Marc.Audy
Switch ObjectGraphMove to using UserFlags instead of custom move data
Change 2962651 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2962662 on 2016/05/02 by Lukasz.Furman
deprecated old implementation of gameplay debugger
#jira UE-30011
Change 2962919 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2963475 on 2016/05/02 by Mieszko.Zielinski
Made SimpleMoveToLocation/Actor not reset velocity if agent not already at goal #UE4
#jira UE-30176
Change 2964098 on 2016/05/03 by Marc.Audy
Spelling fix
Change 2964099 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964156 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964272 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable fixes
Change 2964395 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable Fixes
Change 2964460 on 2016/05/03 by Marc.Audy
Reschedule coolingdown tick functions during pause frames.
#jira UE-30221
Change 2964666 on 2016/05/03 by Marc.Audy
Fix shipping compile error
[CL 2964775 by Marc Audy in Main branch]
2016-05-03 15:44:33 -04:00
InTabManager - > RegisterTabSpawner ( CompletedTabId , FOnSpawnTab : : CreateSP ( this , & FTranslationEditor : : SpawnTab_Completed ) )
2014-03-14 14:13:41 -04:00
. SetDisplayName ( LOCTEXT ( " CompletedTab " , " Completed " ) )
2014-10-09 12:34:55 -04:00
. SetGroup ( WorkspaceMenuCategoryRef ) ;
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2964666)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945310 on 2016/04/15 by Jon.Nabozny
Fix UI locking Angular Rotation Offset for PhysicsConstraintComponents when the motion is for axes is Free or Locked.
#JIRA UE-29368
Change 2945490 on 2016/04/15 by Jon.Nabozny
Remove extraneous changes introduced in CL-2945310.
Change 2946706 on 2016/04/18 by James.Golding
Checkin of slice test assets
Change 2947895 on 2016/04/19 by Benn.Gallagher
PR #2292: Use ref instead of copy in FAnimNode_ModifyBone::EvaluateBoneTransforms (Contributed by MiKom)
#jira UE-29567
Change 2947944 on 2016/04/19 by Benn.Gallagher
Fixed a few extra needless bone container copies
Change 2948279 on 2016/04/19 by Marc.Audy
Add well defined Map and Set Property names
Change 2948280 on 2016/04/19 by Marc.Audy
Properly name parameters
Change 2948792 on 2016/04/19 by Marc.Audy
Remove unused ini class name settings
Change 2948917 on 2016/04/19 by Aaron.McLeran
UE-29654 FadeIn invalidates Audio Components in 4.11
Change 2949567 on 2016/04/20 by James.Golding
- Add SliceProceduralMesh utility to UKismetProceduralMeshLibrary. It will slice the ProcMeshComp with a plan, including simple collision geom, and optionally create cap geometry, and create an addition ProceduralMeshComponent for the other half
- Add support for simple collision on ProceduralMeshComponent, and added bUseComplexAsSimpleCollision to allow it to be used
- Move GeomTools.h and .cpp from Editor to Engine module, so it can be used at runtime. Also move utils into an FGeomTools namespace.
- Add GetSectionFromStaticMesh and CopyProceduralMeshFromStaticMeshComponent utilities to UKismetProceduralMeshLibrary
- Expose UStaticMesh::GetNumLODs to BP, and add BP exposed UStaticMesh:: GetNumSections function
Change 2950482 on 2016/04/20 by Aaron.McLeran
FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
Change 2951102 on 2016/04/21 by Thomas.Sarkanen
Un-deprecated blueprint functions for attachment/detachment
Renamed functions to <FuncName> (Deprecated).
Hid functions in the BP context menu so new ones cant be added.
#jira UE-23216 - "Snap to Target, Keep World Scale" when attaching doesn't work properly if parent is scaled.
Change 2951173 on 2016/04/21 by James.Golding
Fix cap geom generation when more than one polygon is generated
Fix CIS warning in KismetProceduralMeshLibrary.cpp
Change 2951334 on 2016/04/21 by Osman.Tsjardiwal
Add CapMaterial param to SliceProceduralMesh util
Change 2951528 on 2016/04/21 by Marc.Audy
Fix spelling errors in comments
Change 2952933 on 2016/04/22 by Lukasz.Furman
fixed behavior tree getting stuck on instantly finished gameplay tasks
copy of CL# 2952930
Change 2953948 on 2016/04/24 by James.Golding
Put #if WITH_EDITOR back into FPoly::Triangulate to fix non-editor builds (FPoly::Finalize not available in non-editor)
Change 2954558 on 2016/04/25 by Marc.Audy
Make USceneComponent::Attach* members private and remove deprecation messages and pragmas disabling/enabling deprecation throughout SceneComponent.h/cpp
#jira UE-29038
Change 2954865 on 2016/04/25 by Aaron.McLeran
UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
Change 2955009 on 2016/04/25 by Zak.Middleton
#ue4 - Wrap call from UCharacterMovementComponent::PostPhysicsTickComponent() to UpdateBasedMovement() in a FScopedMovementUpdate to accumulate moves with better perf.
Change 2955878 on 2016/04/26 by Benn.Gallagher
[Epic Friday] - Added spherical constraints to anim dynamics
Change 2956380 on 2016/04/26 by Lina.Halper
PR #2298: Step interpolation for UAnimSequence (Contributed by douglaslassance)
Change 2956383 on 2016/04/26 by Lina.Halper
Fixed to match coding standard
Change 2957866 on 2016/04/27 by Zak.Middleton
#ue4 - Add max depenetration distance settings for CharacterMovementComponent. Add controls to throttle logging when character is stuck in geometry so it doesn't spam the log.
- Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.
- "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.
#tests QA-Surfaces multiplayer, walking in to moving objects and pawns.
Change 2957953 on 2016/04/27 by Aaron.McLeran
UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
Change 2958011 on 2016/04/27 by Jon.Nabozny
CalcAABB wasn't properly accounting for current transform on Convex elements, causing bad results.
#JIRA UE-29525
Change 2958321 on 2016/04/27 by Lukasz.Furman
path following update pass, added flags to request result, fixed AITask stacking vs scripted/BP move requests
Change 2959506 on 2016/04/28 by Aaron.McLeran
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
Change 2959686 on 2016/04/28 by Marc.Audy
Correctly handle multiple viewpoints when significance is being sorted descending
Change 2959773 on 2016/04/28 by Marc.Audy
Fix shadowing warning
Change 2959785 on 2016/04/28 by Aaron.McLeran
UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
Change 2960852 on 2016/04/29 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2960738
Change 2960946 on 2016/04/29 by Marc.Audy
Fix post merge compile error
Change 2962501 on 2016/05/02 by Marc.Audy
Remove interim GetMutableAttach accessors and use the variables directly now that they are private
Change 2962535 on 2016/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2962478
Change 2962578 on 2016/05/02 by Marc.Audy
Switch ObjectGraphMove to using UserFlags instead of custom move data
Change 2962651 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2962662 on 2016/05/02 by Lukasz.Furman
deprecated old implementation of gameplay debugger
#jira UE-30011
Change 2962919 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2963475 on 2016/05/02 by Mieszko.Zielinski
Made SimpleMoveToLocation/Actor not reset velocity if agent not already at goal #UE4
#jira UE-30176
Change 2964098 on 2016/05/03 by Marc.Audy
Spelling fix
Change 2964099 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964156 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964272 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable fixes
Change 2964395 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable Fixes
Change 2964460 on 2016/05/03 by Marc.Audy
Reschedule coolingdown tick functions during pause frames.
#jira UE-30221
Change 2964666 on 2016/05/03 by Marc.Audy
Fix shipping compile error
[CL 2964775 by Marc Audy in Main branch]
2016-05-03 15:44:33 -04:00
InTabManager - > RegisterTabSpawner ( PreviewTabId , FOnSpawnTab : : CreateSP ( this , & FTranslationEditor : : SpawnTab_Preview ) )
2014-03-14 14:13:41 -04:00
. SetDisplayName ( LOCTEXT ( " PreviewTab " , " Preview " ) )
2014-10-09 12:34:55 -04:00
. SetGroup ( WorkspaceMenuCategoryRef ) ;
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2964666)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945310 on 2016/04/15 by Jon.Nabozny
Fix UI locking Angular Rotation Offset for PhysicsConstraintComponents when the motion is for axes is Free or Locked.
#JIRA UE-29368
Change 2945490 on 2016/04/15 by Jon.Nabozny
Remove extraneous changes introduced in CL-2945310.
Change 2946706 on 2016/04/18 by James.Golding
Checkin of slice test assets
Change 2947895 on 2016/04/19 by Benn.Gallagher
PR #2292: Use ref instead of copy in FAnimNode_ModifyBone::EvaluateBoneTransforms (Contributed by MiKom)
#jira UE-29567
Change 2947944 on 2016/04/19 by Benn.Gallagher
Fixed a few extra needless bone container copies
Change 2948279 on 2016/04/19 by Marc.Audy
Add well defined Map and Set Property names
Change 2948280 on 2016/04/19 by Marc.Audy
Properly name parameters
Change 2948792 on 2016/04/19 by Marc.Audy
Remove unused ini class name settings
Change 2948917 on 2016/04/19 by Aaron.McLeran
UE-29654 FadeIn invalidates Audio Components in 4.11
Change 2949567 on 2016/04/20 by James.Golding
- Add SliceProceduralMesh utility to UKismetProceduralMeshLibrary. It will slice the ProcMeshComp with a plan, including simple collision geom, and optionally create cap geometry, and create an addition ProceduralMeshComponent for the other half
- Add support for simple collision on ProceduralMeshComponent, and added bUseComplexAsSimpleCollision to allow it to be used
- Move GeomTools.h and .cpp from Editor to Engine module, so it can be used at runtime. Also move utils into an FGeomTools namespace.
- Add GetSectionFromStaticMesh and CopyProceduralMeshFromStaticMeshComponent utilities to UKismetProceduralMeshLibrary
- Expose UStaticMesh::GetNumLODs to BP, and add BP exposed UStaticMesh:: GetNumSections function
Change 2950482 on 2016/04/20 by Aaron.McLeran
FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
Change 2951102 on 2016/04/21 by Thomas.Sarkanen
Un-deprecated blueprint functions for attachment/detachment
Renamed functions to <FuncName> (Deprecated).
Hid functions in the BP context menu so new ones cant be added.
#jira UE-23216 - "Snap to Target, Keep World Scale" when attaching doesn't work properly if parent is scaled.
Change 2951173 on 2016/04/21 by James.Golding
Fix cap geom generation when more than one polygon is generated
Fix CIS warning in KismetProceduralMeshLibrary.cpp
Change 2951334 on 2016/04/21 by Osman.Tsjardiwal
Add CapMaterial param to SliceProceduralMesh util
Change 2951528 on 2016/04/21 by Marc.Audy
Fix spelling errors in comments
Change 2952933 on 2016/04/22 by Lukasz.Furman
fixed behavior tree getting stuck on instantly finished gameplay tasks
copy of CL# 2952930
Change 2953948 on 2016/04/24 by James.Golding
Put #if WITH_EDITOR back into FPoly::Triangulate to fix non-editor builds (FPoly::Finalize not available in non-editor)
Change 2954558 on 2016/04/25 by Marc.Audy
Make USceneComponent::Attach* members private and remove deprecation messages and pragmas disabling/enabling deprecation throughout SceneComponent.h/cpp
#jira UE-29038
Change 2954865 on 2016/04/25 by Aaron.McLeran
UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
Change 2955009 on 2016/04/25 by Zak.Middleton
#ue4 - Wrap call from UCharacterMovementComponent::PostPhysicsTickComponent() to UpdateBasedMovement() in a FScopedMovementUpdate to accumulate moves with better perf.
Change 2955878 on 2016/04/26 by Benn.Gallagher
[Epic Friday] - Added spherical constraints to anim dynamics
Change 2956380 on 2016/04/26 by Lina.Halper
PR #2298: Step interpolation for UAnimSequence (Contributed by douglaslassance)
Change 2956383 on 2016/04/26 by Lina.Halper
Fixed to match coding standard
Change 2957866 on 2016/04/27 by Zak.Middleton
#ue4 - Add max depenetration distance settings for CharacterMovementComponent. Add controls to throttle logging when character is stuck in geometry so it doesn't spam the log.
- Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.
- "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.
#tests QA-Surfaces multiplayer, walking in to moving objects and pawns.
Change 2957953 on 2016/04/27 by Aaron.McLeran
UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
Change 2958011 on 2016/04/27 by Jon.Nabozny
CalcAABB wasn't properly accounting for current transform on Convex elements, causing bad results.
#JIRA UE-29525
Change 2958321 on 2016/04/27 by Lukasz.Furman
path following update pass, added flags to request result, fixed AITask stacking vs scripted/BP move requests
Change 2959506 on 2016/04/28 by Aaron.McLeran
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
Change 2959686 on 2016/04/28 by Marc.Audy
Correctly handle multiple viewpoints when significance is being sorted descending
Change 2959773 on 2016/04/28 by Marc.Audy
Fix shadowing warning
Change 2959785 on 2016/04/28 by Aaron.McLeran
UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
Change 2960852 on 2016/04/29 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2960738
Change 2960946 on 2016/04/29 by Marc.Audy
Fix post merge compile error
Change 2962501 on 2016/05/02 by Marc.Audy
Remove interim GetMutableAttach accessors and use the variables directly now that they are private
Change 2962535 on 2016/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2962478
Change 2962578 on 2016/05/02 by Marc.Audy
Switch ObjectGraphMove to using UserFlags instead of custom move data
Change 2962651 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2962662 on 2016/05/02 by Lukasz.Furman
deprecated old implementation of gameplay debugger
#jira UE-30011
Change 2962919 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2963475 on 2016/05/02 by Mieszko.Zielinski
Made SimpleMoveToLocation/Actor not reset velocity if agent not already at goal #UE4
#jira UE-30176
Change 2964098 on 2016/05/03 by Marc.Audy
Spelling fix
Change 2964099 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964156 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964272 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable fixes
Change 2964395 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable Fixes
Change 2964460 on 2016/05/03 by Marc.Audy
Reschedule coolingdown tick functions during pause frames.
#jira UE-30221
Change 2964666 on 2016/05/03 by Marc.Audy
Fix shipping compile error
[CL 2964775 by Marc Audy in Main branch]
2016-05-03 15:44:33 -04:00
InTabManager - > RegisterTabSpawner ( ContextTabId , FOnSpawnTab : : CreateSP ( this , & FTranslationEditor : : SpawnTab_Context ) )
2014-03-14 14:13:41 -04:00
. SetDisplayName ( LOCTEXT ( " ContextTab " , " Context " ) )
2014-10-09 12:34:55 -04:00
. SetGroup ( WorkspaceMenuCategoryRef ) ;
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2964666)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945310 on 2016/04/15 by Jon.Nabozny
Fix UI locking Angular Rotation Offset for PhysicsConstraintComponents when the motion is for axes is Free or Locked.
#JIRA UE-29368
Change 2945490 on 2016/04/15 by Jon.Nabozny
Remove extraneous changes introduced in CL-2945310.
Change 2946706 on 2016/04/18 by James.Golding
Checkin of slice test assets
Change 2947895 on 2016/04/19 by Benn.Gallagher
PR #2292: Use ref instead of copy in FAnimNode_ModifyBone::EvaluateBoneTransforms (Contributed by MiKom)
#jira UE-29567
Change 2947944 on 2016/04/19 by Benn.Gallagher
Fixed a few extra needless bone container copies
Change 2948279 on 2016/04/19 by Marc.Audy
Add well defined Map and Set Property names
Change 2948280 on 2016/04/19 by Marc.Audy
Properly name parameters
Change 2948792 on 2016/04/19 by Marc.Audy
Remove unused ini class name settings
Change 2948917 on 2016/04/19 by Aaron.McLeran
UE-29654 FadeIn invalidates Audio Components in 4.11
Change 2949567 on 2016/04/20 by James.Golding
- Add SliceProceduralMesh utility to UKismetProceduralMeshLibrary. It will slice the ProcMeshComp with a plan, including simple collision geom, and optionally create cap geometry, and create an addition ProceduralMeshComponent for the other half
- Add support for simple collision on ProceduralMeshComponent, and added bUseComplexAsSimpleCollision to allow it to be used
- Move GeomTools.h and .cpp from Editor to Engine module, so it can be used at runtime. Also move utils into an FGeomTools namespace.
- Add GetSectionFromStaticMesh and CopyProceduralMeshFromStaticMeshComponent utilities to UKismetProceduralMeshLibrary
- Expose UStaticMesh::GetNumLODs to BP, and add BP exposed UStaticMesh:: GetNumSections function
Change 2950482 on 2016/04/20 by Aaron.McLeran
FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
Change 2951102 on 2016/04/21 by Thomas.Sarkanen
Un-deprecated blueprint functions for attachment/detachment
Renamed functions to <FuncName> (Deprecated).
Hid functions in the BP context menu so new ones cant be added.
#jira UE-23216 - "Snap to Target, Keep World Scale" when attaching doesn't work properly if parent is scaled.
Change 2951173 on 2016/04/21 by James.Golding
Fix cap geom generation when more than one polygon is generated
Fix CIS warning in KismetProceduralMeshLibrary.cpp
Change 2951334 on 2016/04/21 by Osman.Tsjardiwal
Add CapMaterial param to SliceProceduralMesh util
Change 2951528 on 2016/04/21 by Marc.Audy
Fix spelling errors in comments
Change 2952933 on 2016/04/22 by Lukasz.Furman
fixed behavior tree getting stuck on instantly finished gameplay tasks
copy of CL# 2952930
Change 2953948 on 2016/04/24 by James.Golding
Put #if WITH_EDITOR back into FPoly::Triangulate to fix non-editor builds (FPoly::Finalize not available in non-editor)
Change 2954558 on 2016/04/25 by Marc.Audy
Make USceneComponent::Attach* members private and remove deprecation messages and pragmas disabling/enabling deprecation throughout SceneComponent.h/cpp
#jira UE-29038
Change 2954865 on 2016/04/25 by Aaron.McLeran
UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
Change 2955009 on 2016/04/25 by Zak.Middleton
#ue4 - Wrap call from UCharacterMovementComponent::PostPhysicsTickComponent() to UpdateBasedMovement() in a FScopedMovementUpdate to accumulate moves with better perf.
Change 2955878 on 2016/04/26 by Benn.Gallagher
[Epic Friday] - Added spherical constraints to anim dynamics
Change 2956380 on 2016/04/26 by Lina.Halper
PR #2298: Step interpolation for UAnimSequence (Contributed by douglaslassance)
Change 2956383 on 2016/04/26 by Lina.Halper
Fixed to match coding standard
Change 2957866 on 2016/04/27 by Zak.Middleton
#ue4 - Add max depenetration distance settings for CharacterMovementComponent. Add controls to throttle logging when character is stuck in geometry so it doesn't spam the log.
- Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.
- "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.
#tests QA-Surfaces multiplayer, walking in to moving objects and pawns.
Change 2957953 on 2016/04/27 by Aaron.McLeran
UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
Change 2958011 on 2016/04/27 by Jon.Nabozny
CalcAABB wasn't properly accounting for current transform on Convex elements, causing bad results.
#JIRA UE-29525
Change 2958321 on 2016/04/27 by Lukasz.Furman
path following update pass, added flags to request result, fixed AITask stacking vs scripted/BP move requests
Change 2959506 on 2016/04/28 by Aaron.McLeran
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
Change 2959686 on 2016/04/28 by Marc.Audy
Correctly handle multiple viewpoints when significance is being sorted descending
Change 2959773 on 2016/04/28 by Marc.Audy
Fix shadowing warning
Change 2959785 on 2016/04/28 by Aaron.McLeran
UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
Change 2960852 on 2016/04/29 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2960738
Change 2960946 on 2016/04/29 by Marc.Audy
Fix post merge compile error
Change 2962501 on 2016/05/02 by Marc.Audy
Remove interim GetMutableAttach accessors and use the variables directly now that they are private
Change 2962535 on 2016/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2962478
Change 2962578 on 2016/05/02 by Marc.Audy
Switch ObjectGraphMove to using UserFlags instead of custom move data
Change 2962651 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2962662 on 2016/05/02 by Lukasz.Furman
deprecated old implementation of gameplay debugger
#jira UE-30011
Change 2962919 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2963475 on 2016/05/02 by Mieszko.Zielinski
Made SimpleMoveToLocation/Actor not reset velocity if agent not already at goal #UE4
#jira UE-30176
Change 2964098 on 2016/05/03 by Marc.Audy
Spelling fix
Change 2964099 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964156 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964272 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable fixes
Change 2964395 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable Fixes
Change 2964460 on 2016/05/03 by Marc.Audy
Reschedule coolingdown tick functions during pause frames.
#jira UE-30221
Change 2964666 on 2016/05/03 by Marc.Audy
Fix shipping compile error
[CL 2964775 by Marc Audy in Main branch]
2016-05-03 15:44:33 -04:00
InTabManager - > RegisterTabSpawner ( HistoryTabId , FOnSpawnTab : : CreateSP ( this , & FTranslationEditor : : SpawnTab_History ) )
2014-03-14 14:13:41 -04:00
. SetDisplayName ( LOCTEXT ( " HistoryTab " , " History " ) )
2014-10-09 12:34:55 -04:00
. SetGroup ( WorkspaceMenuCategoryRef ) ;
2014-04-23 18:48:34 -04:00
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2964666)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945310 on 2016/04/15 by Jon.Nabozny
Fix UI locking Angular Rotation Offset for PhysicsConstraintComponents when the motion is for axes is Free or Locked.
#JIRA UE-29368
Change 2945490 on 2016/04/15 by Jon.Nabozny
Remove extraneous changes introduced in CL-2945310.
Change 2946706 on 2016/04/18 by James.Golding
Checkin of slice test assets
Change 2947895 on 2016/04/19 by Benn.Gallagher
PR #2292: Use ref instead of copy in FAnimNode_ModifyBone::EvaluateBoneTransforms (Contributed by MiKom)
#jira UE-29567
Change 2947944 on 2016/04/19 by Benn.Gallagher
Fixed a few extra needless bone container copies
Change 2948279 on 2016/04/19 by Marc.Audy
Add well defined Map and Set Property names
Change 2948280 on 2016/04/19 by Marc.Audy
Properly name parameters
Change 2948792 on 2016/04/19 by Marc.Audy
Remove unused ini class name settings
Change 2948917 on 2016/04/19 by Aaron.McLeran
UE-29654 FadeIn invalidates Audio Components in 4.11
Change 2949567 on 2016/04/20 by James.Golding
- Add SliceProceduralMesh utility to UKismetProceduralMeshLibrary. It will slice the ProcMeshComp with a plan, including simple collision geom, and optionally create cap geometry, and create an addition ProceduralMeshComponent for the other half
- Add support for simple collision on ProceduralMeshComponent, and added bUseComplexAsSimpleCollision to allow it to be used
- Move GeomTools.h and .cpp from Editor to Engine module, so it can be used at runtime. Also move utils into an FGeomTools namespace.
- Add GetSectionFromStaticMesh and CopyProceduralMeshFromStaticMeshComponent utilities to UKismetProceduralMeshLibrary
- Expose UStaticMesh::GetNumLODs to BP, and add BP exposed UStaticMesh:: GetNumSections function
Change 2950482 on 2016/04/20 by Aaron.McLeran
FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
Change 2951102 on 2016/04/21 by Thomas.Sarkanen
Un-deprecated blueprint functions for attachment/detachment
Renamed functions to <FuncName> (Deprecated).
Hid functions in the BP context menu so new ones cant be added.
#jira UE-23216 - "Snap to Target, Keep World Scale" when attaching doesn't work properly if parent is scaled.
Change 2951173 on 2016/04/21 by James.Golding
Fix cap geom generation when more than one polygon is generated
Fix CIS warning in KismetProceduralMeshLibrary.cpp
Change 2951334 on 2016/04/21 by Osman.Tsjardiwal
Add CapMaterial param to SliceProceduralMesh util
Change 2951528 on 2016/04/21 by Marc.Audy
Fix spelling errors in comments
Change 2952933 on 2016/04/22 by Lukasz.Furman
fixed behavior tree getting stuck on instantly finished gameplay tasks
copy of CL# 2952930
Change 2953948 on 2016/04/24 by James.Golding
Put #if WITH_EDITOR back into FPoly::Triangulate to fix non-editor builds (FPoly::Finalize not available in non-editor)
Change 2954558 on 2016/04/25 by Marc.Audy
Make USceneComponent::Attach* members private and remove deprecation messages and pragmas disabling/enabling deprecation throughout SceneComponent.h/cpp
#jira UE-29038
Change 2954865 on 2016/04/25 by Aaron.McLeran
UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
Change 2955009 on 2016/04/25 by Zak.Middleton
#ue4 - Wrap call from UCharacterMovementComponent::PostPhysicsTickComponent() to UpdateBasedMovement() in a FScopedMovementUpdate to accumulate moves with better perf.
Change 2955878 on 2016/04/26 by Benn.Gallagher
[Epic Friday] - Added spherical constraints to anim dynamics
Change 2956380 on 2016/04/26 by Lina.Halper
PR #2298: Step interpolation for UAnimSequence (Contributed by douglaslassance)
Change 2956383 on 2016/04/26 by Lina.Halper
Fixed to match coding standard
Change 2957866 on 2016/04/27 by Zak.Middleton
#ue4 - Add max depenetration distance settings for CharacterMovementComponent. Add controls to throttle logging when character is stuck in geometry so it doesn't spam the log.
- Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.
- "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.
#tests QA-Surfaces multiplayer, walking in to moving objects and pawns.
Change 2957953 on 2016/04/27 by Aaron.McLeran
UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
Change 2958011 on 2016/04/27 by Jon.Nabozny
CalcAABB wasn't properly accounting for current transform on Convex elements, causing bad results.
#JIRA UE-29525
Change 2958321 on 2016/04/27 by Lukasz.Furman
path following update pass, added flags to request result, fixed AITask stacking vs scripted/BP move requests
Change 2959506 on 2016/04/28 by Aaron.McLeran
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
Change 2959686 on 2016/04/28 by Marc.Audy
Correctly handle multiple viewpoints when significance is being sorted descending
Change 2959773 on 2016/04/28 by Marc.Audy
Fix shadowing warning
Change 2959785 on 2016/04/28 by Aaron.McLeran
UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
Change 2960852 on 2016/04/29 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2960738
Change 2960946 on 2016/04/29 by Marc.Audy
Fix post merge compile error
Change 2962501 on 2016/05/02 by Marc.Audy
Remove interim GetMutableAttach accessors and use the variables directly now that they are private
Change 2962535 on 2016/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2962478
Change 2962578 on 2016/05/02 by Marc.Audy
Switch ObjectGraphMove to using UserFlags instead of custom move data
Change 2962651 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2962662 on 2016/05/02 by Lukasz.Furman
deprecated old implementation of gameplay debugger
#jira UE-30011
Change 2962919 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2963475 on 2016/05/02 by Mieszko.Zielinski
Made SimpleMoveToLocation/Actor not reset velocity if agent not already at goal #UE4
#jira UE-30176
Change 2964098 on 2016/05/03 by Marc.Audy
Spelling fix
Change 2964099 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964156 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964272 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable fixes
Change 2964395 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable Fixes
Change 2964460 on 2016/05/03 by Marc.Audy
Reschedule coolingdown tick functions during pause frames.
#jira UE-30221
Change 2964666 on 2016/05/03 by Marc.Audy
Fix shipping compile error
[CL 2964775 by Marc Audy in Main branch]
2016-05-03 15:44:33 -04:00
InTabManager - > RegisterTabSpawner ( SearchTabId , FOnSpawnTab : : CreateSP ( this , & FTranslationEditor : : SpawnTab_Search ) )
2014-04-23 18:48:34 -04:00
. SetDisplayName ( LOCTEXT ( " SearchTab " , " Search " ) )
2014-10-09 12:34:55 -04:00
. SetGroup ( WorkspaceMenuCategoryRef ) ;
2014-04-23 19:14:07 -04:00
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2964666)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945310 on 2016/04/15 by Jon.Nabozny
Fix UI locking Angular Rotation Offset for PhysicsConstraintComponents when the motion is for axes is Free or Locked.
#JIRA UE-29368
Change 2945490 on 2016/04/15 by Jon.Nabozny
Remove extraneous changes introduced in CL-2945310.
Change 2946706 on 2016/04/18 by James.Golding
Checkin of slice test assets
Change 2947895 on 2016/04/19 by Benn.Gallagher
PR #2292: Use ref instead of copy in FAnimNode_ModifyBone::EvaluateBoneTransforms (Contributed by MiKom)
#jira UE-29567
Change 2947944 on 2016/04/19 by Benn.Gallagher
Fixed a few extra needless bone container copies
Change 2948279 on 2016/04/19 by Marc.Audy
Add well defined Map and Set Property names
Change 2948280 on 2016/04/19 by Marc.Audy
Properly name parameters
Change 2948792 on 2016/04/19 by Marc.Audy
Remove unused ini class name settings
Change 2948917 on 2016/04/19 by Aaron.McLeran
UE-29654 FadeIn invalidates Audio Components in 4.11
Change 2949567 on 2016/04/20 by James.Golding
- Add SliceProceduralMesh utility to UKismetProceduralMeshLibrary. It will slice the ProcMeshComp with a plan, including simple collision geom, and optionally create cap geometry, and create an addition ProceduralMeshComponent for the other half
- Add support for simple collision on ProceduralMeshComponent, and added bUseComplexAsSimpleCollision to allow it to be used
- Move GeomTools.h and .cpp from Editor to Engine module, so it can be used at runtime. Also move utils into an FGeomTools namespace.
- Add GetSectionFromStaticMesh and CopyProceduralMeshFromStaticMeshComponent utilities to UKismetProceduralMeshLibrary
- Expose UStaticMesh::GetNumLODs to BP, and add BP exposed UStaticMesh:: GetNumSections function
Change 2950482 on 2016/04/20 by Aaron.McLeran
FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
Change 2951102 on 2016/04/21 by Thomas.Sarkanen
Un-deprecated blueprint functions for attachment/detachment
Renamed functions to <FuncName> (Deprecated).
Hid functions in the BP context menu so new ones cant be added.
#jira UE-23216 - "Snap to Target, Keep World Scale" when attaching doesn't work properly if parent is scaled.
Change 2951173 on 2016/04/21 by James.Golding
Fix cap geom generation when more than one polygon is generated
Fix CIS warning in KismetProceduralMeshLibrary.cpp
Change 2951334 on 2016/04/21 by Osman.Tsjardiwal
Add CapMaterial param to SliceProceduralMesh util
Change 2951528 on 2016/04/21 by Marc.Audy
Fix spelling errors in comments
Change 2952933 on 2016/04/22 by Lukasz.Furman
fixed behavior tree getting stuck on instantly finished gameplay tasks
copy of CL# 2952930
Change 2953948 on 2016/04/24 by James.Golding
Put #if WITH_EDITOR back into FPoly::Triangulate to fix non-editor builds (FPoly::Finalize not available in non-editor)
Change 2954558 on 2016/04/25 by Marc.Audy
Make USceneComponent::Attach* members private and remove deprecation messages and pragmas disabling/enabling deprecation throughout SceneComponent.h/cpp
#jira UE-29038
Change 2954865 on 2016/04/25 by Aaron.McLeran
UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
Change 2955009 on 2016/04/25 by Zak.Middleton
#ue4 - Wrap call from UCharacterMovementComponent::PostPhysicsTickComponent() to UpdateBasedMovement() in a FScopedMovementUpdate to accumulate moves with better perf.
Change 2955878 on 2016/04/26 by Benn.Gallagher
[Epic Friday] - Added spherical constraints to anim dynamics
Change 2956380 on 2016/04/26 by Lina.Halper
PR #2298: Step interpolation for UAnimSequence (Contributed by douglaslassance)
Change 2956383 on 2016/04/26 by Lina.Halper
Fixed to match coding standard
Change 2957866 on 2016/04/27 by Zak.Middleton
#ue4 - Add max depenetration distance settings for CharacterMovementComponent. Add controls to throttle logging when character is stuck in geometry so it doesn't spam the log.
- Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.
- "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.
#tests QA-Surfaces multiplayer, walking in to moving objects and pawns.
Change 2957953 on 2016/04/27 by Aaron.McLeran
UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
Change 2958011 on 2016/04/27 by Jon.Nabozny
CalcAABB wasn't properly accounting for current transform on Convex elements, causing bad results.
#JIRA UE-29525
Change 2958321 on 2016/04/27 by Lukasz.Furman
path following update pass, added flags to request result, fixed AITask stacking vs scripted/BP move requests
Change 2959506 on 2016/04/28 by Aaron.McLeran
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
Change 2959686 on 2016/04/28 by Marc.Audy
Correctly handle multiple viewpoints when significance is being sorted descending
Change 2959773 on 2016/04/28 by Marc.Audy
Fix shadowing warning
Change 2959785 on 2016/04/28 by Aaron.McLeran
UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
Change 2960852 on 2016/04/29 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2960738
Change 2960946 on 2016/04/29 by Marc.Audy
Fix post merge compile error
Change 2962501 on 2016/05/02 by Marc.Audy
Remove interim GetMutableAttach accessors and use the variables directly now that they are private
Change 2962535 on 2016/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2962478
Change 2962578 on 2016/05/02 by Marc.Audy
Switch ObjectGraphMove to using UserFlags instead of custom move data
Change 2962651 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2962662 on 2016/05/02 by Lukasz.Furman
deprecated old implementation of gameplay debugger
#jira UE-30011
Change 2962919 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2963475 on 2016/05/02 by Mieszko.Zielinski
Made SimpleMoveToLocation/Actor not reset velocity if agent not already at goal #UE4
#jira UE-30176
Change 2964098 on 2016/05/03 by Marc.Audy
Spelling fix
Change 2964099 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964156 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964272 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable fixes
Change 2964395 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable Fixes
Change 2964460 on 2016/05/03 by Marc.Audy
Reschedule coolingdown tick functions during pause frames.
#jira UE-30221
Change 2964666 on 2016/05/03 by Marc.Audy
Fix shipping compile error
[CL 2964775 by Marc Audy in Main branch]
2016-05-03 15:44:33 -04:00
InTabManager - > RegisterTabSpawner ( ChangedOnImportTabId , FOnSpawnTab : : CreateSP ( this , & FTranslationEditor : : SpawnTab_ChangedOnImport ) )
2014-10-09 12:34:55 -04:00
. SetDisplayName ( LOCTEXT ( " ChangedOnImportTab " , " Changed On Import " ) )
. SetGroup ( WorkspaceMenuCategoryRef ) ;
2014-03-14 14:13:41 -04:00
}
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2964666)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945310 on 2016/04/15 by Jon.Nabozny
Fix UI locking Angular Rotation Offset for PhysicsConstraintComponents when the motion is for axes is Free or Locked.
#JIRA UE-29368
Change 2945490 on 2016/04/15 by Jon.Nabozny
Remove extraneous changes introduced in CL-2945310.
Change 2946706 on 2016/04/18 by James.Golding
Checkin of slice test assets
Change 2947895 on 2016/04/19 by Benn.Gallagher
PR #2292: Use ref instead of copy in FAnimNode_ModifyBone::EvaluateBoneTransforms (Contributed by MiKom)
#jira UE-29567
Change 2947944 on 2016/04/19 by Benn.Gallagher
Fixed a few extra needless bone container copies
Change 2948279 on 2016/04/19 by Marc.Audy
Add well defined Map and Set Property names
Change 2948280 on 2016/04/19 by Marc.Audy
Properly name parameters
Change 2948792 on 2016/04/19 by Marc.Audy
Remove unused ini class name settings
Change 2948917 on 2016/04/19 by Aaron.McLeran
UE-29654 FadeIn invalidates Audio Components in 4.11
Change 2949567 on 2016/04/20 by James.Golding
- Add SliceProceduralMesh utility to UKismetProceduralMeshLibrary. It will slice the ProcMeshComp with a plan, including simple collision geom, and optionally create cap geometry, and create an addition ProceduralMeshComponent for the other half
- Add support for simple collision on ProceduralMeshComponent, and added bUseComplexAsSimpleCollision to allow it to be used
- Move GeomTools.h and .cpp from Editor to Engine module, so it can be used at runtime. Also move utils into an FGeomTools namespace.
- Add GetSectionFromStaticMesh and CopyProceduralMeshFromStaticMeshComponent utilities to UKismetProceduralMeshLibrary
- Expose UStaticMesh::GetNumLODs to BP, and add BP exposed UStaticMesh:: GetNumSections function
Change 2950482 on 2016/04/20 by Aaron.McLeran
FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
Change 2951102 on 2016/04/21 by Thomas.Sarkanen
Un-deprecated blueprint functions for attachment/detachment
Renamed functions to <FuncName> (Deprecated).
Hid functions in the BP context menu so new ones cant be added.
#jira UE-23216 - "Snap to Target, Keep World Scale" when attaching doesn't work properly if parent is scaled.
Change 2951173 on 2016/04/21 by James.Golding
Fix cap geom generation when more than one polygon is generated
Fix CIS warning in KismetProceduralMeshLibrary.cpp
Change 2951334 on 2016/04/21 by Osman.Tsjardiwal
Add CapMaterial param to SliceProceduralMesh util
Change 2951528 on 2016/04/21 by Marc.Audy
Fix spelling errors in comments
Change 2952933 on 2016/04/22 by Lukasz.Furman
fixed behavior tree getting stuck on instantly finished gameplay tasks
copy of CL# 2952930
Change 2953948 on 2016/04/24 by James.Golding
Put #if WITH_EDITOR back into FPoly::Triangulate to fix non-editor builds (FPoly::Finalize not available in non-editor)
Change 2954558 on 2016/04/25 by Marc.Audy
Make USceneComponent::Attach* members private and remove deprecation messages and pragmas disabling/enabling deprecation throughout SceneComponent.h/cpp
#jira UE-29038
Change 2954865 on 2016/04/25 by Aaron.McLeran
UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
Change 2955009 on 2016/04/25 by Zak.Middleton
#ue4 - Wrap call from UCharacterMovementComponent::PostPhysicsTickComponent() to UpdateBasedMovement() in a FScopedMovementUpdate to accumulate moves with better perf.
Change 2955878 on 2016/04/26 by Benn.Gallagher
[Epic Friday] - Added spherical constraints to anim dynamics
Change 2956380 on 2016/04/26 by Lina.Halper
PR #2298: Step interpolation for UAnimSequence (Contributed by douglaslassance)
Change 2956383 on 2016/04/26 by Lina.Halper
Fixed to match coding standard
Change 2957866 on 2016/04/27 by Zak.Middleton
#ue4 - Add max depenetration distance settings for CharacterMovementComponent. Add controls to throttle logging when character is stuck in geometry so it doesn't spam the log.
- Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.
- "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.
#tests QA-Surfaces multiplayer, walking in to moving objects and pawns.
Change 2957953 on 2016/04/27 by Aaron.McLeran
UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
Change 2958011 on 2016/04/27 by Jon.Nabozny
CalcAABB wasn't properly accounting for current transform on Convex elements, causing bad results.
#JIRA UE-29525
Change 2958321 on 2016/04/27 by Lukasz.Furman
path following update pass, added flags to request result, fixed AITask stacking vs scripted/BP move requests
Change 2959506 on 2016/04/28 by Aaron.McLeran
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
Change 2959686 on 2016/04/28 by Marc.Audy
Correctly handle multiple viewpoints when significance is being sorted descending
Change 2959773 on 2016/04/28 by Marc.Audy
Fix shadowing warning
Change 2959785 on 2016/04/28 by Aaron.McLeran
UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
Change 2960852 on 2016/04/29 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2960738
Change 2960946 on 2016/04/29 by Marc.Audy
Fix post merge compile error
Change 2962501 on 2016/05/02 by Marc.Audy
Remove interim GetMutableAttach accessors and use the variables directly now that they are private
Change 2962535 on 2016/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2962478
Change 2962578 on 2016/05/02 by Marc.Audy
Switch ObjectGraphMove to using UserFlags instead of custom move data
Change 2962651 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2962662 on 2016/05/02 by Lukasz.Furman
deprecated old implementation of gameplay debugger
#jira UE-30011
Change 2962919 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2963475 on 2016/05/02 by Mieszko.Zielinski
Made SimpleMoveToLocation/Actor not reset velocity if agent not already at goal #UE4
#jira UE-30176
Change 2964098 on 2016/05/03 by Marc.Audy
Spelling fix
Change 2964099 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964156 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964272 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable fixes
Change 2964395 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable Fixes
Change 2964460 on 2016/05/03 by Marc.Audy
Reschedule coolingdown tick functions during pause frames.
#jira UE-30221
Change 2964666 on 2016/05/03 by Marc.Audy
Fix shipping compile error
[CL 2964775 by Marc Audy in Main branch]
2016-05-03 15:44:33 -04:00
void FTranslationEditor : : UnregisterTabSpawners ( const TSharedRef < class FTabManager > & InTabManager )
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2964666)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945310 on 2016/04/15 by Jon.Nabozny
Fix UI locking Angular Rotation Offset for PhysicsConstraintComponents when the motion is for axes is Free or Locked.
#JIRA UE-29368
Change 2945490 on 2016/04/15 by Jon.Nabozny
Remove extraneous changes introduced in CL-2945310.
Change 2946706 on 2016/04/18 by James.Golding
Checkin of slice test assets
Change 2947895 on 2016/04/19 by Benn.Gallagher
PR #2292: Use ref instead of copy in FAnimNode_ModifyBone::EvaluateBoneTransforms (Contributed by MiKom)
#jira UE-29567
Change 2947944 on 2016/04/19 by Benn.Gallagher
Fixed a few extra needless bone container copies
Change 2948279 on 2016/04/19 by Marc.Audy
Add well defined Map and Set Property names
Change 2948280 on 2016/04/19 by Marc.Audy
Properly name parameters
Change 2948792 on 2016/04/19 by Marc.Audy
Remove unused ini class name settings
Change 2948917 on 2016/04/19 by Aaron.McLeran
UE-29654 FadeIn invalidates Audio Components in 4.11
Change 2949567 on 2016/04/20 by James.Golding
- Add SliceProceduralMesh utility to UKismetProceduralMeshLibrary. It will slice the ProcMeshComp with a plan, including simple collision geom, and optionally create cap geometry, and create an addition ProceduralMeshComponent for the other half
- Add support for simple collision on ProceduralMeshComponent, and added bUseComplexAsSimpleCollision to allow it to be used
- Move GeomTools.h and .cpp from Editor to Engine module, so it can be used at runtime. Also move utils into an FGeomTools namespace.
- Add GetSectionFromStaticMesh and CopyProceduralMeshFromStaticMeshComponent utilities to UKismetProceduralMeshLibrary
- Expose UStaticMesh::GetNumLODs to BP, and add BP exposed UStaticMesh:: GetNumSections function
Change 2950482 on 2016/04/20 by Aaron.McLeran
FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
Change 2951102 on 2016/04/21 by Thomas.Sarkanen
Un-deprecated blueprint functions for attachment/detachment
Renamed functions to <FuncName> (Deprecated).
Hid functions in the BP context menu so new ones cant be added.
#jira UE-23216 - "Snap to Target, Keep World Scale" when attaching doesn't work properly if parent is scaled.
Change 2951173 on 2016/04/21 by James.Golding
Fix cap geom generation when more than one polygon is generated
Fix CIS warning in KismetProceduralMeshLibrary.cpp
Change 2951334 on 2016/04/21 by Osman.Tsjardiwal
Add CapMaterial param to SliceProceduralMesh util
Change 2951528 on 2016/04/21 by Marc.Audy
Fix spelling errors in comments
Change 2952933 on 2016/04/22 by Lukasz.Furman
fixed behavior tree getting stuck on instantly finished gameplay tasks
copy of CL# 2952930
Change 2953948 on 2016/04/24 by James.Golding
Put #if WITH_EDITOR back into FPoly::Triangulate to fix non-editor builds (FPoly::Finalize not available in non-editor)
Change 2954558 on 2016/04/25 by Marc.Audy
Make USceneComponent::Attach* members private and remove deprecation messages and pragmas disabling/enabling deprecation throughout SceneComponent.h/cpp
#jira UE-29038
Change 2954865 on 2016/04/25 by Aaron.McLeran
UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
Change 2955009 on 2016/04/25 by Zak.Middleton
#ue4 - Wrap call from UCharacterMovementComponent::PostPhysicsTickComponent() to UpdateBasedMovement() in a FScopedMovementUpdate to accumulate moves with better perf.
Change 2955878 on 2016/04/26 by Benn.Gallagher
[Epic Friday] - Added spherical constraints to anim dynamics
Change 2956380 on 2016/04/26 by Lina.Halper
PR #2298: Step interpolation for UAnimSequence (Contributed by douglaslassance)
Change 2956383 on 2016/04/26 by Lina.Halper
Fixed to match coding standard
Change 2957866 on 2016/04/27 by Zak.Middleton
#ue4 - Add max depenetration distance settings for CharacterMovementComponent. Add controls to throttle logging when character is stuck in geometry so it doesn't spam the log.
- Depenetration settings are separated based on whether overlapping a Pawn versus other geometry, and furthermore by whether the Character is a proxy or not. Simulated proxies typically should not depenetrate a large amount because that effectively ignores the server authoritative location update.
- "Stuck" logging is controlled by the console var "p.CharacterStuckWarningPeriod". Set to number of seconds between logged events, or less than zero to disable logging.
#tests QA-Surfaces multiplayer, walking in to moving objects and pawns.
Change 2957953 on 2016/04/27 by Aaron.McLeran
UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
Change 2958011 on 2016/04/27 by Jon.Nabozny
CalcAABB wasn't properly accounting for current transform on Convex elements, causing bad results.
#JIRA UE-29525
Change 2958321 on 2016/04/27 by Lukasz.Furman
path following update pass, added flags to request result, fixed AITask stacking vs scripted/BP move requests
Change 2959506 on 2016/04/28 by Aaron.McLeran
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
Change 2959686 on 2016/04/28 by Marc.Audy
Correctly handle multiple viewpoints when significance is being sorted descending
Change 2959773 on 2016/04/28 by Marc.Audy
Fix shadowing warning
Change 2959785 on 2016/04/28 by Aaron.McLeran
UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
Change 2960852 on 2016/04/29 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2960738
Change 2960946 on 2016/04/29 by Marc.Audy
Fix post merge compile error
Change 2962501 on 2016/05/02 by Marc.Audy
Remove interim GetMutableAttach accessors and use the variables directly now that they are private
Change 2962535 on 2016/05/02 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2962478
Change 2962578 on 2016/05/02 by Marc.Audy
Switch ObjectGraphMove to using UserFlags instead of custom move data
Change 2962651 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2962662 on 2016/05/02 by Lukasz.Furman
deprecated old implementation of gameplay debugger
#jira UE-30011
Change 2962919 on 2016/05/02 by Marc.Audy
VS2015 shadow variable fixes
Change 2963475 on 2016/05/02 by Mieszko.Zielinski
Made SimpleMoveToLocation/Actor not reset velocity if agent not already at goal #UE4
#jira UE-30176
Change 2964098 on 2016/05/03 by Marc.Audy
Spelling fix
Change 2964099 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964156 on 2016/05/03 by Marc.Audy
VS2015 shadow variable fixes
Change 2964272 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable fixes
Change 2964395 on 2016/05/03 by Marc.Audy
VS2015 Shadow Variable Fixes
Change 2964460 on 2016/05/03 by Marc.Audy
Reschedule coolingdown tick functions during pause frames.
#jira UE-30221
Change 2964666 on 2016/05/03 by Marc.Audy
Fix shipping compile error
[CL 2964775 by Marc Audy in Main branch]
2016-05-03 15:44:33 -04:00
InTabManager - > UnregisterTabSpawner ( UntranslatedTabId ) ;
InTabManager - > UnregisterTabSpawner ( ReviewTabId ) ;
InTabManager - > UnregisterTabSpawner ( CompletedTabId ) ;
InTabManager - > UnregisterTabSpawner ( PreviewTabId ) ;
InTabManager - > UnregisterTabSpawner ( ContextTabId ) ;
InTabManager - > UnregisterTabSpawner ( HistoryTabId ) ;
InTabManager - > UnregisterTabSpawner ( SearchTabId ) ;
InTabManager - > UnregisterTabSpawner ( ChangedOnImportTabId ) ;
2014-03-14 14:13:41 -04:00
}
2014-04-23 18:47:10 -04:00
void FTranslationEditor : : InitTranslationEditor ( const EToolkitMode : : Type Mode , const TSharedPtr < class IToolkitHost > & InitToolkitHost )
2014-03-14 14:13:41 -04:00
{
2021-01-06 12:07:36 -04:00
TSharedRef < FTabManager : : FLayout > StandaloneDefaultLayout = FTabManager : : NewLayout ( " Standalone_TranslationEditor_Layout_v2 " )
2014-03-14 14:13:41 -04:00
- > AddArea
(
FTabManager : : NewPrimaryArea ( )
- > SetOrientation ( Orient_Vertical )
- > Split
(
FTabManager : : NewStack ( )
- > SetSizeCoefficient ( 0.5 )
- > SetHideTabWell ( false )
- > AddTab ( UntranslatedTabId , ETabState : : OpenedTab )
- > AddTab ( ReviewTabId , ETabState : : OpenedTab )
- > AddTab ( CompletedTabId , ETabState : : OpenedTab )
2014-04-23 18:48:34 -04:00
- > AddTab ( SearchTabId , ETabState : : ClosedTab )
2014-04-23 19:14:07 -04:00
- > AddTab ( ChangedOnImportTabId , ETabState : : ClosedTab )
2014-03-14 14:13:41 -04:00
)
- > Split
(
FTabManager : : NewStack ( )
- > SetSizeCoefficient ( 0.5 )
- > SetHideTabWell ( false )
- > AddTab ( PreviewTabId , ETabState : : OpenedTab )
)
- > Split
(
FTabManager : : NewSplitter ( )
- > Split
(
FTabManager : : NewStack ( )
- > SetHideTabWell ( false )
- > AddTab ( ContextTabId , ETabState : : OpenedTab )
)
- > Split
(
FTabManager : : NewStack ( )
- > SetHideTabWell ( false )
- > AddTab ( HistoryTabId , ETabState : : OpenedTab )
)
)
) ;
// Register the UI COMMANDS and map them to our functions
MapActions ( ) ;
const bool bCreateDefaultStandaloneMenu = true ;
const bool bCreateDefaultToolbar = true ;
2014-04-23 18:47:10 -04:00
// Need editing object to not be null
UTranslationUnit * EditingObject ;
2014-05-01 00:16:11 -04:00
if ( DataManager - > GetAllTranslationsArray ( ) . Num ( ) > 0 & & DataManager - > GetAllTranslationsArray ( ) [ 0 ] ! = NULL )
2014-04-23 18:47:10 -04:00
{
EditingObject = DataManager - > GetAllTranslationsArray ( ) [ 0 ] ;
}
else
{
EditingObject = NewObject < UTranslationUnit > ( ) ;
}
FAssetEditorToolkit : : InitAssetEditor ( Mode , InitToolkitHost , FTranslationEditorModule : : TranslationEditorAppIdentifier , StandaloneDefaultLayout , bCreateDefaultStandaloneMenu , bCreateDefaultToolbar , EditingObject ) ;
2014-03-14 14:13:41 -04:00
FTranslationEditorModule & TranslationEditorModule = FModuleManager : : LoadModuleChecked < FTranslationEditorModule > ( " TranslationEditor " ) ;
AddMenuExtender ( TranslationEditorModule . GetMenuExtensibilityManager ( ) - > GetAllExtenders ( GetToolkitCommands ( ) , GetEditingObjects ( ) ) ) ;
TSharedPtr < FExtender > MenuExtender = MakeShareable ( new FExtender ) ;
FTranslationEditorMenu : : SetupTranslationEditorMenu ( MenuExtender , * this ) ;
AddMenuExtender ( MenuExtender ) ;
AddToolbarExtender ( TranslationEditorModule . GetToolbarExtensibilityManager ( ) - > GetAllExtenders ( GetToolkitCommands ( ) , GetEditingObjects ( ) ) ) ;
TSharedPtr < FExtender > ToolbarExtender = MakeShareable ( new FExtender ) ;
FTranslationEditorMenu : : SetupTranslationEditorToolbar ( ToolbarExtender , * this ) ;
AddToolbarExtender ( ToolbarExtender ) ;
RegenerateMenusAndToolbars ( ) ;
// @todo toolkit world centric editing
/*// Setup our tool's layout
if ( IsWorldCentricAssetEditor ( ) )
{
const FString TabInitializationPayload ( TEXT ( " " ) ) ; // NOTE: Payload not currently used for table properties
SpawnToolkitTab ( UntranslatedTabId , TabInitializationPayload , EToolkitTabSpot : : Details ) ;
} */
// NOTE: Could fill in asset editor commands here!
}
FName FTranslationEditor : : GetToolkitFName ( ) const
{
return FName ( " TranslationEditor " ) ;
}
FText FTranslationEditor : : GetBaseToolkitName ( ) const
{
return LOCTEXT ( " AppLabel " , " Translation Editor " ) ;
}
FText FTranslationEditor : : GetToolkitName ( ) const
{
const UObject * EditingObject = GetEditingObject ( ) ;
check ( EditingObject ! = NULL ) ;
FFormatNamedArguments Args ;
2014-04-23 19:06:27 -04:00
Args . Add ( TEXT ( " Language " ) , FText : : FromString ( FPaths : : GetBaseFilename ( FPaths : : GetPath ( ArchiveFilePath ) ) ) ) ;
Args . Add ( TEXT ( " ProjectName " ) , FText : : FromString ( FPaths : : GetBaseFilename ( ManifestFilePath ) ) ) ;
2014-03-14 14:13:41 -04:00
Args . Add ( TEXT ( " ToolkitName " ) , GetBaseToolkitName ( ) ) ;
2019-01-25 13:07:04 -05:00
return FText : : Format ( LOCTEXT ( " TranslationEditorAppLabel " , " {Language} - {ProjectName} - {ToolkitName} " ) , Args ) ;
2014-03-14 14:13:41 -04:00
}
2015-05-26 09:14:55 -04:00
FText FTranslationEditor : : GetToolkitToolTipText ( ) const
{
const UObject * EditingObject = GetEditingObject ( ) ;
check ( EditingObject ! = NULL ) ;
FFormatNamedArguments Args ;
Args . Add ( TEXT ( " Language " ) , FText : : FromString ( FPaths : : GetBaseFilename ( FPaths : : GetPath ( ArchiveFilePath ) ) ) ) ;
Args . Add ( TEXT ( " ProjectName " ) , FText : : FromString ( FPaths : : GetBaseFilename ( ManifestFilePath ) ) ) ;
Args . Add ( TEXT ( " ToolkitName " ) , GetBaseToolkitName ( ) ) ;
return FText : : Format ( LOCTEXT ( " TranslationEditorAppToolTip " , " {Language} - {ProjectName} - {ToolkitName} " ) , Args ) ;
}
2014-03-14 14:13:41 -04:00
FString FTranslationEditor : : GetWorldCentricTabPrefix ( ) const
{
return LOCTEXT ( " WorldCentricTabPrefix " , " Translation " ) . ToString ( ) ;
}
FLinearColor FTranslationEditor : : GetWorldCentricTabColorScale ( ) const
{
return FLinearColor ( 0.0f , 0.0f , 0.2f , 0.5f ) ;
}
2023-02-01 13:22:53 -05:00
FText FTranslationEditor : : GetTabLabel_Untranslated ( ) const
{
const int32 UntranslatedNum = DataManager - > GetUntranslatedArray ( ) . Num ( ) ;
return UntranslatedNum > 0 ?
FText : : Format ( LOCTEXT ( " UntranslatedTabTitleNumbered " , " Untranslated ({0}) " ) , UntranslatedNum ) :
LOCTEXT ( " UntranslatedTabTitle " , " Untranslated " ) ;
}
2014-03-14 14:13:41 -04:00
TSharedRef < SDockTab > FTranslationEditor : : SpawnTab_Untranslated ( const FSpawnTabArgs & Args )
{
check ( Args . GetTabId ( ) . TabType = = UntranslatedTabId ) ;
FPropertyEditorModule & PropertyEditorModule = FModuleManager : : GetModuleChecked < FPropertyEditorModule > ( " PropertyEditor " ) ;
2020-03-15 10:33:45 -04:00
FProperty * SourceProperty = FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Source " ) ;
FProperty * TranslationProperty = FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Translation " ) ;
2014-03-14 14:13:41 -04:00
// create empty property table
UntranslatedPropertyTable = PropertyEditorModule . CreatePropertyTable ( ) ;
UntranslatedPropertyTable - > SetIsUserAllowedToChangeRoot ( false ) ;
UntranslatedPropertyTable - > SetOrientation ( EPropertyTableOrientation : : AlignPropertiesInColumns ) ;
UntranslatedPropertyTable - > SetShowRowHeader ( true ) ;
UntranslatedPropertyTable - > SetShowObjectName ( false ) ;
2014-04-23 18:54:03 -04:00
UntranslatedPropertyTable - > OnSelectionChanged ( ) - > AddSP ( this , & FTranslationEditor : : UpdateUntranslatedSelection ) ;
2014-03-14 14:13:41 -04:00
// we want to customize some columns
TArray < TSharedRef < class IPropertyTableCustomColumn > > CustomColumns ;
SourceColumn - > AddSupportedProperty ( SourceProperty ) ;
TranslationColumn - > AddSupportedProperty ( TranslationProperty ) ;
CustomColumns . Add ( SourceColumn ) ;
CustomColumns . Add ( TranslationColumn ) ;
2014-04-23 18:47:10 -04:00
UntranslatedPropertyTable - > SetObjects ( ( TArray < UObject * > & ) DataManager - > GetUntranslatedArray ( ) ) ;
2014-03-14 14:13:41 -04:00
// Add the columns we want to display
2019-12-13 11:07:03 -05:00
UntranslatedPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) SourceProperty ) ;
UntranslatedPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) TranslationProperty ) ;
2014-03-14 14:13:41 -04:00
// Freeze columns, don't want user to remove them
TArray < TSharedRef < IPropertyTableColumn > > Columns = UntranslatedPropertyTable - > GetColumns ( ) ;
for ( TSharedRef < IPropertyTableColumn > Column : Columns )
{
Column - > SetFrozen ( true ) ;
}
UntranslatedPropertyTableWidgetHandle = PropertyEditorModule . CreatePropertyTableWidgetHandle ( UntranslatedPropertyTable . ToSharedRef ( ) , CustomColumns ) ;
TSharedRef < SWidget > PropertyTableWidget = UntranslatedPropertyTableWidgetHandle - > GetWidget ( ) ;
2023-02-01 13:22:53 -05:00
2014-03-14 14:13:41 -04:00
TSharedRef < SDockTab > NewDockTab = SNew ( SDockTab )
2022-05-09 13:12:28 -04:00
//.Icon( FAppStyle::GetBrush("TranslationEditor.Tabs.Properties") )
2023-02-01 13:22:53 -05:00
. Label ( this , & FTranslationEditor : : GetTabLabel_Untranslated )
2014-03-14 14:13:41 -04:00
. TabColorScale ( GetTabColorScale ( ) )
[
SNew ( SBorder )
2022-05-09 13:12:28 -04:00
. BorderImage ( FAppStyle : : GetBrush ( " ToolPanel.GroupBorder " ) )
2014-03-14 14:13:41 -04:00
. Padding ( 0.0f )
[
PropertyTableWidget
]
] ;
UntranslatedTab = NewDockTab ;
return NewDockTab ;
}
2023-02-01 13:22:53 -05:00
FText FTranslationEditor : : GetTabLabel_Review ( ) const
{
const int32 ReviewNum = DataManager - > GetReviewArray ( ) . Num ( ) ;
return ReviewNum > 0 ?
FText : : Format ( LOCTEXT ( " ReviewTabTitleNumbered " , " Needs Review ({0}) " ) , ReviewNum ) :
LOCTEXT ( " ReviewTabTitle " , " Needs Review " ) ;
}
2014-03-14 14:13:41 -04:00
TSharedRef < SDockTab > FTranslationEditor : : SpawnTab_Review ( const FSpawnTabArgs & Args )
{
check ( Args . GetTabId ( ) . TabType = = ReviewTabId ) ;
2020-03-15 10:33:45 -04:00
FProperty * SourceProperty = FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Source " ) ;
FProperty * TranslationProperty = FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Translation " ) ;
2014-03-14 14:13:41 -04:00
FPropertyEditorModule & PropertyEditorModule = FModuleManager : : GetModuleChecked < FPropertyEditorModule > ( " PropertyEditor " ) ;
// create empty property table
ReviewPropertyTable = PropertyEditorModule . CreatePropertyTable ( ) ;
ReviewPropertyTable - > SetIsUserAllowedToChangeRoot ( false ) ;
ReviewPropertyTable - > SetOrientation ( EPropertyTableOrientation : : AlignPropertiesInColumns ) ;
ReviewPropertyTable - > SetShowRowHeader ( true ) ;
ReviewPropertyTable - > SetShowObjectName ( false ) ;
2014-04-23 18:54:03 -04:00
ReviewPropertyTable - > OnSelectionChanged ( ) - > AddSP ( this , & FTranslationEditor : : UpdateNeedsReviewSelection ) ;
2014-03-14 14:13:41 -04:00
// we want to customize some columns
TArray < TSharedRef < class IPropertyTableCustomColumn > > CustomColumns ;
SourceColumn - > AddSupportedProperty ( SourceProperty ) ;
TranslationColumn - > AddSupportedProperty ( TranslationProperty ) ;
CustomColumns . Add ( SourceColumn ) ;
CustomColumns . Add ( TranslationColumn ) ;
2014-04-23 18:47:10 -04:00
ReviewPropertyTable - > SetObjects ( ( TArray < UObject * > & ) DataManager - > GetReviewArray ( ) ) ;
2014-03-14 14:13:41 -04:00
// Add the columns we want to display
2020-03-15 10:33:45 -04:00
ReviewPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Source " ) ) ;
ReviewPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Translation " ) ) ;
ReviewPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " HasBeenReviewed " ) ) ;
2014-03-14 14:13:41 -04:00
TArray < TSharedRef < IPropertyTableColumn > > Columns = ReviewPropertyTable - > GetColumns ( ) ;
for ( TSharedRef < IPropertyTableColumn > Column : Columns )
{
2014-04-02 18:09:23 -04:00
FString ColumnId = Column - > GetId ( ) . ToString ( ) ;
if ( ColumnId = = " HasBeenReviewed " )
{
Column - > SetWidth ( 120 ) ;
Column - > SetSizeMode ( EPropertyTableColumnSizeMode : : Fixed ) ;
}
// Freeze columns, don't want user to remove them
2014-03-14 14:13:41 -04:00
Column - > SetFrozen ( true ) ;
}
ReviewPropertyTableWidgetHandle = PropertyEditorModule . CreatePropertyTableWidgetHandle ( ReviewPropertyTable . ToSharedRef ( ) , CustomColumns ) ;
TSharedRef < SWidget > PropertyTableWidget = ReviewPropertyTableWidgetHandle - > GetWidget ( ) ;
2023-02-01 13:22:53 -05:00
2014-03-14 14:13:41 -04:00
TSharedRef < SDockTab > NewDockTab = SNew ( SDockTab )
2022-05-09 13:12:28 -04:00
//.Icon( FAppStyle::GetBrush("TranslationEditor.Tabs.Properties") )
2023-02-01 13:22:53 -05:00
. Label ( this , & FTranslationEditor : : GetTabLabel_Review )
2014-03-14 14:13:41 -04:00
. TabColorScale ( GetTabColorScale ( ) )
[
SNew ( SBorder )
2022-05-09 13:12:28 -04:00
. BorderImage ( FAppStyle : : GetBrush ( " ToolPanel.GroupBorder " ) )
2014-03-14 14:13:41 -04:00
. Padding ( 0.0f )
[
PropertyTableWidget
]
] ;
ReviewTab = NewDockTab ;
return NewDockTab ;
}
2023-02-01 13:22:53 -05:00
FText FTranslationEditor : : GetTabLabel_Completed ( ) const
{
const int32 CompletedNum = DataManager - > GetCompleteArray ( ) . Num ( ) ;
return CompletedNum > 0 ?
FText : : Format ( LOCTEXT ( " CompletedTabTitleNumbered " , " Completed ({0}) " ) , CompletedNum ) :
LOCTEXT ( " CompletedTabTitle " , " Completed " ) ;
}
2014-03-14 14:13:41 -04:00
TSharedRef < SDockTab > FTranslationEditor : : SpawnTab_Completed ( const FSpawnTabArgs & Args )
{
check ( Args . GetTabId ( ) . TabType = = CompletedTabId ) ;
2020-03-15 10:33:45 -04:00
FProperty * SourceProperty = FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Source " ) ;
FProperty * TranslationProperty = FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Translation " ) ;
2014-03-14 14:13:41 -04:00
FPropertyEditorModule & PropertyEditorModule = FModuleManager : : GetModuleChecked < FPropertyEditorModule > ( " PropertyEditor " ) ;
// create empty property table
CompletedPropertyTable = PropertyEditorModule . CreatePropertyTable ( ) ;
CompletedPropertyTable - > SetIsUserAllowedToChangeRoot ( false ) ;
CompletedPropertyTable - > SetOrientation ( EPropertyTableOrientation : : AlignPropertiesInColumns ) ;
CompletedPropertyTable - > SetShowRowHeader ( true ) ;
CompletedPropertyTable - > SetShowObjectName ( false ) ;
2014-04-23 18:54:03 -04:00
CompletedPropertyTable - > OnSelectionChanged ( ) - > AddSP ( this , & FTranslationEditor : : UpdateCompletedSelection ) ;
2014-03-14 14:13:41 -04:00
// we want to customize some columns
TArray < TSharedRef < class IPropertyTableCustomColumn > > CustomColumns ;
SourceColumn - > AddSupportedProperty ( SourceProperty ) ;
TranslationColumn - > AddSupportedProperty ( TranslationProperty ) ;
CustomColumns . Add ( SourceColumn ) ;
CustomColumns . Add ( TranslationColumn ) ;
2014-04-23 18:47:10 -04:00
CompletedPropertyTable - > SetObjects ( ( TArray < UObject * > & ) DataManager - > GetCompleteArray ( ) ) ;
2014-03-14 14:13:41 -04:00
// Add the columns we want to display
2020-03-15 10:33:45 -04:00
CompletedPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Source " ) ) ;
CompletedPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Translation " ) ) ;
2014-03-14 14:13:41 -04:00
// Freeze columns, don't want user to remove them
TArray < TSharedRef < IPropertyTableColumn > > Columns = CompletedPropertyTable - > GetColumns ( ) ;
for ( TSharedRef < IPropertyTableColumn > Column : Columns )
{
Column - > SetFrozen ( true ) ;
}
CompletedPropertyTableWidgetHandle = PropertyEditorModule . CreatePropertyTableWidgetHandle ( CompletedPropertyTable . ToSharedRef ( ) , CustomColumns ) ;
TSharedRef < SWidget > PropertyTableWidget = CompletedPropertyTableWidgetHandle - > GetWidget ( ) ;
2023-02-01 13:22:53 -05:00
2014-03-14 14:13:41 -04:00
TSharedRef < SDockTab > NewDockTab = SNew ( SDockTab )
2022-05-09 13:12:28 -04:00
//.Icon( FAppStyle::GetBrush("TranslationEditor.Tabs.Properties") )
2023-02-01 13:22:53 -05:00
. Label ( this , & FTranslationEditor : : GetTabLabel_Completed )
2014-03-14 14:13:41 -04:00
. TabColorScale ( GetTabColorScale ( ) )
[
SNew ( SBorder )
2022-05-09 13:12:28 -04:00
. BorderImage ( FAppStyle : : GetBrush ( " ToolPanel.GroupBorder " ) )
2014-03-14 14:13:41 -04:00
. Padding ( 0.0f )
[
PropertyTableWidget
]
] ;
CompletedTab = NewDockTab ;
return NewDockTab ;
}
2014-04-23 18:48:34 -04:00
TSharedRef < SDockTab > FTranslationEditor : : SpawnTab_Search ( const FSpawnTabArgs & Args )
{
check ( Args . GetTabId ( ) . TabType = = SearchTabId ) ;
2020-03-15 10:33:45 -04:00
FProperty * SourceProperty = FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Source " ) ;
FProperty * TranslationProperty = FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Translation " ) ;
2014-04-23 18:48:34 -04:00
FPropertyEditorModule & PropertyEditorModule = FModuleManager : : GetModuleChecked < FPropertyEditorModule > ( " PropertyEditor " ) ;
// create empty property table
SearchPropertyTable = PropertyEditorModule . CreatePropertyTable ( ) ;
SearchPropertyTable - > SetIsUserAllowedToChangeRoot ( false ) ;
SearchPropertyTable - > SetOrientation ( EPropertyTableOrientation : : AlignPropertiesInColumns ) ;
SearchPropertyTable - > SetShowRowHeader ( true ) ;
SearchPropertyTable - > SetShowObjectName ( false ) ;
2014-04-23 18:54:03 -04:00
SearchPropertyTable - > OnSelectionChanged ( ) - > AddSP ( this , & FTranslationEditor : : UpdateSearchSelection ) ;
2014-04-23 18:48:34 -04:00
// we want to customize some columns
TArray < TSharedRef < class IPropertyTableCustomColumn > > CustomColumns ;
SourceColumn - > AddSupportedProperty ( SourceProperty ) ;
TranslationColumn - > AddSupportedProperty ( TranslationProperty ) ;
CustomColumns . Add ( SourceColumn ) ;
CustomColumns . Add ( TranslationColumn ) ;
SearchPropertyTable - > SetObjects ( ( TArray < UObject * > & ) DataManager - > GetSearchResultsArray ( ) ) ;
// Add the columns we want to display
2020-03-15 10:33:45 -04:00
SearchPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Source " ) ) ;
SearchPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Translation " ) ) ;
2014-04-23 18:48:34 -04:00
// Freeze columns, don't want user to remove them
TArray < TSharedRef < IPropertyTableColumn > > Columns = SearchPropertyTable - > GetColumns ( ) ;
for ( TSharedRef < IPropertyTableColumn > Column : Columns )
{
Column - > SetFrozen ( true ) ;
}
SearchPropertyTableWidgetHandle = PropertyEditorModule . CreatePropertyTableWidgetHandle ( SearchPropertyTable . ToSharedRef ( ) , CustomColumns ) ;
TSharedRef < SWidget > PropertyTableWidget = SearchPropertyTableWidgetHandle - > GetWidget ( ) ;
TSharedRef < SDockTab > NewDockTab = SNew ( SDockTab )
2022-05-09 13:12:28 -04:00
//.Icon(FAppStyle::GetBrush("TranslationEditor.Tabs.Properties"))
2014-04-23 18:48:34 -04:00
. Label ( LOCTEXT ( " SearchTabTitle " , " Search " ) )
. TabColorScale ( GetTabColorScale ( ) )
[
SNew ( SVerticalBox )
+ SVerticalBox : : Slot ( )
. HAlign ( HAlign_Fill )
. VAlign ( VAlign_Top )
. AutoHeight ( )
. Padding ( 0.0f , 0.0f , 0.0f , 4.0f )
[
SAssignNew ( SearchBox , SSearchBox )
. HintText ( LOCTEXT ( " FilterSearch " , " Search... " ) )
2015-01-08 11:35:01 -05:00
. ToolTipText ( LOCTEXT ( " FilterSearchHint " , " Type here to search " ) )
2014-04-23 18:48:34 -04:00
. OnTextChanged ( this , & FTranslationEditor : : OnFilterTextChanged )
. OnTextCommitted ( this , & FTranslationEditor : : OnFilterTextCommitted )
]
+ SVerticalBox : : Slot ( )
. HAlign ( HAlign_Fill )
. VAlign ( VAlign_Top )
. FillHeight ( 10.f )
[
SNew ( SBorder )
2022-05-09 13:12:28 -04:00
. BorderImage ( FAppStyle : : GetBrush ( " ToolPanel.GroupBorder " ) )
2014-04-23 18:48:34 -04:00
. Padding ( 0.0f )
. VAlign ( VAlign_Top )
[
PropertyTableWidget
]
]
] ;
SearchTab = NewDockTab ;
return NewDockTab ;
}
2014-04-23 19:14:07 -04:00
TSharedRef < SDockTab > FTranslationEditor : : SpawnTab_ChangedOnImport ( const FSpawnTabArgs & Args )
{
check ( Args . GetTabId ( ) . TabType = = ChangedOnImportTabId ) ;
2020-03-15 10:33:45 -04:00
FProperty * SourceProperty = FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Source " ) ;
FProperty * TranslationBeforeImportProperty = FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " TranslationBeforeImport " ) ;
FProperty * TranslationProperty = FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Translation " ) ;
2014-04-23 19:14:07 -04:00
FPropertyEditorModule & PropertyEditorModule = FModuleManager : : GetModuleChecked < FPropertyEditorModule > ( " PropertyEditor " ) ;
// create empty property table
ChangedOnImportPropertyTable = PropertyEditorModule . CreatePropertyTable ( ) ;
ChangedOnImportPropertyTable - > SetIsUserAllowedToChangeRoot ( false ) ;
ChangedOnImportPropertyTable - > SetOrientation ( EPropertyTableOrientation : : AlignPropertiesInColumns ) ;
ChangedOnImportPropertyTable - > SetShowRowHeader ( true ) ;
ChangedOnImportPropertyTable - > SetShowObjectName ( false ) ;
ChangedOnImportPropertyTable - > OnSelectionChanged ( ) - > AddSP ( this , & FTranslationEditor : : UpdateSearchSelection ) ;
// we want to customize some columns
TArray < TSharedRef < class IPropertyTableCustomColumn > > CustomColumns ;
SourceColumn - > AddSupportedProperty ( SourceProperty ) ;
TranslationColumn - > AddSupportedProperty ( TranslationProperty ) ;
CustomColumns . Add ( SourceColumn ) ;
CustomColumns . Add ( TranslationColumn ) ;
ChangedOnImportPropertyTable - > SetObjects ( ( TArray < UObject * > & ) DataManager - > GetSearchResultsArray ( ) ) ;
// Add the columns we want to display
2020-03-15 10:33:45 -04:00
ChangedOnImportPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Source " ) ) ;
ChangedOnImportPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " TranslationBeforeImport " ) ) ;
ChangedOnImportPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Translation " ) ) ;
2014-04-23 19:14:07 -04:00
// Freeze columns, don't want user to remove them
TArray < TSharedRef < IPropertyTableColumn > > Columns = ChangedOnImportPropertyTable - > GetColumns ( ) ;
for ( TSharedRef < IPropertyTableColumn > Column : Columns )
{
Column - > SetFrozen ( true ) ;
}
SearchPropertyTableWidgetHandle = PropertyEditorModule . CreatePropertyTableWidgetHandle ( ChangedOnImportPropertyTable . ToSharedRef ( ) , CustomColumns ) ;
TSharedRef < SWidget > PropertyTableWidget = SearchPropertyTableWidgetHandle - > GetWidget ( ) ;
TSharedRef < SDockTab > NewDockTab = SNew ( SDockTab )
2022-05-09 13:12:28 -04:00
//.Icon(FAppStyle::GetBrush("TranslationEditor.Tabs.Properties"))
2014-04-23 19:14:07 -04:00
. Label ( LOCTEXT ( " ChangedOnImportTabTitle " , " Changed on Import " ) )
. TabColorScale ( GetTabColorScale ( ) )
[
SNew ( SBorder )
2022-05-09 13:12:28 -04:00
. BorderImage ( FAppStyle : : GetBrush ( " ToolPanel.GroupBorder " ) )
2014-04-23 19:14:07 -04:00
. Padding ( 0.0f )
[
PropertyTableWidget
]
] ;
ChangedOnImportTab = NewDockTab ;
return NewDockTab ;
}
2014-03-14 14:13:41 -04:00
TSharedRef < SDockTab > FTranslationEditor : : SpawnTab_Preview ( const FSpawnTabArgs & Args )
{
check ( Args . GetTabId ( ) . TabType = = PreviewTabId ) ;
TSharedRef < SDockTab > NewDockTab = SNew ( SDockTab )
2022-05-09 13:12:28 -04:00
//.Icon( FAppStyle::GetBrush("TranslationEditor.Tabs.Properties") )
2014-03-14 14:13:41 -04:00
. Label ( LOCTEXT ( " PreviewTabTitle " , " Preview " ) )
. TabColorScale ( GetTabColorScale ( ) )
[
SNew ( SBorder )
2022-05-09 13:12:28 -04:00
. BorderImage ( FAppStyle : : GetBrush ( " ToolPanel.GroupBorder " ) )
2014-03-14 14:13:41 -04:00
. Padding ( 0.0f )
[
SNew ( SHorizontalBox )
+ SHorizontalBox : : Slot ( )
. HAlign ( HAlign_Center )
. VAlign ( VAlign_Center )
[
PreviewTextBlock
]
]
] ;
return NewDockTab ;
}
TSharedRef < SDockTab > FTranslationEditor : : SpawnTab_Context ( const FSpawnTabArgs & Args )
{
check ( Args . GetTabId ( ) . TabType = = ContextTabId ) ;
FPropertyEditorModule & PropertyEditorModule = FModuleManager : : GetModuleChecked < FPropertyEditorModule > ( " PropertyEditor " ) ;
// create empty property table
ContextPropertyTable = PropertyEditorModule . CreatePropertyTable ( ) ;
ContextPropertyTable - > SetIsUserAllowedToChangeRoot ( false ) ;
ContextPropertyTable - > SetOrientation ( EPropertyTableOrientation : : AlignPropertiesInColumns ) ;
ContextPropertyTable - > SetShowRowHeader ( true ) ;
ContextPropertyTable - > SetShowObjectName ( false ) ;
ContextPropertyTable - > OnSelectionChanged ( ) - > AddSP ( this , & FTranslationEditor : : UpdateContextSelection ) ;
2014-04-23 18:47:10 -04:00
if ( DataManager - > GetAllTranslationsArray ( ) . Num ( ) > 0 )
{
TArray < UObject * > Objects ;
Objects . Add ( DataManager - > GetAllTranslationsArray ( ) [ 0 ] ) ;
ContextPropertyTable - > SetObjects ( Objects ) ;
}
2014-03-14 14:13:41 -04:00
// Build the Path to the data we want to show
2020-03-15 10:33:45 -04:00
FProperty * ContextProp = FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Contexts " ) ;
2014-03-14 14:13:41 -04:00
FPropertyInfo ContextPropInfo ;
ContextPropInfo . Property = ContextProp ;
ContextPropInfo . ArrayIndex = INDEX_NONE ;
2014-04-23 18:47:10 -04:00
TSharedRef < FPropertyPath > Path = FPropertyPath : : CreateEmpty ( ) ;
2014-03-14 14:13:41 -04:00
Path = Path - > ExtendPath ( ContextPropInfo ) ;
ContextPropertyTable - > SetRootPath ( Path ) ;
// Add the columns we want to display
2020-03-15 10:33:45 -04:00
ContextPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( FTranslationContextInfo : : StaticStruct ( ) , " Key " ) ) ;
ContextPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( FTranslationContextInfo : : StaticStruct ( ) , " Context " ) ) ;
2014-03-14 14:13:41 -04:00
// Freeze columns, don't want user to remove them
TArray < TSharedRef < IPropertyTableColumn > > Columns = ContextPropertyTable - > GetColumns ( ) ;
for ( TSharedRef < IPropertyTableColumn > Column : Columns )
{
Column - > SetFrozen ( true ) ;
}
ContextPropertyTableWidgetHandle = PropertyEditorModule . CreatePropertyTableWidgetHandle ( ContextPropertyTable . ToSharedRef ( ) ) ;
TSharedRef < SWidget > PropertyTableWidget = ContextPropertyTableWidgetHandle - > GetWidget ( ) ;
TSharedRef < SDockTab > NewDockTab = SNew ( SDockTab )
2022-05-09 13:12:28 -04:00
//.Icon( FAppStyle::GetBrush("TranslationEditor.Tabs.Properties") )
2014-03-14 14:13:41 -04:00
. Label ( LOCTEXT ( " ContextTabTitle " , " Context " ) )
. TabColorScale ( GetTabColorScale ( ) )
[
SNew ( SBorder )
2022-05-09 13:12:28 -04:00
. BorderImage ( FAppStyle : : GetBrush ( " ToolPanel.GroupBorder " ) )
2014-03-14 14:13:41 -04:00
. Padding ( 0.0f )
[
SNew ( SVerticalBox )
+ SVerticalBox : : Slot ( )
. HAlign ( HAlign_Left )
. VAlign ( VAlign_Center )
2014-11-18 03:20:09 -05:00
. AutoHeight ( )
2014-03-14 14:13:41 -04:00
[
2014-11-18 03:20:09 -05:00
SNew ( SBorder )
2022-05-09 13:12:28 -04:00
. BorderImage ( FAppStyle : : GetBrush ( " ToolPanel.GroupBorder " ) )
2014-11-18 03:20:09 -05:00
. Padding ( 5.0f )
[
NamespaceTextBlock
]
2014-03-14 14:13:41 -04:00
]
+ SVerticalBox : : Slot ( )
. HAlign ( HAlign_Fill )
. VAlign ( VAlign_Fill )
[
PropertyTableWidget
]
]
] ;
return NewDockTab ;
}
2014-11-18 03:20:09 -05:00
TSharedRef < SDockTab > FTranslationEditor : : SpawnTab_History ( const FSpawnTabArgs & Args )
2014-03-14 14:13:41 -04:00
{
2014-11-18 03:20:09 -05:00
check ( Args . GetTabId ( ) . TabType = = HistoryTabId ) ;
2014-03-14 14:13:41 -04:00
2014-11-18 03:20:09 -05:00
FPropertyEditorModule & PropertyEditorModule = FModuleManager : : GetModuleChecked < FPropertyEditorModule > ( " PropertyEditor " ) ;
2014-03-14 14:13:41 -04:00
2020-03-15 10:33:45 -04:00
FProperty * SourceProperty = FindFProperty < FProperty > ( FTranslationChange : : StaticStruct ( ) , " Source " ) ;
FProperty * TranslationProperty = FindFProperty < FProperty > ( FTranslationChange : : StaticStruct ( ) , " Translation " ) ;
2014-03-14 14:13:41 -04:00
// create empty property table
HistoryPropertyTable = PropertyEditorModule . CreatePropertyTable ( ) ;
2014-11-18 03:20:09 -05:00
HistoryPropertyTable - > SetIsUserAllowedToChangeRoot ( false ) ;
HistoryPropertyTable - > SetOrientation ( EPropertyTableOrientation : : AlignPropertiesInColumns ) ;
HistoryPropertyTable - > SetShowRowHeader ( true ) ;
HistoryPropertyTable - > SetShowObjectName ( false ) ;
2014-03-14 14:13:41 -04:00
// we want to customize some columns
TArray < TSharedRef < class IPropertyTableCustomColumn > > CustomColumns ;
SourceColumn - > AddSupportedProperty ( SourceProperty ) ;
TranslationColumn - > AddSupportedProperty ( TranslationProperty ) ;
2014-11-18 03:20:09 -05:00
CustomColumns . Add ( SourceColumn ) ;
CustomColumns . Add ( TranslationColumn ) ;
2014-03-14 14:13:41 -04:00
2014-04-23 18:47:10 -04:00
if ( DataManager - > GetAllTranslationsArray ( ) . Num ( ) > 0 )
{
TArray < UObject * > Objects ;
Objects . Add ( DataManager - > GetAllTranslationsArray ( ) [ 0 ] ) ;
HistoryPropertyTable - > SetObjects ( Objects ) ;
}
2014-03-14 14:13:41 -04:00
// Build the Path to the data we want to show
2014-04-23 18:47:10 -04:00
TSharedRef < FPropertyPath > Path = FPropertyPath : : CreateEmpty ( ) ;
2020-03-15 10:33:45 -04:00
FArrayProperty * ContextsProp = FindFProperty < FArrayProperty > ( UTranslationUnit : : StaticClass ( ) , " Contexts " ) ;
2014-03-14 14:13:41 -04:00
Path = Path - > ExtendPath ( FPropertyPath : : Create ( ContextsProp ) ) ;
FPropertyInfo ContextsPropInfo ;
ContextsPropInfo . Property = ContextsProp - > Inner ;
ContextsPropInfo . ArrayIndex = 0 ;
Path = Path - > ExtendPath ( ContextsPropInfo ) ;
2020-03-15 10:33:45 -04:00
FProperty * ChangesProp = FindFProperty < FProperty > ( FTranslationContextInfo : : StaticStruct ( ) , " Changes " ) ;
2014-03-14 14:13:41 -04:00
FPropertyInfo ChangesPropInfo ;
ChangesPropInfo . Property = ChangesProp ;
ChangesPropInfo . ArrayIndex = INDEX_NONE ;
Path = Path - > ExtendPath ( ChangesPropInfo ) ;
HistoryPropertyTable - > SetRootPath ( Path ) ;
// Add the columns we want to display
2020-03-15 10:33:45 -04:00
HistoryPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( FTranslationChange : : StaticStruct ( ) , " Version " ) ) ;
HistoryPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( FTranslationChange : : StaticStruct ( ) , " DateAndTime " ) ) ;
2019-12-13 11:07:03 -05:00
HistoryPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) SourceProperty ) ;
HistoryPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) TranslationProperty ) ;
2014-03-14 14:13:41 -04:00
// Freeze columns, don't want user to remove them
TArray < TSharedRef < IPropertyTableColumn > > Columns = HistoryPropertyTable - > GetColumns ( ) ;
for ( TSharedRef < IPropertyTableColumn > Column : Columns )
{
Column - > SetFrozen ( true ) ;
}
2014-11-18 03:20:09 -05:00
HistoryPropertyTableWidgetHandle = PropertyEditorModule . CreatePropertyTableWidgetHandle ( HistoryPropertyTable . ToSharedRef ( ) , CustomColumns ) ;
2014-03-14 14:13:41 -04:00
TSharedRef < SWidget > PropertyTableWidget = HistoryPropertyTableWidgetHandle - > GetWidget ( ) ;
TSharedRef < SDockTab > NewDockTab = SNew ( SDockTab )
2022-05-09 13:12:28 -04:00
//.Icon(FAppStyle::GetBrush("TranslationEditor.Tabs.Properties"))
2014-11-18 03:20:09 -05:00
. Label ( LOCTEXT ( " HistoryTabTitle " , " History " ) )
. TabColorScale ( GetTabColorScale ( ) )
2014-03-14 14:13:41 -04:00
[
SNew ( SBorder )
2022-05-09 13:12:28 -04:00
. BorderImage ( FAppStyle : : GetBrush ( " ToolPanel.GroupBorder " ) )
2014-03-14 14:13:41 -04:00
. Padding ( 0.0f )
[
2014-11-18 03:20:09 -05:00
SNew ( SVerticalBox )
+ SVerticalBox : : Slot ( )
. HAlign ( HAlign_Left )
. VAlign ( VAlign_Center )
. AutoHeight ( )
[
SNew ( SBorder )
2022-05-09 13:12:28 -04:00
. BorderImage ( FAppStyle : : GetBrush ( " ToolPanel.GroupBorder " ) )
2014-11-18 03:20:09 -05:00
. Padding ( 5.0f )
[
SNew ( SButton )
. HAlign ( HAlign_Center )
. VAlign ( VAlign_Center )
. OnClicked ( FOnClicked : : CreateSP ( this , & FTranslationEditor : : OnGetHistoryButtonClicked ) )
[
SNew ( STextBlock )
. Text ( ( LOCTEXT ( " GetHistoryButton " , " Get History... " ) ) )
]
]
]
+ SVerticalBox : : Slot ( )
. HAlign ( HAlign_Fill )
. VAlign ( VAlign_Fill )
[
PropertyTableWidget
]
2014-03-14 14:13:41 -04:00
]
] ;
return NewDockTab ;
}
void FTranslationEditor : : MapActions ( )
{
FTranslationEditorCommands : : Register ( ) ;
ToolkitCommands - > MapAction ( FTranslationEditorCommands : : Get ( ) . ChangeSourceFont ,
FExecuteAction : : CreateSP ( this , & FTranslationEditor : : ChangeSourceFont ) ,
FCanExecuteAction ( ) ) ;
ToolkitCommands - > MapAction ( FTranslationEditorCommands : : Get ( ) . ChangeTranslationTargetFont ,
FExecuteAction : : CreateSP ( this , & FTranslationEditor : : ChangeTranslationTargetFont ) ,
FCanExecuteAction ( ) ) ;
ToolkitCommands - > MapAction ( FTranslationEditorCommands : : Get ( ) . SaveTranslations ,
FExecuteAction : : CreateSP ( this , & FTranslationEditor : : SaveAsset_Execute ) ,
FCanExecuteAction ( ) ) ;
2014-04-23 17:49:26 -04:00
ToolkitCommands - > MapAction ( FTranslationEditorCommands : : Get ( ) . PreviewAllTranslationsInEditor ,
FExecuteAction : : CreateSP ( this , & FTranslationEditor : : PreviewAllTranslationsInEditor_Execute ) ,
FCanExecuteAction ( ) ) ;
2014-04-23 18:20:15 -04:00
2015-05-28 21:40:23 -04:00
ToolkitCommands - > MapAction ( FTranslationEditorCommands : : Get ( ) . ImportLatestFromLocalizationService ,
FExecuteAction : : CreateSP ( this , & FTranslationEditor : : ImportLatestFromLocalizationService_Execute ) ,
FCanExecuteAction ( ) ) ;
2014-04-23 18:20:15 -04:00
ToolkitCommands - > MapAction ( FTranslationEditorCommands : : Get ( ) . ExportToPortableObjectFormat ,
FExecuteAction : : CreateSP ( this , & FTranslationEditor : : ExportToPortableObjectFormat_Execute ) ,
FCanExecuteAction ( ) ) ;
2014-04-23 18:48:34 -04:00
2014-04-23 19:14:07 -04:00
ToolkitCommands - > MapAction ( FTranslationEditorCommands : : Get ( ) . ImportFromPortableObjectFormat ,
FExecuteAction : : CreateSP ( this , & FTranslationEditor : : ImportFromPortableObjectFormat_Execute ) ,
FCanExecuteAction ( ) ) ;
2014-04-23 18:48:34 -04:00
ToolkitCommands - > MapAction ( FTranslationEditorCommands : : Get ( ) . OpenSearchTab ,
FExecuteAction : : CreateSP ( this , & FTranslationEditor : : OpenSearchTab_Execute ) ,
FCanExecuteAction ( ) ) ;
2015-02-19 20:53:05 -05:00
ToolkitCommands - > MapAction ( FTranslationEditorCommands : : Get ( ) . OpenTranslationPicker ,
FExecuteAction : : CreateStatic ( & ITranslationEditor : : OpenTranslationPicker ) ,
FCanExecuteAction ( ) ) ;
2014-03-14 14:13:41 -04:00
}
void FTranslationEditor : : ChangeSourceFont ( )
{
// Use path from current font
Initial support for composite fonts for Slate, UMG, and Canvas
Slate now has the concept of composite fonts and font families (via FCompositeFont and FTypeface). A composite font is a font that contains a default font family, as well as any number of sub-font families which should be used for a given set of character ranges. This change will greatly improve the localization support for fonts.
UFont assets can now use two forms of caching "offline" (which is the way they have always worked historically), and "runtime" (which utilizes the Slate font cache to cache glyphs on demand). These runtime cached UFont assets are now the only way to specify which font to use for a UMG widget, and address the previous issues about ensuring that the required font files were staged for your game.
The Slate font cache now works on FFontData instances, rather than filenames. This allows the UFont asset to embed a blob of TTF or OTF font data inside it, rather than require the fonts be loaded from files on disk.
The Canvas text renderer has been updated to support runtime cached UFont assets. This gives our legacy Canvas based tools the same improved font localization support as the rest of the Slate-based editor UI.
UFont asset creation has been changed to use runtime caching by default, and additionally, you can now import a TTF or OTF file via the Content Browser and it will automatically create a UFont asset. If you still want an offline cached UFont asset, you can just change the cache type in the font editor, and the usual font picker dialog will appear and allow you to generate a font texture atlas.
[CL 2342203 by Jamie Dale in Main branch]
2014-10-28 09:02:03 -04:00
FString DefaultFile = TranslationEditorUtils : : GetFontFilename ( SourceFont ) ;
2014-03-14 14:13:41 -04:00
FString NewFontFilename ;
bool bOpened = OpenFontPicker ( DefaultFile , NewFontFilename ) ;
if ( bOpened & & NewFontFilename ! = " " )
{
- Added a per project Font display DPI setting, in order to allow using (but not being limited to) the standard 72 DPI used by most creation software (Photoshop, Figma,...). Slate will still work at 96DPI.
- Converted the font size to float, to allow specifying more precise size, and support the sizes that would be wanted at (for instance) 72 DPI, without losing information (ie rounding to the closest 96DPI int).
- Change various font caches behavior (glyph, advance, kerning...) to match behavior of Freetype, and ensure that a given size in Freetype will be stored only once in the font caches.
- Added cvar commands:
- Slate.DumpFontCacheStats: will display the list of all font combinations used, with the number of glyphs for each combination.
- Slate.FlushFontCache: will clear the font caches as well as the font atlases, then will invalidate all the widgets to force the cache to be refilled.
- Fixed the combo box for font typeface selection not disabled when necessary.
#tests:
- changed the Font display settings between various values and customDPI, validatet that everything was save correctly, and that the display was reacting to the value change.
- tested all the tooltips, simple, extended (ctrl + alt), and dynamic (display of the current DPI setting next to the font size).
- validated that the font atlas/cache was containing not more than one time each glyph rendered by Freetype.
- validated that the edition of the font size was still fully functionnal (spinbox, undo/redo, support of disable state,...).
- tested default value for a new project (72DPI).
- compiled Slate/SlateCore/UMG with UnsafeTypeCastWarningLevel = WarningLevel.Warning to fix warnings related to the change.
- tested in a game with latest changes from BP team (CL 26034633), ensuring that there are no regression related to the change of type (int to float) from the Font size.
- running with it in a game and UE branch for months.
#jira UE-152161
#rb patrick.boutot
[CL 26074522 by yohann dossantos in ue5-main branch]
2023-06-16 18:35:04 -04:00
SourceFont = FSlateFontInfo ( NewFontFilename , SourceFont . Size ) ;
2014-03-14 14:13:41 -04:00
RefreshUI ( ) ;
}
}
void FTranslationEditor : : ChangeTranslationTargetFont ( )
{
// Use path from current font
Initial support for composite fonts for Slate, UMG, and Canvas
Slate now has the concept of composite fonts and font families (via FCompositeFont and FTypeface). A composite font is a font that contains a default font family, as well as any number of sub-font families which should be used for a given set of character ranges. This change will greatly improve the localization support for fonts.
UFont assets can now use two forms of caching "offline" (which is the way they have always worked historically), and "runtime" (which utilizes the Slate font cache to cache glyphs on demand). These runtime cached UFont assets are now the only way to specify which font to use for a UMG widget, and address the previous issues about ensuring that the required font files were staged for your game.
The Slate font cache now works on FFontData instances, rather than filenames. This allows the UFont asset to embed a blob of TTF or OTF font data inside it, rather than require the fonts be loaded from files on disk.
The Canvas text renderer has been updated to support runtime cached UFont assets. This gives our legacy Canvas based tools the same improved font localization support as the rest of the Slate-based editor UI.
UFont asset creation has been changed to use runtime caching by default, and additionally, you can now import a TTF or OTF file via the Content Browser and it will automatically create a UFont asset. If you still want an offline cached UFont asset, you can just change the cache type in the font editor, and the usual font picker dialog will appear and allow you to generate a font texture atlas.
[CL 2342203 by Jamie Dale in Main branch]
2014-10-28 09:02:03 -04:00
FString DefaultFile = TranslationEditorUtils : : GetFontFilename ( TranslationTargetFont ) ;
2014-03-14 14:13:41 -04:00
FString NewFontFilename ;
bool bOpened = OpenFontPicker ( DefaultFile , NewFontFilename ) ;
if ( bOpened & & NewFontFilename ! = " " )
{
- Added a per project Font display DPI setting, in order to allow using (but not being limited to) the standard 72 DPI used by most creation software (Photoshop, Figma,...). Slate will still work at 96DPI.
- Converted the font size to float, to allow specifying more precise size, and support the sizes that would be wanted at (for instance) 72 DPI, without losing information (ie rounding to the closest 96DPI int).
- Change various font caches behavior (glyph, advance, kerning...) to match behavior of Freetype, and ensure that a given size in Freetype will be stored only once in the font caches.
- Added cvar commands:
- Slate.DumpFontCacheStats: will display the list of all font combinations used, with the number of glyphs for each combination.
- Slate.FlushFontCache: will clear the font caches as well as the font atlases, then will invalidate all the widgets to force the cache to be refilled.
- Fixed the combo box for font typeface selection not disabled when necessary.
#tests:
- changed the Font display settings between various values and customDPI, validatet that everything was save correctly, and that the display was reacting to the value change.
- tested all the tooltips, simple, extended (ctrl + alt), and dynamic (display of the current DPI setting next to the font size).
- validated that the font atlas/cache was containing not more than one time each glyph rendered by Freetype.
- validated that the edition of the font size was still fully functionnal (spinbox, undo/redo, support of disable state,...).
- tested default value for a new project (72DPI).
- compiled Slate/SlateCore/UMG with UnsafeTypeCastWarningLevel = WarningLevel.Warning to fix warnings related to the change.
- tested in a game with latest changes from BP team (CL 26034633), ensuring that there are no regression related to the change of type (int to float) from the Font size.
- running with it in a game and UE branch for months.
#jira UE-152161
#rb patrick.boutot
[CL 26074522 by yohann dossantos in ue5-main branch]
2023-06-16 18:35:04 -04:00
TranslationTargetFont = FSlateFontInfo ( NewFontFilename , TranslationTargetFont . Size ) ;
2014-03-14 14:13:41 -04:00
RefreshUI ( ) ;
}
}
void FTranslationEditor : : RefreshUI ( )
{
// Set the fonts in our custom font columns and text block
SourceColumn - > SetFont ( SourceFont ) ;
TranslationColumn - > SetFont ( TranslationTargetFont ) ;
PreviewTextBlock - > SetFont ( TranslationTargetFont ) ;
// Refresh our widget displays
2014-04-23 17:47:40 -04:00
if ( UntranslatedPropertyTableWidgetHandle . IsValid ( ) )
{
UntranslatedPropertyTableWidgetHandle - > RequestRefresh ( ) ;
}
if ( ReviewPropertyTableWidgetHandle . IsValid ( ) )
{
ReviewPropertyTableWidgetHandle - > RequestRefresh ( ) ;
}
if ( CompletedPropertyTableWidgetHandle . IsValid ( ) )
{
CompletedPropertyTableWidgetHandle - > RequestRefresh ( ) ;
}
if ( ContextPropertyTableWidgetHandle . IsValid ( ) )
{
ContextPropertyTableWidgetHandle - > RequestRefresh ( ) ;
}
if ( HistoryPropertyTableWidgetHandle . IsValid ( ) )
{
HistoryPropertyTableWidgetHandle - > RequestRefresh ( ) ;
}
2014-04-23 18:48:34 -04:00
if ( SearchPropertyTableWidgetHandle . IsValid ( ) )
{
SearchPropertyTableWidgetHandle - > RequestRefresh ( ) ;
}
2014-04-23 19:14:07 -04:00
if ( ChangedOnImportPropertyTableWidgetHandle . IsValid ( ) )
{
ChangedOnImportPropertyTableWidgetHandle - > RequestRefresh ( ) ;
}
2014-03-14 14:13:41 -04:00
}
bool FTranslationEditor : : OpenFontPicker ( const FString DefaultFile , FString & OutFile )
{
const FString FontFileDescription = LOCTEXT ( " FontFileDescription " , " Font File " ) . ToString ( ) ;
2014-04-02 18:09:23 -04:00
const FString FontFileExtension = TEXT ( " *.ttf;*.otf " ) ;
2014-03-14 14:13:41 -04:00
const FString FileTypes = FString : : Printf ( TEXT ( " %s (%s)|%s " ) , * FontFileDescription , * FontFileExtension , * FontFileExtension ) ;
// Prompt the user for the filenames
TArray < FString > OpenFilenames ;
IDesktopPlatform * DesktopPlatform = FDesktopPlatformModule : : Get ( ) ;
bool bOpened = false ;
if ( DesktopPlatform )
{
void * ParentWindowWindowHandle = NULL ;
2014-04-02 18:09:23 -04:00
const TSharedPtr < SWindow > & ParentWindow = FSlateApplication : : Get ( ) . FindWidgetWindow ( PreviewTextBlock ) ;
if ( ParentWindow . IsValid ( ) & & ParentWindow - > GetNativeWindow ( ) . IsValid ( ) )
2014-03-14 14:13:41 -04:00
{
2014-04-02 18:09:23 -04:00
ParentWindowWindowHandle = ParentWindow - > GetNativeWindow ( ) - > GetOSWindowHandle ( ) ;
2014-03-14 14:13:41 -04:00
}
bOpened = DesktopPlatform - > OpenFileDialog (
ParentWindowWindowHandle ,
LOCTEXT ( " ChooseFontWindowTitle " , " Choose Font " ) . ToString ( ) ,
FPaths : : GetPath ( DefaultFile ) ,
TEXT ( " " ) ,
FileTypes ,
EFileDialogFlags : : None ,
OpenFilenames
) ;
}
if ( bOpened & & OpenFilenames . Num ( ) > 0 )
{
OutFile = OpenFilenames [ 0 ] ;
}
else
{
OutFile = " " ;
}
return bOpened ;
}
2014-04-23 18:54:03 -04:00
void FTranslationEditor : : UpdateUntranslatedSelection ( )
2014-03-14 14:13:41 -04:00
{
2014-04-23 17:47:40 -04:00
TSharedPtr < SDockTab > UntranslatedTabSharedPtr = UntranslatedTab . Pin ( ) ;
if ( UntranslatedTabSharedPtr . IsValid ( ) & & UntranslatedTabSharedPtr - > IsForeground ( ) & & UntranslatedPropertyTable . IsValid ( ) )
2014-03-14 14:13:41 -04:00
{
2014-04-23 18:54:03 -04:00
TSet < TSharedRef < IPropertyTableRow > > SelectedRows = UntranslatedPropertyTable - > GetSelectedRows ( ) ;
UpdateTranslationUnitSelection ( SelectedRows ) ;
2014-04-23 18:48:34 -04:00
}
2014-04-23 18:54:03 -04:00
}
2014-03-14 14:13:41 -04:00
2014-04-23 18:54:03 -04:00
void FTranslationEditor : : UpdateNeedsReviewSelection ( )
{
TSharedPtr < SDockTab > ReviewTabSharedPtr = ReviewTab . Pin ( ) ;
if ( ReviewTabSharedPtr . IsValid ( ) & & ReviewTabSharedPtr - > IsForeground ( ) & & ReviewPropertyTable . IsValid ( ) )
{
TSet < TSharedRef < IPropertyTableRow > > SelectedRows = ReviewPropertyTable - > GetSelectedRows ( ) ;
UpdateTranslationUnitSelection ( SelectedRows ) ;
}
}
void FTranslationEditor : : UpdateCompletedSelection ( )
{
TSharedPtr < SDockTab > CompletedTabSharedPtr = CompletedTab . Pin ( ) ;
if ( CompletedTabSharedPtr . IsValid ( ) & & CompletedTabSharedPtr - > IsForeground ( ) & & CompletedPropertyTable . IsValid ( ) )
{
TSet < TSharedRef < IPropertyTableRow > > SelectedRows = CompletedPropertyTable - > GetSelectedRows ( ) ;
UpdateTranslationUnitSelection ( SelectedRows ) ;
}
}
void FTranslationEditor : : UpdateSearchSelection ( )
{
TSharedPtr < SDockTab > SearchTabSharedPtr = SearchTab . Pin ( ) ;
if ( SearchTabSharedPtr . IsValid ( ) & & SearchTabSharedPtr - > IsForeground ( ) & & SearchPropertyTable . IsValid ( ) )
{
TSet < TSharedRef < IPropertyTableRow > > SelectedRows = SearchPropertyTable - > GetSelectedRows ( ) ;
UpdateTranslationUnitSelection ( SelectedRows ) ;
}
}
2014-04-23 19:14:07 -04:00
void FTranslationEditor : : UpdateChangedOnImportSelection ( )
{
TSharedPtr < SDockTab > ChangedOnImportTabSharedPtr = SearchTab . Pin ( ) ;
if ( ChangedOnImportTabSharedPtr . IsValid ( ) & & ChangedOnImportTabSharedPtr - > IsForeground ( ) & & ChangedOnImportPropertyTable . IsValid ( ) )
{
TSet < TSharedRef < IPropertyTableRow > > SelectedRows = ChangedOnImportPropertyTable - > GetSelectedRows ( ) ;
UpdateTranslationUnitSelection ( SelectedRows ) ;
}
}
2014-04-23 18:54:03 -04:00
void FTranslationEditor : : UpdateTranslationUnitSelection ( TSet < TSharedRef < IPropertyTableRow > > & SelectedRows )
{
2014-03-14 14:13:41 -04:00
// Can only really handle single selection
if ( SelectedRows . Num ( ) = = 1 )
{
TSharedRef < IPropertyTableRow > SelectedRow = * ( SelectedRows . CreateConstIterator ( ) ) ;
TSharedRef < FPropertyPath > PartialPath = SelectedRow - > GetPartialPath ( ) ;
2014-04-23 18:47:10 -04:00
TWeakObjectPtr < UObject > UObjectWeakPtr = SelectedRow - > GetDataSource ( ) - > AsUObject ( ) ;
if ( UObjectWeakPtr . IsValid ( ) )
2014-03-14 14:13:41 -04:00
{
2014-04-23 18:47:10 -04:00
UObject * UObjectPtr = UObjectWeakPtr . Get ( ) ;
if ( UObjectPtr ! = NULL )
2014-04-23 17:47:40 -04:00
{
2014-04-23 18:47:10 -04:00
UTranslationUnit * SelectedTranslationUnit = ( UTranslationUnit * ) UObjectPtr ;
if ( SelectedTranslationUnit ! = NULL )
{
2019-10-01 20:41:42 -04:00
PreviewTextBlock - > SetText ( FText : : AsCultureInvariant ( SelectedTranslationUnit - > Translation ) ) ;
2014-04-23 18:47:10 -04:00
NamespaceTextBlock - > SetText ( FText : : Format ( LOCTEXT ( " TranslationNamespace " , " Namespace: {0} " ) , FText : : FromString ( SelectedTranslationUnit - > Namespace ) ) ) ;
2014-03-14 14:13:41 -04:00
2014-04-23 18:47:10 -04:00
// Add the ContextPropertyTable-specific path
2020-03-15 10:33:45 -04:00
FArrayProperty * ContextArrayProp = FindFProperty < FArrayProperty > ( UTranslationUnit : : StaticClass ( ) , " Contexts " ) ;
2014-04-23 18:47:10 -04:00
FPropertyInfo ContextArrayPropInfo ;
ContextArrayPropInfo . Property = ContextArrayProp ;
ContextArrayPropInfo . ArrayIndex = INDEX_NONE ;
TSharedRef < FPropertyPath > ContextPath = FPropertyPath : : CreateEmpty ( ) ;
ContextPath = ContextPath - > ExtendPath ( PartialPath ) ;
ContextPath = ContextPath - > ExtendPath ( ContextArrayPropInfo ) ;
2014-03-14 14:13:41 -04:00
2014-04-23 18:47:10 -04:00
if ( ContextPropertyTable . IsValid ( ) )
{
TArray < UObject * > ObjectArray ;
ObjectArray . Add ( SelectedTranslationUnit ) ;
ContextPropertyTable - > SetObjects ( ObjectArray ) ;
ContextPropertyTable - > SetRootPath ( ContextPath ) ;
2014-03-14 14:13:41 -04:00
2014-04-23 18:47:10 -04:00
// Need to re-add the columns we want to display
2020-03-15 10:33:45 -04:00
ContextPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( FTranslationContextInfo : : StaticStruct ( ) , " Key " ) ) ;
ContextPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( FTranslationContextInfo : : StaticStruct ( ) , " Context " ) ) ;
2014-04-23 17:47:40 -04:00
2014-04-23 18:47:10 -04:00
TArray < TSharedRef < IPropertyTableColumn > > Columns = ContextPropertyTable - > GetColumns ( ) ;
for ( TSharedRef < IPropertyTableColumn > Column : Columns )
{
Column - > SetFrozen ( true ) ;
}
TSharedPtr < IPropertyTableCell > ContextToSelectPtr = ContextPropertyTable - > GetFirstCellInTable ( ) ;
if ( ContextToSelectPtr . IsValid ( ) )
{
TSet < TSharedRef < IPropertyTableCell > > CellsToSelect ;
CellsToSelect . Add ( ContextToSelectPtr . ToSharedRef ( ) ) ;
ContextPropertyTable - > SetSelectedCells ( CellsToSelect ) ;
}
}
}
2014-04-23 17:47:40 -04:00
}
}
}
2014-03-14 14:13:41 -04:00
}
void FTranslationEditor : : SaveAsset_Execute ( )
{
// Doesn't call parent SaveAsset_Execute, only need to tell data manager to write data
DataManager - > WriteTranslationData ( ) ;
}
void FTranslationEditor : : UpdateContextSelection ( )
{
2014-04-23 17:47:40 -04:00
if ( ContextPropertyTable . IsValid ( ) )
2014-03-14 14:13:41 -04:00
{
2014-04-23 17:47:40 -04:00
TSet < TSharedRef < IPropertyTableRow > > SelectedRows = ContextPropertyTable - > GetSelectedRows ( ) ;
TSharedRef < FPropertyPath > InitialPath = ContextPropertyTable - > GetRootPath ( ) ;
2024-07-19 19:18:48 -04:00
FProperty * PropertyToFind = InitialPath - > GetRootProperty ( ) . Property . Get ( ) ;
2014-03-14 14:13:41 -04:00
2014-04-23 17:47:40 -04:00
// Can only really handle single selection
if ( SelectedRows . Num ( ) = = 1 )
2014-03-14 14:13:41 -04:00
{
2014-04-23 17:47:40 -04:00
TSharedRef < IPropertyTableRow > SelectedRow = * ( SelectedRows . CreateConstIterator ( ) ) ;
TSharedRef < FPropertyPath > PartialPath = SelectedRow - > GetPartialPath ( ) ;
2014-04-23 18:47:10 -04:00
TWeakObjectPtr < UObject > UObjectWeakPtr = SelectedRow - > GetDataSource ( ) - > AsUObject ( ) ;
if ( UObjectWeakPtr . IsValid ( ) )
2014-03-14 14:13:41 -04:00
{
2014-04-23 18:47:10 -04:00
UObject * UObjectPtr = UObjectWeakPtr . Get ( ) ;
if ( UObjectPtr ! = NULL )
2014-03-14 14:13:41 -04:00
{
2014-04-23 18:47:10 -04:00
UTranslationUnit * SelectedTranslationUnit = ( UTranslationUnit * ) UObjectPtr ;
if ( SelectedTranslationUnit ! = NULL )
2014-03-14 14:13:41 -04:00
{
2014-04-23 18:47:10 -04:00
// Index of the leaf most property is the context info index we need
FTranslationContextInfo & SelectedContextInfo = SelectedTranslationUnit - > Contexts [ PartialPath - > GetLeafMostProperty ( ) . ArrayIndex ] ;
// If this is a translation unit from the review tab and they select a context, possibly update the selected translation with one from that context
// Only change the suggested translation if they haven't yet reviewed it
if ( SelectedTranslationUnit - > HasBeenReviewed = = false )
2014-04-23 17:47:40 -04:00
{
2014-04-23 18:47:10 -04:00
for ( int32 ChangeIndex = 0 ; ChangeIndex < SelectedContextInfo . Changes . Num ( ) ; + + ChangeIndex )
2014-04-23 17:47:40 -04:00
{
2014-04-23 18:47:10 -04:00
// Find most recent, non-empty translation
if ( ! SelectedContextInfo . Changes [ ChangeIndex ] . Translation . IsEmpty ( ) & & SelectedTranslationUnit - > Translation ! = SelectedContextInfo . Changes [ ChangeIndex ] . Translation )
{
SelectedTranslationUnit - > Modify ( ) ;
SelectedTranslationUnit - > Translation = SelectedContextInfo . Changes [ ChangeIndex ] . Translation ;
SelectedTranslationUnit - > PostEditChange ( ) ;
}
}
}
// Add the HistoryPropertyTable-specific path
TSharedRef < FPropertyPath > HistoryPath = ContextPropertyTable - > GetRootPath ( ) ;
2020-03-15 10:33:45 -04:00
FArrayProperty * ContextArrayProp = FindFProperty < FArrayProperty > ( UTranslationUnit : : StaticClass ( ) , " Contexts " ) ;
2014-04-23 18:47:10 -04:00
FPropertyInfo ContextPropInfo ;
ContextPropInfo . Property = ContextArrayProp - > Inner ;
ContextPropInfo . ArrayIndex = PartialPath - > GetLeafMostProperty ( ) . ArrayIndex ;
HistoryPath = HistoryPath - > ExtendPath ( ContextPropInfo ) ;
2020-03-15 10:33:45 -04:00
FArrayProperty * ChangesProp = FindFProperty < FArrayProperty > ( FTranslationContextInfo : : StaticStruct ( ) , " Changes " ) ;
2014-04-23 18:47:10 -04:00
FPropertyInfo ChangesPropInfo ;
ChangesPropInfo . Property = ChangesProp ;
ChangesPropInfo . ArrayIndex = INDEX_NONE ;
HistoryPath = HistoryPath - > ExtendPath ( ChangesPropInfo ) ;
if ( HistoryPropertyTable . IsValid ( ) )
{
TArray < UObject * > ObjectArray ;
ObjectArray . Add ( SelectedTranslationUnit ) ;
HistoryPropertyTable - > SetObjects ( ObjectArray ) ;
HistoryPropertyTable - > SetRootPath ( HistoryPath ) ;
// Need to re-add the columns we want to display
2020-03-15 10:33:45 -04:00
HistoryPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( FTranslationChange : : StaticStruct ( ) , " Version " ) ) ;
HistoryPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( FTranslationChange : : StaticStruct ( ) , " DateAndTime " ) ) ;
HistoryPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( FTranslationChange : : StaticStruct ( ) , " Source " ) ) ;
HistoryPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( FTranslationChange : : StaticStruct ( ) , " Translation " ) ) ;
2014-04-23 18:47:10 -04:00
TArray < TSharedRef < IPropertyTableColumn > > Columns = HistoryPropertyTable - > GetColumns ( ) ;
for ( TSharedRef < IPropertyTableColumn > Column : Columns )
{
Column - > SetFrozen ( true ) ;
2014-04-23 17:47:40 -04:00
}
}
2014-03-14 14:13:41 -04:00
}
}
}
}
}
}
2014-04-23 17:49:26 -04:00
void FTranslationEditor : : PreviewAllTranslationsInEditor_Execute ( )
{
2015-08-06 22:33:48 -04:00
DataManager - > PreviewAllTranslationsInEditor ( AssociatedLocalizationTarget . Get ( ) ) ;
2014-04-23 17:49:26 -04:00
}
2015-05-28 21:40:23 -04:00
void FTranslationEditor : : ImportLatestFromLocalizationService_Execute ( )
{
2015-07-09 19:38:01 -04:00
check ( AssociatedLocalizationTarget . IsValid ( ) ) ;
2015-05-28 21:40:23 -04:00
ILocalizationServiceProvider & Provider = ILocalizationServiceModule : : Get ( ) . GetProvider ( ) ;
TSharedRef < FDownloadLocalizationTargetFile , ESPMode : : ThreadSafe > DownloadTargetFileOp = ILocalizationServiceOperation : : Create < FDownloadLocalizationTargetFile > ( ) ;
2015-07-09 19:38:01 -04:00
DownloadTargetFileOp - > SetInTargetGuid ( AssociatedLocalizationTarget - > Settings . Guid ) ;
2015-05-28 21:40:23 -04:00
DownloadTargetFileOp - > SetInLocale ( FPaths : : GetBaseFilename ( FPaths : : GetPath ( ArchiveFilePath ) ) ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3548365)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3494741 by Steve.Robb
Generated code size savings.
#jira UE-43048
Change 3495484 by Steve.Robb
Fix for generated indices of static arrays when saving configs.
Change 3497926 by Robert.Manuszewski
Removed FPackageFileSummary's CompressedChunks array as it was no longer being used by anything.
Change 3498077 by Robert.Manuszewski
Only use the recursion guard in async loading code when the event driven loader is enabled.
Change 3498112 by Ben.Marsh
UBT: Respect the option to not create debug info in the Android toolchain. This option is already being respected by the compiler, but the linker adds debug info of its own.
Change 3500239 by Robert.Manuszewski
Made sure the Super Class token stream is also locked when assembling Class token stream with async loading thread enabled. This to to prevent race conditions when loading BP classes.
Change 3500395 by Steve.Robb
Extra codegen savings when not in hot reload.
Change 3501004 by Steve.Robb
EObjectFlags now have constexpr operators.
Change 3502079 by Ben.Marsh
UBT: Pad multi-line error messages so that they align under the prefix for the first line, and include the timestamp if necessary.
Change 3502527 by Steve.Robb
Fix for zero-sized array compile error in generated code when all functions are editor-only.
Change 3502542 by Ben.Marsh
UAT: Remove the custom source parameter from log functions, and add support for a customizable indent instead.
Change 3502868 by Steve.Robb
Workaround for inefficient generated code with stateless lambdas on Clang.
Change 3503550 by Steve.Robb
Another generated code lambda optimization.
Change 3503582 by Ben.Marsh
BuildGraph: Add support for nullable parameter types.
Change 3504424 by Steve.Robb
New AllOf, AnyOf and NoneOf algorithms.
Change 3504712 by Ben.Marsh
UAT: Less spammy log and error output from UAT.
* Callstacks for AutomationExceptions are suppressed by default but still included in the log (the path to the log is noted in console output with the message from the exception).
* Add a mechanism for any exceptions to be caught and rethrown with additional lines of context (CommandUtils.AddContext()) that will be appended to the error output by UAT. Avoids decaying the exception type or masking the inner exception message while still adding additional information.
* AggregateExceptions resulting from exceptions on child threads are automatically unwrapped (full details are still appended to the log)
* Name of the calling function is not included in console output by default, but still included in the log.
Change 3504808 by Ben.Marsh
UAT: Suppress P4 output when running a recursive instance of UAT.
Change 3505044 by Steve.Robb
Code generation improved for TCppClassType code.
Change 3505485 by Ben.Marsh
Fix deterministic cooking issue; always use a pseudo-random number stream when compiling a module.
Change 3505699 by Ben.Marsh
Plugins: Store the bEnabledByDefault flag exactly as it was read from disk rather than collapsing it to an absolute value based on the default for the location it was read from. This allows loading/saving plugin descriptors without any knowledge of whether they are game or engine plugins.
Change 3506055 by Ben.Marsh
UAT: Add a class to apply a log indent for the lifetime of an object (ScopedLogIndent), and use it to apply an indent to MegaXGE/ParallelExecutor output.
Change 3507745 by Robert.Manuszewski
Moved FSimpleObjectReferenceCollectorArchive and FSimpleObjectReferenceCollectorArchive to be internal archives used only by FReferenceCollector so that they are constructed only once per GC task instead of potentially multiple times per GC (as was the case with UDataTables and BlueprintGeneratedClasses).
Change 3507911 by Ben.Marsh
Plugins: Minor changes to plugin descriptors.
* Add a distinct setting for an unspecified EnabledByDefault setting in plugin descriptors.
* Add a function to IPlugin to determine the effective EnabledByDefault setting, based on where the plugin was loaded from.
Change 3508669 by Ben.Marsh
EC: Parse multi-line messages from UBT and UAT.
Change 3508691 by Ben.Marsh
Fix double-spacing of cook stats.
Change 3509245 by Steve.Robb
UHT makefiles removed.
Flag audit removed.
Change 3509275 by Steve.Robb
Fix for mismatched stat categories in AudioMixer.
#jira UE-46129
Change 3509289 by Robert.Manuszewski
Custom Version Container will no longer be always constructed in FArchive constructor. This reduces the number of the Custom Version Container allocations considerably.
Change 3509294 by Robert.Manuszewski
UDataTable::AddReferencedObjects will no longer try to iterate over the RowMap if there's no UObject references in it.
Change 3509312 by Steve.Robb
GitHub# 3679: Add TArray constructor that takes a raw pointer and a count
Check improved for Append() to allow nullptr in empty ranges, and added to new constructor too.
#jira UE-46136
Change 3509396 by Steve.Robb
GitHub# 3676: Fix TUnion operator<< compile error
#jira UE-46099
Change 3509633 by Steve.Robb
Fix for line numbers on multiline macros.
Change 3509938 by Gil.Gribb
UE4 - Fix rare assert involving cancelled precache requests and non-pak-file loading.
Change 3510593 by Daniel.Lamb
Fixed up unsoilicited files getting populated with files which aren't finished being created yet.
#test None
Change 3510594 by Daniel.Lamb
Fixed up temp files directory for patching.
Thanks David Yerkess @ Milestone
#review@Ben.Marsh
Change 3511628 by Ben.Marsh
PR #3707: Fixed UBT stack size (Contributed by gildor2)
Change 3511808 by Ben.Marsh
Optimize checks for whether the game project contains source code. Now stops as soon as the first file is found and ignores directories beginning with a '.' character (eg. .git)
#jira UE-46540
Change 3512017 by Ben.Marsh
Plugins: Deprecate the QueryStatusForAllPlugins() function; the same functionality is available via the IPlugin interface.
Change 3513935 by Steve.Robb
Reverted array iteration in FPropertyNode::PropagatePropertyChange as this is now covered in TProperty::InitializeValueInternal() as of CL# 3293477.
Change 3514142 by Steve.Robb
MemoryProfiler2 added to generated solution.
Change 3516463 by Ben.Marsh
Plugins: Create a manifest for each PAK file containing all the plugin descriptors in one place. Eliminates need to recurse through directories and read separate multiple files in serial at startup, and allows reading all plugin descriptors with one read. The "Mods" directory is excluded from the manifest, since these are intended to be installed separately by the user.
Change 3517860 by Ben.Marsh
PR #3727: FString Dereference Fixes (Contributed by jovisgCL)
Change 3517967 by Ben.Marsh
Suppress additional system error dialogs when loading DLLs if -unnattended is on the command line.
Change 3518070 by Steve.Robb
Disable Binned2 stats in shipping non-editor builds.
Change 3520079 by Steve.Robb
Fixed bad codegen TAssetPtrs being passed into BlueprintImplementableEvent functions.
#jira UE-24034
Change 3520080 by Robert.Manuszewski
Made max package summary size to be configurable with ini setting
Change 3520083 by Steve.Robb
Force a GC after hot reload to clean up reinstanced objects which may still tick.
#jira UE-40421
Change 3520480 by Robert.Manuszewski
Improved assert message when the initial package read request was too small.
Change 3520590 by Graeme.Thornton
SignedArchiveReader optimizations
- Loads more stats
- Stop chunk cache worker from waking up continuously to poll for work. Only wake up when triggered by the archive reader
- Signed archive reader just yields when waiting for buffers to finish loading, rather than sleeping for some arbitrary amount of time
- Track the number of pending read requests in an atomic counter, to save having to lock the request queue to check for new entries
Change 3521023 by Graeme.Thornton
Remove spin from signed archive reader. Main thread waits on an event triggered by the chunk worker to indicate that new chunks are ready for processing
Change 3521787 by Ben.Marsh
PR #3736: Small static code analysis fixes (Contributed by jovisgCL)
Change 3521789 by Ben.Marsh
PR #3735: Fix case sensitivity issue in FWindowsPlatformProcess::IsApplicationRunning. (Contributed by samhocevar)
Change 3524721 by Ben.Marsh
Move Linux SDL initialization into FLinuxPlatformApplicationMisc. Attempting to move functionality related to interactive applications (graphics, input, etc...) into a separate place, so it can ultimately be moved out of Core.
Change 3524741 by Ben.Marsh
Move PumpMessages() into FPlatformApplicationMisc.
Change 3525399 by Ben.Marsh
UGS: Use the default Perforce server port when opening P4V if there is not one set in the environment.
Change 3525743 by Ben.Marsh
UAT: Add a parameter to allow updating version files without updating Version.h, to allow faster link times on incremental builds.
Change 3525746 by Ben.Marsh
EC: Include the clobber option on new workspaces, to allow overriding version files when syncing.
Change 3526453 by Ben.Marsh
UGS: Do not generate project files when syncing precompiled binaries.
Change 3527045 by Ben.Marsh
Fix hot reload generating import libraries without DLLs. Now that they are produced by separate actions by default, it was removing DLLs from the action graph due to the bSkipLinkingWhenNothingToCompile setting.
Change 3527420 by Ben.Marsh
UGS: Add additional search paths for UGS config files, and fix a few cosmetic issues (inability to display ampersands in tools menu, showing changelist -1 when running a tool without syncing).
Config files are now read from:
Engine/Programs/UnrealGameSync/UnrealGameSync.ini
Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini
If a project is selected:
<ProjectDir>/Build/UnrealGameSync.ini
<ProjectDir>/Build/NotForLicensees/UnrealGameSync.ini
If the .uprojectdirs file is selected:
Engine/Programs/UnrealGameSync/DefaultProject.ini
Engine/Programs/UnrealGameSync/NotForLicensees/DefaultProject.ini
Change 3528063 by Ben.Marsh
Fix non-thread safe construction of FPluginManager singleton. Length of time spent in the constructor resulted in multiple instances being constructed at startup, making the time to enumerate plugins on slow media significantly worse.
Change 3528415 by Ben.Marsh
UAT: Remove \r characters from the end of multiline log messages.
Change 3528427 by Ben.Marsh
EC: Fix spaces being converted to tabs at start of line in failure emails (by Gmail), and wrap following lines at the same indent.
Change 3528485 by Ben.Marsh
EC: Remove zero-width word break characters from slashes in notification emails; can cause really hard to debug problems when copy pasted into other places.
Change 3528505 by Steve.Robb
PR #3755: MallocProfiler - Remove subfolder from profiling save directory (Contributed by Josef-CL)
#jira UE-46819
Change 3528772 by Robert.Manuszewski
Enabling actor and blueprint clustering in ShooterGame
Change 3528786 by Robert.Manuszewski
PR #3760: Fix typo (Contributed by jesseyeh)
Change 3528792 by Steve.Robb
PR #3764: MallocProfiler - Refactoring Scopelock (Contributed by Josef-CL)
#jira UE-46962
Change 3528941 by Robert.Manuszewski
Fixed lazy object pointers not being updated for streaming sub-levels in PIE. Fixed lazy pointers returning object that is still being loaded which could lead to undefined behavior when client code started modifying the returned object.
#jira UE-44996
Change 3530241 by Ben.Marsh
UAT: Only pass -submit or -nosubmit to child instances of UAT if they were specified on the original command line. BuildCookRun uses this flag to determine whether to submit, rather than just whether to allow submitting, so we shouldn't pass an inferred value.
Change 3531377 by Ben.Marsh
Plugins: Allow plugins to specify a list of supported target platforms, which is propagated to any .uproject file that enables it.
This has several advantages over the per-module platform whitelist/blacklist:
* Platform-specific .uplugin files can now be excluded when staging other platforms. Previously, it was only possible to determine which platforms a plugin supports by reading the plugin descriptor itself. Now that information is copied into the .uproject file, so the runtime knows which plugins to ignore.
* References to dependent plugins from platform-specific plugins can now be eliminated.
* Plugins containing content can now be unambiguously disabled on a per-platform basis (having no modules for a platform does not confer that a plugin doesn't support that platform; now it is possible to specify supported platforms explicitly).
* The editor can load any plugins without having to whitelist supported editor host platforms.
UE4 targets which support loading plugins for target platforms can set TargetRules.bIncludePluginsForTargetPlatforms (true for the editor by default, false for any other target types). This defines the LOAD_PLUGINS_FOR_TARGET_PLATFORMS macro at runtime, which allows the plugin system to filter which plugins to look for at runtime.
Any .uproject file will be updated at startup to contain the list of supported platforms for each referenced plugin if necessary.
Change 3531502 by Jin.Zhang
Add support for GPUCrash #rb
Change 3531664 by Ben.Marsh
UBT: Change output format from C# JSON writer to match output by the engine.
Change 3531848 by Ben.Marsh
UAT: Add script to resaving all project descriptors under a folder, embedding information for any supported platforms for the plugins they enable.
Change 3531869 by Ben.Marsh
UAT: Add parameter to the ResaveProjectDescriptors command to update the engine association field.
Change 3532474 by Ben.Marsh
UBT: Use the same mechanism as UAT for logging exceptions.
Change 3532734 by Graeme.Thornton
Initial VSCode Support
- Tasks generated for building all game/engine/program targets
- Debugging support for targets on Win64
Change 3532789 by Steve.Robb
FScriptSet::Add and TScriptMap::Add now replace the element, matching the behavior of TSet and TMap.
Set_Add and Map_Add no longer have a return value.
FScriptSet::Find and FScriptMap::Find functions are now FindIndex.
FScriptSetHelper::FindElementFromHash is now FindElementIndexFromHash.
Change 3532845 by Steve.Robb
Obsolete UHT settings deleted.
Change 3532875 by Graeme.Thornton
VSCode
- Add debug targets for different target configurations
- Choose between VS debugger (windows) and GDB (mac/linux)
Change 3532906 by Graeme.Thornton
VSCode
- Point all builds directly at UBT rather than the batch files
- Adjust mac build tasks to run through mono
Change 3532924 by Ben.Marsh
UAT: Set the UAT working directory immediately on startup. This ensures that any command line arguments containing paths are resolved consistently to the branch root.
Change 3535234 by Graeme.Thornton
VSCode - Pass intellisense system a list of paths to use for header resolution
Change 3535247 by Graeme.Thornton
UBT - Add a ToString to ProjectFile.Source file to help with debugger watch presentation
Change 3535376 by Graeme.Thornton
VSCode
- Added build jobs for C# projects
- Linked launch tasks to relevant build task
Change 3537083 by Ben.Marsh
EC: Change P4 swarm links to start at the changelist for a build.
Change 3537368 by Graeme.Thornton
Fix for crash in FSignedArchiveReader when multithreading is disabled
Change 3537550 by Graeme.Thornton
Fixed a crash in the taskgraph when running single threaded
Change 3537922 by Steve.Robb
Missing PF_ATC_RGBA_I added to FOREACH_ENUM_EPIXELFORMAT.
Change 3539691 by Graeme.Thornton
VSCode - Various updates to get PC and Mac C++ projects building and debugging.
- Some other changes to C# setup to allow compilation. Debugging doesn't work.
Change 3539775 by Ben.Marsh
Plugins: Various fixes to settings for enabling plugins.
* Fix crash on startup when trying to disable a missing plugin (was keeping pointers to elements in the project's plugin reference array, which may be modified if a plugin is disabled).
* Revert fix to set PluginDescriptor.bRequiresBuildPlatform = true by default. This was the originally intended behavior, but it was accidentally defaulted to false during serialization unless specified in the .uplugin file. Many plugins may rely on this behavior (they may not declare asset classes otherwise, for example, which could result in loss of data), so change the default value to false instead. Also fixes popups to disable platform-specific plugins if platform SDKs are not installed.
* Fix plugins which are referenced but do not exist not showing the appropriate prompt to disable them.
Change 3540788 by Ben.Marsh
UBT: Add support for declaring custom pre-build steps and post-build steps from .target.cs files. Similarly to the custom build steps configurable from .uproject and .uplugin files, these specify commands which will be executed by the host platform's shell before or after a build. The following variables are expanded within the list of commands before execution: $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile).
Example usage:
public class UnrealPakTarget : TargetRules
{
public UnrealPakTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Program;
LinkType = TargetLinkType.Monolithic;
LaunchModuleName = "UnrealPak";
if(HostPlatform == UnrealTargetPlatform.Win64)
{
PreBuildSteps.Add("echo Before building:");
PreBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)");
PostBuildSteps.Add("echo After building!");
PostBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)");
}
}
}
Change 3541664 by Graeme.Thornton
VSCode - Add problemMatcher tag to cpp build targets
Change 3541732 by Graeme.Thornton
VSCode - Change UBT command line switch to "-vscode" for simplicity
Change 3541967 by Graeme.Thornton
VSCode - Fixes for Mac/Linux build steps
Change 3541968 by Ben.Marsh
CRP: Pass through the EnabledPlugins element in crash context XML files.
#jira UE-46912
Change 3542519 by Ben.Marsh
UBT: Add chain of references to error messages when configuring plugins.
Change 3542523 by Ben.Marsh
UBT: Add more useful error message when attempt to parse a JSON object fails.
Change 3542658 by Ben.Marsh
UBT: Include a chain of references when reporting errors instantiating modules.
Change 3543432 by Ben.Marsh
Plugins: Fix plugins which are enabled by default not being enabled unless a project file is set.
Change 3543436 by Ben.Marsh
UBT: Prevent recursing through the same module more than once when building out the referenced modules. Produces much shorter reference chains when something fails.
Change 3543536 by Ben.Marsh
UBT: Downgrade message about redundant plugin references to a warning.
Change 3543871 by Gil.Gribb
UE4 - Fixed a critical crash bug with non-EDL loading from pak files.
Change 3543924 by Robert.Manuszewski
Fixed a crash on UnrealFrontend startup caused by re-assembling GC token stream for one of the classes.
+Small optimization to token stream generation code.
Change 3544469 by Jin.Zhang
Crashes page displays the list of plugins from the crash context #rb
Change 3544608 by Steve.Robb
Fix for nativized generated code.
#jira UE-47452
Change 3544612 by Ben.Marsh
Add callback into FMacPlatformMisc::PumpMessages() from FMacPlatformApplicationMisc::PumpMessages().
#jira UE-47449
Change 3545954 by Gil.Gribb
Fixed a critical crash bug relating to a race condition in async package summary reading.
Change 3545968 by Ben.Marsh
UAT: Fix incorrect username in BuildGraph <Submit> task. Should use the username from the Perforce environment, not assume the logged in user name is the same.
#jira UE-47419
Change 3545976 by Ben.Marsh
EC: Delete the AutoSDK client if the directory doesn't exist. When we format build machines, we need to force everything to be resynced from scratch.
Change 3546185 by Ben.Marsh
Hacky fix for deployment on IOS/TVOS. Since deployment directly references the NonUFS manifest files that are written out, merge all the SystemNonUFS files back into the NonUFS list after the regular NonUFS files have been remapped.
Change 3547084 by Gil.Gribb
Fixed a critical race condition in the new async loader. This was only reproducible on IOS, but may affect other platforms.
Change 3547968 by Gil.Gribb
Fixed critical race which potentially could cause a crash in the pak precacher.
Change 3504722 by Ben.Marsh
BuildGraph: Improved tracing for error messages. All errors are now propagated as exceptions, and are tagged with additional context information about the task currently being run.
For example, throwing new AutomationException("Unable to write foo.txt") from SetVersionTask.Execute is now displayed in the log as:
ERROR: Unable to write to foo.txt
while executing <SetVersion Change="0" CompatibleChange="0" Branch="Unknown" Promoted="True" />
at Engine\Build\InstalledEngineBuild.xml(91)
(see D:\P4 UE4\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace)
Change 3512255 by Ben.Marsh
Rename FPaths functions with a "Game" prefix (GameDir(), GameContentDir(), etc...) to have a "Project" prefix (ProjectDir(), ProjectContentDir(), etc...) for clarity with non-game uses of UE4. Old functions still exist but are deprecated.
Change 3512332 by Ben.Marsh
Rename "Game" functions in FApp to be "Project" functions (FApp::GetGameName() -> FApp::GetProjectName(), etc...) for clarity with non-game uses of UE4.
Change 3512393 by Ben.Marsh
Rename FPaths::GameLogDir() to FPaths::ProjectLogDir().
Change 3513452 by Ben.Marsh
Plugins: Rename EPluginLoadedFrom::GameProject to EPluginLoadedFrom::Project.
Change 3516262 by Ben.Marsh
Add support for a "Mods" folder distinct from the project's "Plugins" folder, instead of using the bIsMod flag on the plugin descriptor.
* Mods are enumerated similarly to regular plugins, but IPlugin::GetType() will return EPluginType::Mod.
* The DLCName parameter to BuildCookRun and the cooker now correctly finds any plugin in the Plugins or Mods directory (or any subfolders).
Change 3517565 by Ben.Marsh
Remove fixed engine version numbers from OSS plugins.
Change 3518005 by Ben.Marsh
UAT: Remove the bUFSFile parameter from DeployLowerCaseFilenames(). Every platform returns false if the argument is false.
Change 3518054 by Ben.Marsh
UAT: Use an enum to direct whether all directories should be searched when finding files to stage, rather than a bool. Having so many optional boolean arguments makes code unreadable and refactoring hard.
Change 3524496 by Ben.Marsh
Start moving GUI application code into a separate static platform class, hopefully ultimately removing it from Core.
Change 3524641 by Ben.Marsh
Move more functionality related to windowed/graphical applications into FPlatformApplicationMisc.
Change 3528723 by Steve.Robb
MoveTemp now static asserts if passed a const reference or rvalue.
MoveTempIfPossible still follows the old (std::move) rule, which is useful for templates where the nature of the argument is not obvious.
Fixes to violations of these new rules.
Change 3528876 by Ben.Marsh
Move FPlatformMisc::ClipboardCopy and FPlatformMisc::ClipboardPaste to FPlatformApplicationMisc::ClipboardCopy and FPlatformApplicationMisc::ClipboardPaste.
Change 3529073 by Ben.Marsh
Add script to package ShooterGame for any platforms.
Change 3531493 by Ben.Marsh
Update platform-specific plugins to declare the target platforms they support.
Change 3531611 by Ben.Marsh
UAT: Add a ResavePluginDescriptors command, which resaves all plugin descriptors under a given folder, removing any outdated fields and rewrites them in a consistent style. Many plugins in the wild contain redundant or no-longer used fields due to using our plugins as templates.
Change 3531868 by Ben.Marsh
Resaving project descriptors to remove invalid fields.
Change 3531983 by Ben.Marsh
UAT: Simplify logic for staging code, and add validation against shipping files in restricted folders.
* Added a new SystemNonUFS type for staged files, which excludes files from being remapped or renamed by the platform layer.
* Replaced the DeplyomentContext.StageFiles() function with simpler overloads for particular use cases (options for remapping are replaced with the SystemNonUFS file type)
* Config entries in the [Staging] category in DefaultGame.ini file allow remapping one directory to another, so restricted content can be made public in packaged builds (Example syntax: +RemapDirectory=(From="Foo/NoRedist", To="Foo"))
* An error is output if any restricted folder names other than the output platform are in the staged output.
Change 3540315 by Ben.Marsh
UAT: Moving StreamCopyDescription command into a NotForLicensees folder, since it's only meant to be used by engine developers.
Change 3542410 by Ben.Marsh
UBT: Deprecate accessing properties through BuildConfiguration.* or UEBuildConfiguration.* from .target.cs files. These have been aliases to the current TargetRules instance for several releases already.
Change 3543018 by Ben.Marsh
UBT: Deprecate the BuildConfiguration and UEBuildConfiguration aliases from the ModuleRules class. These have been implemented as an alias ot the ReadOnlyTargetRules instance passed to the constructor for several engine versions.
Change 3544371 by Steve.Robb
Fixes to TSet_Add and TMap_Add BPs.
#jira UE-47441
[CL 3548391 by Ben Marsh in Main branch]
2017-07-21 12:42:36 -04:00
FString Path = FPaths : : ProjectSavedDir ( ) / " Temp " / " LastImportFromLocService.po " ;
FPaths : : MakePathRelativeTo ( Path , * FPaths : : ProjectDir ( ) ) ;
2015-05-28 21:40:23 -04:00
DownloadTargetFileOp - > SetInRelativeOutputFilePathAndName ( Path ) ;
GWarn - > BeginSlowTask ( LOCTEXT ( " ImportingFromLocalizationService " , " Importing Latest from Localization Service... " ) , true ) ;
Provider . Execute ( DownloadTargetFileOp , TArray < FLocalizationServiceTranslationIdentifier > ( ) , ELocalizationServiceOperationConcurrency : : Asynchronous , FLocalizationServiceOperationComplete : : CreateSP ( this , & FTranslationEditor : : DownloadLatestFromLocalizationServiceComplete ) ) ;
}
void FTranslationEditor : : DownloadLatestFromLocalizationServiceComplete ( const FLocalizationServiceOperationRef & Operation , ELocalizationServiceOperationCommandResult : : Type Result )
{
2015-07-09 19:38:01 -04:00
check ( AssociatedLocalizationTarget . IsValid ( ) ) ;
2015-05-28 21:40:23 -04:00
TSharedPtr < FDownloadLocalizationTargetFile , ESPMode : : ThreadSafe > DownloadLocalizationTargetOp = StaticCastSharedRef < FDownloadLocalizationTargetFile > ( Operation ) ;
bool bError = ! ( Result = = ELocalizationServiceOperationCommandResult : : Succeeded ) ;
FText ErrorText = FText : : GetEmpty ( ) ;
if ( DownloadLocalizationTargetOp . IsValid ( ) )
{
ErrorText = DownloadLocalizationTargetOp - > GetOutErrorText ( ) ;
}
if ( ! bError & & ErrorText . IsEmpty ( ) )
{
FGuid InTargetGuid ;
FString InLocale ;
FString InRelativeOutputFilePathAndName ;
if ( DownloadLocalizationTargetOp . IsValid ( ) )
{
InTargetGuid = DownloadLocalizationTargetOp - > GetInTargetGuid ( ) ;
InLocale = DownloadLocalizationTargetOp - > GetInLocale ( ) ;
InRelativeOutputFilePathAndName = DownloadLocalizationTargetOp - > GetInRelativeOutputFilePathAndName ( ) ;
}
else
{
bError = true ;
}
2015-07-09 19:38:01 -04:00
if ( InTargetGuid = = AssociatedLocalizationTarget - > Settings . Guid & & InLocale = = FPaths : : GetBaseFilename ( FPaths : : GetPath ( ArchiveFilePath ) ) & & ! InRelativeOutputFilePathAndName . IsEmpty ( ) )
2015-05-28 21:40:23 -04:00
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3548365)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3494741 by Steve.Robb
Generated code size savings.
#jira UE-43048
Change 3495484 by Steve.Robb
Fix for generated indices of static arrays when saving configs.
Change 3497926 by Robert.Manuszewski
Removed FPackageFileSummary's CompressedChunks array as it was no longer being used by anything.
Change 3498077 by Robert.Manuszewski
Only use the recursion guard in async loading code when the event driven loader is enabled.
Change 3498112 by Ben.Marsh
UBT: Respect the option to not create debug info in the Android toolchain. This option is already being respected by the compiler, but the linker adds debug info of its own.
Change 3500239 by Robert.Manuszewski
Made sure the Super Class token stream is also locked when assembling Class token stream with async loading thread enabled. This to to prevent race conditions when loading BP classes.
Change 3500395 by Steve.Robb
Extra codegen savings when not in hot reload.
Change 3501004 by Steve.Robb
EObjectFlags now have constexpr operators.
Change 3502079 by Ben.Marsh
UBT: Pad multi-line error messages so that they align under the prefix for the first line, and include the timestamp if necessary.
Change 3502527 by Steve.Robb
Fix for zero-sized array compile error in generated code when all functions are editor-only.
Change 3502542 by Ben.Marsh
UAT: Remove the custom source parameter from log functions, and add support for a customizable indent instead.
Change 3502868 by Steve.Robb
Workaround for inefficient generated code with stateless lambdas on Clang.
Change 3503550 by Steve.Robb
Another generated code lambda optimization.
Change 3503582 by Ben.Marsh
BuildGraph: Add support for nullable parameter types.
Change 3504424 by Steve.Robb
New AllOf, AnyOf and NoneOf algorithms.
Change 3504712 by Ben.Marsh
UAT: Less spammy log and error output from UAT.
* Callstacks for AutomationExceptions are suppressed by default but still included in the log (the path to the log is noted in console output with the message from the exception).
* Add a mechanism for any exceptions to be caught and rethrown with additional lines of context (CommandUtils.AddContext()) that will be appended to the error output by UAT. Avoids decaying the exception type or masking the inner exception message while still adding additional information.
* AggregateExceptions resulting from exceptions on child threads are automatically unwrapped (full details are still appended to the log)
* Name of the calling function is not included in console output by default, but still included in the log.
Change 3504808 by Ben.Marsh
UAT: Suppress P4 output when running a recursive instance of UAT.
Change 3505044 by Steve.Robb
Code generation improved for TCppClassType code.
Change 3505485 by Ben.Marsh
Fix deterministic cooking issue; always use a pseudo-random number stream when compiling a module.
Change 3505699 by Ben.Marsh
Plugins: Store the bEnabledByDefault flag exactly as it was read from disk rather than collapsing it to an absolute value based on the default for the location it was read from. This allows loading/saving plugin descriptors without any knowledge of whether they are game or engine plugins.
Change 3506055 by Ben.Marsh
UAT: Add a class to apply a log indent for the lifetime of an object (ScopedLogIndent), and use it to apply an indent to MegaXGE/ParallelExecutor output.
Change 3507745 by Robert.Manuszewski
Moved FSimpleObjectReferenceCollectorArchive and FSimpleObjectReferenceCollectorArchive to be internal archives used only by FReferenceCollector so that they are constructed only once per GC task instead of potentially multiple times per GC (as was the case with UDataTables and BlueprintGeneratedClasses).
Change 3507911 by Ben.Marsh
Plugins: Minor changes to plugin descriptors.
* Add a distinct setting for an unspecified EnabledByDefault setting in plugin descriptors.
* Add a function to IPlugin to determine the effective EnabledByDefault setting, based on where the plugin was loaded from.
Change 3508669 by Ben.Marsh
EC: Parse multi-line messages from UBT and UAT.
Change 3508691 by Ben.Marsh
Fix double-spacing of cook stats.
Change 3509245 by Steve.Robb
UHT makefiles removed.
Flag audit removed.
Change 3509275 by Steve.Robb
Fix for mismatched stat categories in AudioMixer.
#jira UE-46129
Change 3509289 by Robert.Manuszewski
Custom Version Container will no longer be always constructed in FArchive constructor. This reduces the number of the Custom Version Container allocations considerably.
Change 3509294 by Robert.Manuszewski
UDataTable::AddReferencedObjects will no longer try to iterate over the RowMap if there's no UObject references in it.
Change 3509312 by Steve.Robb
GitHub# 3679: Add TArray constructor that takes a raw pointer and a count
Check improved for Append() to allow nullptr in empty ranges, and added to new constructor too.
#jira UE-46136
Change 3509396 by Steve.Robb
GitHub# 3676: Fix TUnion operator<< compile error
#jira UE-46099
Change 3509633 by Steve.Robb
Fix for line numbers on multiline macros.
Change 3509938 by Gil.Gribb
UE4 - Fix rare assert involving cancelled precache requests and non-pak-file loading.
Change 3510593 by Daniel.Lamb
Fixed up unsoilicited files getting populated with files which aren't finished being created yet.
#test None
Change 3510594 by Daniel.Lamb
Fixed up temp files directory for patching.
Thanks David Yerkess @ Milestone
#review@Ben.Marsh
Change 3511628 by Ben.Marsh
PR #3707: Fixed UBT stack size (Contributed by gildor2)
Change 3511808 by Ben.Marsh
Optimize checks for whether the game project contains source code. Now stops as soon as the first file is found and ignores directories beginning with a '.' character (eg. .git)
#jira UE-46540
Change 3512017 by Ben.Marsh
Plugins: Deprecate the QueryStatusForAllPlugins() function; the same functionality is available via the IPlugin interface.
Change 3513935 by Steve.Robb
Reverted array iteration in FPropertyNode::PropagatePropertyChange as this is now covered in TProperty::InitializeValueInternal() as of CL# 3293477.
Change 3514142 by Steve.Robb
MemoryProfiler2 added to generated solution.
Change 3516463 by Ben.Marsh
Plugins: Create a manifest for each PAK file containing all the plugin descriptors in one place. Eliminates need to recurse through directories and read separate multiple files in serial at startup, and allows reading all plugin descriptors with one read. The "Mods" directory is excluded from the manifest, since these are intended to be installed separately by the user.
Change 3517860 by Ben.Marsh
PR #3727: FString Dereference Fixes (Contributed by jovisgCL)
Change 3517967 by Ben.Marsh
Suppress additional system error dialogs when loading DLLs if -unnattended is on the command line.
Change 3518070 by Steve.Robb
Disable Binned2 stats in shipping non-editor builds.
Change 3520079 by Steve.Robb
Fixed bad codegen TAssetPtrs being passed into BlueprintImplementableEvent functions.
#jira UE-24034
Change 3520080 by Robert.Manuszewski
Made max package summary size to be configurable with ini setting
Change 3520083 by Steve.Robb
Force a GC after hot reload to clean up reinstanced objects which may still tick.
#jira UE-40421
Change 3520480 by Robert.Manuszewski
Improved assert message when the initial package read request was too small.
Change 3520590 by Graeme.Thornton
SignedArchiveReader optimizations
- Loads more stats
- Stop chunk cache worker from waking up continuously to poll for work. Only wake up when triggered by the archive reader
- Signed archive reader just yields when waiting for buffers to finish loading, rather than sleeping for some arbitrary amount of time
- Track the number of pending read requests in an atomic counter, to save having to lock the request queue to check for new entries
Change 3521023 by Graeme.Thornton
Remove spin from signed archive reader. Main thread waits on an event triggered by the chunk worker to indicate that new chunks are ready for processing
Change 3521787 by Ben.Marsh
PR #3736: Small static code analysis fixes (Contributed by jovisgCL)
Change 3521789 by Ben.Marsh
PR #3735: Fix case sensitivity issue in FWindowsPlatformProcess::IsApplicationRunning. (Contributed by samhocevar)
Change 3524721 by Ben.Marsh
Move Linux SDL initialization into FLinuxPlatformApplicationMisc. Attempting to move functionality related to interactive applications (graphics, input, etc...) into a separate place, so it can ultimately be moved out of Core.
Change 3524741 by Ben.Marsh
Move PumpMessages() into FPlatformApplicationMisc.
Change 3525399 by Ben.Marsh
UGS: Use the default Perforce server port when opening P4V if there is not one set in the environment.
Change 3525743 by Ben.Marsh
UAT: Add a parameter to allow updating version files without updating Version.h, to allow faster link times on incremental builds.
Change 3525746 by Ben.Marsh
EC: Include the clobber option on new workspaces, to allow overriding version files when syncing.
Change 3526453 by Ben.Marsh
UGS: Do not generate project files when syncing precompiled binaries.
Change 3527045 by Ben.Marsh
Fix hot reload generating import libraries without DLLs. Now that they are produced by separate actions by default, it was removing DLLs from the action graph due to the bSkipLinkingWhenNothingToCompile setting.
Change 3527420 by Ben.Marsh
UGS: Add additional search paths for UGS config files, and fix a few cosmetic issues (inability to display ampersands in tools menu, showing changelist -1 when running a tool without syncing).
Config files are now read from:
Engine/Programs/UnrealGameSync/UnrealGameSync.ini
Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini
If a project is selected:
<ProjectDir>/Build/UnrealGameSync.ini
<ProjectDir>/Build/NotForLicensees/UnrealGameSync.ini
If the .uprojectdirs file is selected:
Engine/Programs/UnrealGameSync/DefaultProject.ini
Engine/Programs/UnrealGameSync/NotForLicensees/DefaultProject.ini
Change 3528063 by Ben.Marsh
Fix non-thread safe construction of FPluginManager singleton. Length of time spent in the constructor resulted in multiple instances being constructed at startup, making the time to enumerate plugins on slow media significantly worse.
Change 3528415 by Ben.Marsh
UAT: Remove \r characters from the end of multiline log messages.
Change 3528427 by Ben.Marsh
EC: Fix spaces being converted to tabs at start of line in failure emails (by Gmail), and wrap following lines at the same indent.
Change 3528485 by Ben.Marsh
EC: Remove zero-width word break characters from slashes in notification emails; can cause really hard to debug problems when copy pasted into other places.
Change 3528505 by Steve.Robb
PR #3755: MallocProfiler - Remove subfolder from profiling save directory (Contributed by Josef-CL)
#jira UE-46819
Change 3528772 by Robert.Manuszewski
Enabling actor and blueprint clustering in ShooterGame
Change 3528786 by Robert.Manuszewski
PR #3760: Fix typo (Contributed by jesseyeh)
Change 3528792 by Steve.Robb
PR #3764: MallocProfiler - Refactoring Scopelock (Contributed by Josef-CL)
#jira UE-46962
Change 3528941 by Robert.Manuszewski
Fixed lazy object pointers not being updated for streaming sub-levels in PIE. Fixed lazy pointers returning object that is still being loaded which could lead to undefined behavior when client code started modifying the returned object.
#jira UE-44996
Change 3530241 by Ben.Marsh
UAT: Only pass -submit or -nosubmit to child instances of UAT if they were specified on the original command line. BuildCookRun uses this flag to determine whether to submit, rather than just whether to allow submitting, so we shouldn't pass an inferred value.
Change 3531377 by Ben.Marsh
Plugins: Allow plugins to specify a list of supported target platforms, which is propagated to any .uproject file that enables it.
This has several advantages over the per-module platform whitelist/blacklist:
* Platform-specific .uplugin files can now be excluded when staging other platforms. Previously, it was only possible to determine which platforms a plugin supports by reading the plugin descriptor itself. Now that information is copied into the .uproject file, so the runtime knows which plugins to ignore.
* References to dependent plugins from platform-specific plugins can now be eliminated.
* Plugins containing content can now be unambiguously disabled on a per-platform basis (having no modules for a platform does not confer that a plugin doesn't support that platform; now it is possible to specify supported platforms explicitly).
* The editor can load any plugins without having to whitelist supported editor host platforms.
UE4 targets which support loading plugins for target platforms can set TargetRules.bIncludePluginsForTargetPlatforms (true for the editor by default, false for any other target types). This defines the LOAD_PLUGINS_FOR_TARGET_PLATFORMS macro at runtime, which allows the plugin system to filter which plugins to look for at runtime.
Any .uproject file will be updated at startup to contain the list of supported platforms for each referenced plugin if necessary.
Change 3531502 by Jin.Zhang
Add support for GPUCrash #rb
Change 3531664 by Ben.Marsh
UBT: Change output format from C# JSON writer to match output by the engine.
Change 3531848 by Ben.Marsh
UAT: Add script to resaving all project descriptors under a folder, embedding information for any supported platforms for the plugins they enable.
Change 3531869 by Ben.Marsh
UAT: Add parameter to the ResaveProjectDescriptors command to update the engine association field.
Change 3532474 by Ben.Marsh
UBT: Use the same mechanism as UAT for logging exceptions.
Change 3532734 by Graeme.Thornton
Initial VSCode Support
- Tasks generated for building all game/engine/program targets
- Debugging support for targets on Win64
Change 3532789 by Steve.Robb
FScriptSet::Add and TScriptMap::Add now replace the element, matching the behavior of TSet and TMap.
Set_Add and Map_Add no longer have a return value.
FScriptSet::Find and FScriptMap::Find functions are now FindIndex.
FScriptSetHelper::FindElementFromHash is now FindElementIndexFromHash.
Change 3532845 by Steve.Robb
Obsolete UHT settings deleted.
Change 3532875 by Graeme.Thornton
VSCode
- Add debug targets for different target configurations
- Choose between VS debugger (windows) and GDB (mac/linux)
Change 3532906 by Graeme.Thornton
VSCode
- Point all builds directly at UBT rather than the batch files
- Adjust mac build tasks to run through mono
Change 3532924 by Ben.Marsh
UAT: Set the UAT working directory immediately on startup. This ensures that any command line arguments containing paths are resolved consistently to the branch root.
Change 3535234 by Graeme.Thornton
VSCode - Pass intellisense system a list of paths to use for header resolution
Change 3535247 by Graeme.Thornton
UBT - Add a ToString to ProjectFile.Source file to help with debugger watch presentation
Change 3535376 by Graeme.Thornton
VSCode
- Added build jobs for C# projects
- Linked launch tasks to relevant build task
Change 3537083 by Ben.Marsh
EC: Change P4 swarm links to start at the changelist for a build.
Change 3537368 by Graeme.Thornton
Fix for crash in FSignedArchiveReader when multithreading is disabled
Change 3537550 by Graeme.Thornton
Fixed a crash in the taskgraph when running single threaded
Change 3537922 by Steve.Robb
Missing PF_ATC_RGBA_I added to FOREACH_ENUM_EPIXELFORMAT.
Change 3539691 by Graeme.Thornton
VSCode - Various updates to get PC and Mac C++ projects building and debugging.
- Some other changes to C# setup to allow compilation. Debugging doesn't work.
Change 3539775 by Ben.Marsh
Plugins: Various fixes to settings for enabling plugins.
* Fix crash on startup when trying to disable a missing plugin (was keeping pointers to elements in the project's plugin reference array, which may be modified if a plugin is disabled).
* Revert fix to set PluginDescriptor.bRequiresBuildPlatform = true by default. This was the originally intended behavior, but it was accidentally defaulted to false during serialization unless specified in the .uplugin file. Many plugins may rely on this behavior (they may not declare asset classes otherwise, for example, which could result in loss of data), so change the default value to false instead. Also fixes popups to disable platform-specific plugins if platform SDKs are not installed.
* Fix plugins which are referenced but do not exist not showing the appropriate prompt to disable them.
Change 3540788 by Ben.Marsh
UBT: Add support for declaring custom pre-build steps and post-build steps from .target.cs files. Similarly to the custom build steps configurable from .uproject and .uplugin files, these specify commands which will be executed by the host platform's shell before or after a build. The following variables are expanded within the list of commands before execution: $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile).
Example usage:
public class UnrealPakTarget : TargetRules
{
public UnrealPakTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Program;
LinkType = TargetLinkType.Monolithic;
LaunchModuleName = "UnrealPak";
if(HostPlatform == UnrealTargetPlatform.Win64)
{
PreBuildSteps.Add("echo Before building:");
PreBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)");
PostBuildSteps.Add("echo After building!");
PostBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)");
}
}
}
Change 3541664 by Graeme.Thornton
VSCode - Add problemMatcher tag to cpp build targets
Change 3541732 by Graeme.Thornton
VSCode - Change UBT command line switch to "-vscode" for simplicity
Change 3541967 by Graeme.Thornton
VSCode - Fixes for Mac/Linux build steps
Change 3541968 by Ben.Marsh
CRP: Pass through the EnabledPlugins element in crash context XML files.
#jira UE-46912
Change 3542519 by Ben.Marsh
UBT: Add chain of references to error messages when configuring plugins.
Change 3542523 by Ben.Marsh
UBT: Add more useful error message when attempt to parse a JSON object fails.
Change 3542658 by Ben.Marsh
UBT: Include a chain of references when reporting errors instantiating modules.
Change 3543432 by Ben.Marsh
Plugins: Fix plugins which are enabled by default not being enabled unless a project file is set.
Change 3543436 by Ben.Marsh
UBT: Prevent recursing through the same module more than once when building out the referenced modules. Produces much shorter reference chains when something fails.
Change 3543536 by Ben.Marsh
UBT: Downgrade message about redundant plugin references to a warning.
Change 3543871 by Gil.Gribb
UE4 - Fixed a critical crash bug with non-EDL loading from pak files.
Change 3543924 by Robert.Manuszewski
Fixed a crash on UnrealFrontend startup caused by re-assembling GC token stream for one of the classes.
+Small optimization to token stream generation code.
Change 3544469 by Jin.Zhang
Crashes page displays the list of plugins from the crash context #rb
Change 3544608 by Steve.Robb
Fix for nativized generated code.
#jira UE-47452
Change 3544612 by Ben.Marsh
Add callback into FMacPlatformMisc::PumpMessages() from FMacPlatformApplicationMisc::PumpMessages().
#jira UE-47449
Change 3545954 by Gil.Gribb
Fixed a critical crash bug relating to a race condition in async package summary reading.
Change 3545968 by Ben.Marsh
UAT: Fix incorrect username in BuildGraph <Submit> task. Should use the username from the Perforce environment, not assume the logged in user name is the same.
#jira UE-47419
Change 3545976 by Ben.Marsh
EC: Delete the AutoSDK client if the directory doesn't exist. When we format build machines, we need to force everything to be resynced from scratch.
Change 3546185 by Ben.Marsh
Hacky fix for deployment on IOS/TVOS. Since deployment directly references the NonUFS manifest files that are written out, merge all the SystemNonUFS files back into the NonUFS list after the regular NonUFS files have been remapped.
Change 3547084 by Gil.Gribb
Fixed a critical race condition in the new async loader. This was only reproducible on IOS, but may affect other platforms.
Change 3547968 by Gil.Gribb
Fixed critical race which potentially could cause a crash in the pak precacher.
Change 3504722 by Ben.Marsh
BuildGraph: Improved tracing for error messages. All errors are now propagated as exceptions, and are tagged with additional context information about the task currently being run.
For example, throwing new AutomationException("Unable to write foo.txt") from SetVersionTask.Execute is now displayed in the log as:
ERROR: Unable to write to foo.txt
while executing <SetVersion Change="0" CompatibleChange="0" Branch="Unknown" Promoted="True" />
at Engine\Build\InstalledEngineBuild.xml(91)
(see D:\P4 UE4\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace)
Change 3512255 by Ben.Marsh
Rename FPaths functions with a "Game" prefix (GameDir(), GameContentDir(), etc...) to have a "Project" prefix (ProjectDir(), ProjectContentDir(), etc...) for clarity with non-game uses of UE4. Old functions still exist but are deprecated.
Change 3512332 by Ben.Marsh
Rename "Game" functions in FApp to be "Project" functions (FApp::GetGameName() -> FApp::GetProjectName(), etc...) for clarity with non-game uses of UE4.
Change 3512393 by Ben.Marsh
Rename FPaths::GameLogDir() to FPaths::ProjectLogDir().
Change 3513452 by Ben.Marsh
Plugins: Rename EPluginLoadedFrom::GameProject to EPluginLoadedFrom::Project.
Change 3516262 by Ben.Marsh
Add support for a "Mods" folder distinct from the project's "Plugins" folder, instead of using the bIsMod flag on the plugin descriptor.
* Mods are enumerated similarly to regular plugins, but IPlugin::GetType() will return EPluginType::Mod.
* The DLCName parameter to BuildCookRun and the cooker now correctly finds any plugin in the Plugins or Mods directory (or any subfolders).
Change 3517565 by Ben.Marsh
Remove fixed engine version numbers from OSS plugins.
Change 3518005 by Ben.Marsh
UAT: Remove the bUFSFile parameter from DeployLowerCaseFilenames(). Every platform returns false if the argument is false.
Change 3518054 by Ben.Marsh
UAT: Use an enum to direct whether all directories should be searched when finding files to stage, rather than a bool. Having so many optional boolean arguments makes code unreadable and refactoring hard.
Change 3524496 by Ben.Marsh
Start moving GUI application code into a separate static platform class, hopefully ultimately removing it from Core.
Change 3524641 by Ben.Marsh
Move more functionality related to windowed/graphical applications into FPlatformApplicationMisc.
Change 3528723 by Steve.Robb
MoveTemp now static asserts if passed a const reference or rvalue.
MoveTempIfPossible still follows the old (std::move) rule, which is useful for templates where the nature of the argument is not obvious.
Fixes to violations of these new rules.
Change 3528876 by Ben.Marsh
Move FPlatformMisc::ClipboardCopy and FPlatformMisc::ClipboardPaste to FPlatformApplicationMisc::ClipboardCopy and FPlatformApplicationMisc::ClipboardPaste.
Change 3529073 by Ben.Marsh
Add script to package ShooterGame for any platforms.
Change 3531493 by Ben.Marsh
Update platform-specific plugins to declare the target platforms they support.
Change 3531611 by Ben.Marsh
UAT: Add a ResavePluginDescriptors command, which resaves all plugin descriptors under a given folder, removing any outdated fields and rewrites them in a consistent style. Many plugins in the wild contain redundant or no-longer used fields due to using our plugins as templates.
Change 3531868 by Ben.Marsh
Resaving project descriptors to remove invalid fields.
Change 3531983 by Ben.Marsh
UAT: Simplify logic for staging code, and add validation against shipping files in restricted folders.
* Added a new SystemNonUFS type for staged files, which excludes files from being remapped or renamed by the platform layer.
* Replaced the DeplyomentContext.StageFiles() function with simpler overloads for particular use cases (options for remapping are replaced with the SystemNonUFS file type)
* Config entries in the [Staging] category in DefaultGame.ini file allow remapping one directory to another, so restricted content can be made public in packaged builds (Example syntax: +RemapDirectory=(From="Foo/NoRedist", To="Foo"))
* An error is output if any restricted folder names other than the output platform are in the staged output.
Change 3540315 by Ben.Marsh
UAT: Moving StreamCopyDescription command into a NotForLicensees folder, since it's only meant to be used by engine developers.
Change 3542410 by Ben.Marsh
UBT: Deprecate accessing properties through BuildConfiguration.* or UEBuildConfiguration.* from .target.cs files. These have been aliases to the current TargetRules instance for several releases already.
Change 3543018 by Ben.Marsh
UBT: Deprecate the BuildConfiguration and UEBuildConfiguration aliases from the ModuleRules class. These have been implemented as an alias ot the ReadOnlyTargetRules instance passed to the constructor for several engine versions.
Change 3544371 by Steve.Robb
Fixes to TSet_Add and TMap_Add BPs.
#jira UE-47441
[CL 3548391 by Ben Marsh in Main branch]
2017-07-21 12:42:36 -04:00
FString AbsoluteFilePathAndName = FPaths : : ConvertRelativePathToFull ( FPaths : : ProjectDir ( ) / InRelativeOutputFilePathAndName ) ;
2015-05-28 21:40:23 -04:00
if ( FPaths : : FileExists ( AbsoluteFilePathAndName ) )
{
GWarn - > StatusUpdate ( 50 , 100 , LOCTEXT ( " DownloadFromLocalizationServiceFinishedNowImporting " , " Download from Localization Service Finished, Importing... " ) ) ;
ImportFromPoFile ( AbsoluteFilePathAndName ) ;
}
else
{
bError = true ;
}
}
else
{
bError = true ;
}
if ( bError )
{
if ( ErrorText . IsEmpty ( ) )
{
ErrorText = LOCTEXT ( " DownloadLatestFromLocalizationServiceFileProcessError " , " An error occured when processing the file downloaded from the Localization Service. " ) ;
}
}
}
else
{
bError = true ;
if ( ErrorText . IsEmpty ( ) )
{
ErrorText = LOCTEXT ( " DownloadLatestFromLocalizationServiceDownloadError " , " An error occured while downloading the file from the Localization Service. " ) ;
}
}
GWarn - > StatusUpdate ( 100 , 100 , LOCTEXT ( " ImportFromLocalizationServiceFinished " , " Import from Localization Service Complete! " ) ) ;
GWarn - > EndSlowTask ( ) ;
if ( bError | | ! ErrorText . IsEmpty ( ) )
{
if ( ErrorText . IsEmpty ( ) )
{
ErrorText = LOCTEXT ( " DownloadLatestFromLocalizationServiceUnspecifiedError " , " An unspecified error occured when trying download and import from the Localization Service. " ) ;
}
FMessageLog TranslationEditorMessageLog ( " TranslationEditor " ) ;
TranslationEditorMessageLog . Error ( ErrorText ) ;
TranslationEditorMessageLog . Notify ( ErrorText ) ;
}
}
2014-04-23 18:20:15 -04:00
void FTranslationEditor : : ExportToPortableObjectFormat_Execute ( )
{
2014-04-23 19:06:27 -04:00
const FString PortableObjectFileDescription = LOCTEXT ( " PortableObjectFileDescription " , " Portable Object File " ) . ToString ( ) ;
const FString PortableObjectFileExtension = TEXT ( " *.po " ) ;
const FString FileTypes = FString : : Printf ( TEXT ( " %s (%s)|%s " ) , * PortableObjectFileDescription , * PortableObjectFileExtension , * PortableObjectFileExtension ) ;
2015-07-09 19:38:01 -04:00
const FString CultureToEdit = FPaths : : GetBaseFilename ( FPaths : : GetPath ( ArchiveFilePath ) ) ;
FString DefaultPath = FPaths : : GetPath ( LocalizationConfigurationScript : : GetDefaultPOPath ( AssociatedLocalizationTarget . Get ( ) , CultureToEdit ) ) ;
if ( ! LastExportFilePath . IsEmpty ( ) )
2014-04-23 19:14:07 -04:00
{
DefaultPath = LastExportFilePath ;
}
2014-04-23 19:06:27 -04:00
TArray < FString > SaveFilenames ;
IDesktopPlatform * DesktopPlatform = FDesktopPlatformModule : : Get ( ) ;
2014-04-23 18:20:15 -04:00
bool bSelected = false ;
2015-07-09 19:38:01 -04:00
const TSharedPtr < SWindow > & ParentWindow = FSlateApplication : : Get ( ) . FindWidgetWindow ( PreviewTextBlock ) ;
2014-04-23 19:06:27 -04:00
// Prompt the user for the filename
if ( DesktopPlatform )
2014-04-23 18:20:15 -04:00
{
2014-04-23 19:06:27 -04:00
void * ParentWindowWindowHandle = NULL ;
if ( ParentWindow . IsValid ( ) & & ParentWindow - > GetNativeWindow ( ) . IsValid ( ) )
{
ParentWindowWindowHandle = ParentWindow - > GetNativeWindow ( ) - > GetOSWindowHandle ( ) ;
}
bSelected = DesktopPlatform - > SaveFileDialog (
ParentWindowWindowHandle ,
LOCTEXT ( " ChooseExportLocationWindowTitle " , " Choose Export Location " ) . ToString ( ) ,
2015-07-09 19:38:01 -04:00
DefaultPath ,
LocalizationConfigurationScript : : GetDefaultPOFileName ( AssociatedLocalizationTarget . Get ( ) ) ,
2014-04-23 19:06:27 -04:00
FileTypes ,
EFileDialogFlags : : None ,
SaveFilenames
) ;
2014-04-23 18:20:15 -04:00
}
2014-04-23 19:14:07 -04:00
if ( bSelected )
2014-04-23 19:06:27 -04:00
{
2015-07-09 19:38:01 -04:00
LastExportFilePath = FPaths : : GetPath ( SaveFilenames [ 0 ] ) ;
2014-04-23 19:14:07 -04:00
// Write translation data first to ensure all changes are exported
2015-07-09 19:38:01 -04:00
if ( DataManager - > WriteTranslationData ( ) & & ParentWindow . IsValid ( ) & & SaveFilenames . Num ( ) > 0 )
2014-09-04 09:39:37 -04:00
{
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
LocalizationCommandletTasks : : ExportTextForCulture ( ParentWindow . ToSharedRef ( ) , AssociatedLocalizationTarget . Get ( ) , CultureToEdit , TOptional < FString > ( SaveFilenames . Top ( ) ) ) ;
2014-09-04 09:39:37 -04:00
}
else
{
2015-07-09 19:38:01 -04:00
FNotificationInfo Info ( LOCTEXT ( " ExportFailedError " , " Translation export failed! " ) ) ;
Info . ExpireDuration = 4.f ;
2014-09-04 09:39:37 -04:00
2015-07-09 19:38:01 -04:00
const TSharedPtr < SNotificationItem > NotificationItem = FSlateNotificationManager : : Get ( ) . AddNotification ( Info ) ;
if ( NotificationItem . IsValid ( ) )
2014-04-23 19:14:07 -04:00
{
2015-07-09 19:38:01 -04:00
NotificationItem - > SetCompletionState ( SNotificationItem : : CS_Fail ) ;
2014-04-23 19:14:07 -04:00
}
2014-04-23 18:20:15 -04:00
}
}
2014-04-23 19:14:07 -04:00
}
2014-04-23 18:20:15 -04:00
2014-04-23 19:14:07 -04:00
void FTranslationEditor : : ImportFromPortableObjectFormat_Execute ( )
{
const FString PortableObjectFileDescription = LOCTEXT ( " PortableObjectFileDescription " , " Portable Object File " ) . ToString ( ) ;
const FString PortableObjectFileExtension = TEXT ( " *.po " ) ;
const FString FileTypes = FString : : Printf ( TEXT ( " %s (%s)|%s " ) , * PortableObjectFileDescription , * PortableObjectFileExtension , * PortableObjectFileExtension ) ;
2015-07-09 19:38:01 -04:00
const FString CultureToEdit = FPaths : : GetBaseFilename ( FPaths : : GetPath ( ArchiveFilePath ) ) ;
FString DefaultPath = FPaths : : GetPath ( LocalizationConfigurationScript : : GetDefaultPOPath ( AssociatedLocalizationTarget . Get ( ) , CultureToEdit ) ) ;
if ( ! LastImportFilePath . IsEmpty ( ) )
2014-04-23 19:14:07 -04:00
{
DefaultPath = LastImportFilePath ;
}
TArray < FString > OpenFilenames ;
IDesktopPlatform * DesktopPlatform = FDesktopPlatformModule : : Get ( ) ;
bool bOpened = false ;
if ( DesktopPlatform )
{
void * ParentWindowWindowHandle = NULL ;
const TSharedPtr < SWindow > & ParentWindow = FSlateApplication : : Get ( ) . FindWidgetWindow ( PreviewTextBlock ) ;
if ( ParentWindow . IsValid ( ) & & ParentWindow - > GetNativeWindow ( ) . IsValid ( ) )
{
ParentWindowWindowHandle = ParentWindow - > GetNativeWindow ( ) - > GetOSWindowHandle ( ) ;
}
bOpened = DesktopPlatform - > OpenFileDialog (
ParentWindowWindowHandle ,
LOCTEXT ( " ChooseImportLocationWindowTitle " , " Choose File to Import " ) . ToString ( ) ,
DefaultPath ,
2015-07-09 19:38:01 -04:00
LocalizationConfigurationScript : : GetDefaultPOFileName ( AssociatedLocalizationTarget . Get ( ) ) ,
2014-04-23 19:14:07 -04:00
FileTypes ,
EFileDialogFlags : : None ,
OpenFilenames
) ;
}
2015-05-28 21:40:23 -04:00
if ( bOpened & & OpenFilenames . Num ( ) > 0 )
2014-04-23 19:14:07 -04:00
{
2015-05-28 21:40:23 -04:00
FString FileToImport = OpenFilenames [ 0 ] ;
ImportFromPoFile ( FileToImport ) ;
}
}
void FTranslationEditor : : ImportFromPoFile ( FString FileToImport )
{
LastImportFilePath = FPaths : : GetPath ( FileToImport ) ;
// Write translation data first to ensure all changes are exported
2015-07-09 19:38:01 -04:00
const FString CultureToEdit = FPaths : : GetBaseFilename ( FPaths : : GetPath ( ArchiveFilePath ) ) ;
const TSharedPtr < SWindow > & ParentWindow = FSlateApplication : : Get ( ) . FindWidgetWindow ( PreviewTextBlock ) ;
2015-05-28 21:40:23 -04:00
2015-07-09 19:38:01 -04:00
if ( DataManager - > WriteTranslationData ( true ) & & ParentWindow . IsValid ( ) )
2015-05-28 21:40:23 -04:00
{
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
if ( LocalizationCommandletTasks : : ImportTextForCulture ( ParentWindow . ToSharedRef ( ) , AssociatedLocalizationTarget . Get ( ) , CultureToEdit , TOptional < FString > ( FileToImport ) ) )
2015-05-28 21:40:23 -04:00
{
DataManager - > LoadFromArchive ( DataManager - > GetAllTranslationsArray ( ) , true , true ) ;
2020-02-28 11:30:46 -05:00
TabManager - > TryInvokeTab ( ChangedOnImportTabId ) ;
2015-05-28 21:40:23 -04:00
ChangedOnImportPropertyTable - > SetObjects ( ( TArray < UObject * > & ) DataManager - > GetChangedOnImportArray ( ) ) ;
// Need to re-add the columns we want to display
2020-03-15 10:33:45 -04:00
ChangedOnImportPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Source " ) ) ;
ChangedOnImportPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " TranslationBeforeImport " ) ) ;
ChangedOnImportPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Translation " ) ) ;
2014-04-23 19:14:07 -04:00
}
}
2015-07-09 19:38:01 -04:00
else
2015-06-17 11:39:02 -04:00
{
2015-07-09 19:38:01 -04:00
FNotificationInfo Info ( LOCTEXT ( " ImportFailedError " , " Translation import failed! " ) ) ;
Info . ExpireDuration = 4.f ;
const TSharedPtr < SNotificationItem > NotificationItem = FSlateNotificationManager : : Get ( ) . AddNotification ( Info ) ;
if ( NotificationItem . IsValid ( ) )
{
NotificationItem - > SetCompletionState ( SNotificationItem : : CS_Fail ) ;
}
2015-06-17 11:39:02 -04:00
}
2014-04-23 18:20:15 -04:00
}
2014-04-23 18:48:34 -04:00
void FTranslationEditor : : OnFilterTextChanged ( const FText & InFilterText )
{
}
void FTranslationEditor : : OnFilterTextCommitted ( const FText & InFilterText , ETextCommit : : Type CommitInfo )
{
const FString InFilterString = InFilterText . ToString ( ) ;
if ( CommitInfo = = ETextCommit : : OnEnter )
{
if ( InFilterString ! = CurrentSearchFilter )
{
CurrentSearchFilter = InFilterString ;
DataManager - > PopulateSearchResultsUsingFilter ( InFilterString ) ;
if ( SearchPropertyTable . IsValid ( ) )
{
SearchPropertyTable - > SetObjects ( ( TArray < UObject * > & ) DataManager - > GetSearchResultsArray ( ) ) ;
// Need to re-add the columns we want to display
2020-03-15 10:33:45 -04:00
SearchPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Source " ) ) ;
SearchPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Translation " ) ) ;
2014-04-23 18:48:34 -04:00
TArray < TSharedRef < IPropertyTableColumn > > Columns = SearchPropertyTable - > GetColumns ( ) ;
for ( TSharedRef < IPropertyTableColumn > Column : Columns )
{
Column - > SetFrozen ( true ) ;
}
}
}
}
}
void FTranslationEditor : : OpenSearchTab_Execute ( )
{
2020-02-28 11:30:46 -05:00
TabManager - > TryInvokeTab ( SearchTabId ) ;
2014-04-23 18:48:34 -04:00
}
2014-11-18 03:20:09 -05:00
FReply FTranslationEditor : : OnGetHistoryButtonClicked ( )
{
// Load the actual history data
DataManager - > GetHistoryForTranslationUnits ( ) ;
// Items might have moved from Untranslated to review, so refresh the view of both tables
if ( UntranslatedPropertyTable . IsValid ( ) )
{
UntranslatedPropertyTable - > SetObjects ( ( TArray < UObject * > & ) DataManager - > GetUntranslatedArray ( ) ) ;
// Need to re-add the columns we want to display
2020-03-15 10:33:45 -04:00
UntranslatedPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Source " ) ) ;
UntranslatedPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Translation " ) ) ;
2014-11-18 03:20:09 -05:00
TArray < TSharedRef < IPropertyTableColumn > > Columns = UntranslatedPropertyTable - > GetColumns ( ) ;
for ( TSharedRef < IPropertyTableColumn > Column : Columns )
{
Column - > SetFrozen ( true ) ;
}
}
if ( ReviewPropertyTable . IsValid ( ) )
{
ReviewPropertyTable - > SetObjects ( ( TArray < UObject * > & ) DataManager - > GetReviewArray ( ) ) ;
// Need to re-add the columns we want to display
2020-03-15 10:33:45 -04:00
ReviewPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Source " ) ) ;
ReviewPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " Translation " ) ) ;
ReviewPropertyTable - > AddColumn ( ( TWeakFieldPtr < FProperty > ) FindFProperty < FProperty > ( UTranslationUnit : : StaticClass ( ) , " HasBeenReviewed " ) ) ;
2014-11-18 03:20:09 -05:00
TArray < TSharedRef < IPropertyTableColumn > > Columns = ReviewPropertyTable - > GetColumns ( ) ;
for ( TSharedRef < IPropertyTableColumn > Column : Columns )
{
FString ColumnId = Column - > GetId ( ) . ToString ( ) ;
if ( ColumnId = = " HasBeenReviewed " )
{
Column - > SetWidth ( 120 ) ;
Column - > SetSizeMode ( EPropertyTableColumnSizeMode : : Fixed ) ;
}
// Freeze columns, don't want user to remove them
Column - > SetFrozen ( true ) ;
}
}
// Make sure all UI is refreshed
RefreshUI ( ) ;
// Make sure current selection is reflected
UpdateUntranslatedSelection ( ) ;
UpdateNeedsReviewSelection ( ) ;
UpdateCompletedSelection ( ) ;
UpdateSearchSelection ( ) ;
return FReply : : Handled ( ) ;
}
2014-03-14 14:13:41 -04:00
# undef LOCTEXT_NAMESPACE
2024-07-19 19:18:48 -04:00
# endif // WITH_EDITOR