Files
UnrealEngineUWP/Engine/Source/Developer/DirectoryWatcher/Private/FileCache.cpp

1176 lines
31 KiB
C++
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
#include "FileCache.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 "GenericPlatform/GenericPlatformFile.h"
#include "HAL/RunnableThread.h"
#include "HAL/PlatformFileManager.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 "HAL/FileManager.h"
#include "HAL/Runnable.h"
#include "Misc/ScopeLock.h"
#include "Serialization/CustomVersion.h"
#include "DirectoryWatcherModule.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 "Modules/ModuleManager.h"
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3491552) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3421703 on 2017/05/03 by Ben.Marsh Surround invalid character message in quotes, so it's clear when a space is listed. #jira UE-44606 Change 3422644 on 2017/05/04 by Steve.Robb Ranged-for support for TChunkedArray. Change 3422754 on 2017/05/04 by Steve.Robb IAsyncReadFileHandle made non-copyable to prevent accidental wrong stat calculation. Change 3422758 on 2017/05/04 by Steve.Robb Misc readability/standards improvements in stats code. Change 3427955 on 2017/05/08 by Steve.Robb Version fix for IOS optimization pragmas, copied from equivalent Mac code. Change 3428017 on 2017/05/08 by Steve.Robb Unused property types removed. Change 3428641 on 2017/05/08 by Ben.Marsh UAT: Remove failed attempt to separate out BuildCookRun into separate commands, which have since rotted. Change 3430407 on 2017/05/09 by Ben.Marsh UBT: Define UE_4_X_OR_LATER macros for every UE4 version greater than 4.17 (eg. UE_4_17_OR_LATER, etc...). Change 3430682 on 2017/05/09 by Gil.Gribb UE4 - Added a fatal error for asking for very large alignments from MallocBinned2 and also return the true size of the memory block in GetAllocationSize(). Change 3430685 on 2017/05/09 by Gil.Gribb UE4 - Fixed a bug with the windows async IO stuff related to an unsafe pointer cast to LPDWORD from int64*. Change 3430756 on 2017/05/09 by Ben.Marsh UBT: Switch some receipt stuff to use FileReference/DirectoryReference objects rather than raw paths. Change 3431157 on 2017/05/09 by Ben.Marsh UBT: Store absolute paths when receipts are in memory; only insert pseudo-variables for $(EngineDir) and $(ProjectDir) when saved to disk. Change 3432334 on 2017/05/10 by Graeme.Thornton Include project name in the UBT error message which appears when a plugin is missing Change 3432481 on 2017/05/10 by Gil.Gribb UE4 - Fixed code to detect cycles in parallel tick sorting. Change 3432485 on 2017/05/10 by Steve.Robb Simplified templating around bitfield offset calculation. Change 3432608 on 2017/05/10 by Steve.Robb 'bool == byte' static_assert restored after being removed in CL# 3432485. Change 3432767 on 2017/05/10 by Ben.Marsh UBT: Fix exception when a missing plugin is encountered if the target does not have a project. Change 3433031 on 2017/05/10 by Ben.Marsh UAT: Add classes to allow safer manipulation of paths within the staging directory (StagedFileReference, StagedDirectoryReference), and convert staging code over to using those and their regular filesystem counterparts (FileReference/DirectoryReference). Lots of cleanup and refactoring of staging code. Change 3433049 on 2017/05/10 by Ben.Marsh Add more diagnostic information to asserts in TStaticIndirectArrayThreadSafeRead, to try and shed light on what sort of corrupted data is being passed in from the cooker. #jira UE-44336 Change 3433097 on 2017/05/10 by Steve.Robb Value initialization fix for MakeUnique<T[]>(). Change 3433972 on 2017/05/10 by Daniel.Lamb Stop unrealpak from crashing if generating a patch with more pak files then the original game. Change 3434124 on 2017/05/10 by Ben.Marsh UAT: Remove hacky bUseWebSocketNetDriver option. Change 3434824 on 2017/05/11 by Gil.Gribb UE4 - Printed an error instead of asserting when there are missing native classes. Change 3434916 on 2017/05/11 by Ben.Marsh UAT: Separate the list of files to be staged into a separate class. Change 3435427 on 2017/05/11 by Gil.Gribb UE4 - Fixed attempts to load compiled in packages, which produces warnings and is slow. Change 3436240 on 2017/05/11 by Ben.Marsh UAT: Add a command to search for restricted folders under a given base directory. Change 3438068 on 2017/05/12 by James.Fox Checking in Phase 1 of the Dev-Core test map for repro purposes. UE-44996 #rb none Change 3438855 on 2017/05/15 by Robert.Manuszewski When verbose cluster logging is enabled and new object is added to an already existing cluster, the cluster will be dumped to log. Change 3438929 on 2017/05/15 by Robert.Manuszewski Merging CL # 3436939 using Dev-Core_To_Dev-LoadTimes: Fix for potential crashes caused by levels staying in memory through material references. Change 3439021 on 2017/05/15 by Ben.Marsh PR #3566: fix non-ascii characters in help command HTML converted to "?" (Contributed by kayama-shift) Change 3439079 on 2017/05/15 by Ben.Marsh PR #2832: Implement missing MessageBox (Contributed by projectgheist) Change 3439258 on 2017/05/15 by Ben.Marsh Highlight lines containing the strings "Error:" or "Warning:" in the output log, so that diagnostics from child processes are highlighted appropriately. The build system already relies similar logic for scraping diagnostics from logs, so it should be safe and predictable to check for messages in this way. #jira UE-43673 Change 3439358 on 2017/05/15 by Ben.Marsh UBT: Fix Visual Studio solution referencing the incorrect platform for existing C# project ("Any CPU" instead of "AnyCPU"). Was causing prompt to save the solution the first time it is opened. Change 3439665 on 2017/05/15 by Ben.Marsh UAT: Remove DeployPakInternalLowerCaseFilenames(). No platforms require this to be true. Change 3440735 on 2017/05/16 by Robert.Manuszewski UBT compile fix after the last merge Change 3440889 on 2017/05/16 by Ben.Marsh EC: Fix regex for matching path to source files included in error messages from the Linux toolchain. Change 3442776 on 2017/05/17 by Steve.Robb Platform fix for FPaths::IsSamePath. Change 3445411 on 2017/05/17 by Ben.Marsh UBT: Fix typo in makefile diagnostic string. Change 3446070 on 2017/05/18 by Steve.Robb Fix to array sizes in generated UFunction code, which should now handle editor-only functions. Change 3446091 on 2017/05/18 by Steve.Robb Another array size fix for generated code. Change 3446605 on 2017/05/18 by Steve.Robb BuildConfiguration option for static analysis. Change 3448601 on 2017/05/19 by Richard.Fawcett Change FWindowsPlatformProcess::ApplicationSettingsDir() so that it no longer returns a path with a mixture of "\" and "/" characters, and only contains "/" characters. This makes it consistent with other related functions like FWindowsPlatformProcess::UserSettingsDir(). Change 3449026 on 2017/05/19 by Ben.Marsh Fix whitespace in template file. Change 3449697 on 2017/05/19 by James.Fox Checking in Phase 2 of Dev-Core test map for QAGame Also enabled Blueprint and Actor clustering by default in QAGame for more thorough GC testing. Change 3451352 on 2017/05/22 by Steve.Robb UFunction flags are now viewable in the debugger. Change 3451355 on 2017/05/22 by Steve.Robb ARRAY_COUNT fix for zero-sized arrays in Clang. Change 3451379 on 2017/05/22 by Steve.Robb C++14 operator delete overloads with size, for consistency. Change 3451398 on 2017/05/22 by Graeme.Thornton Add AES and RSA encryption keys to the list of config fields that get stripped from ini files when staging When creating a pak file, do a filtered copy of all ini files to a temp directory so that all confidential fields can be stripped. Equivalent behaviour to staging a loose file distribution Change 3451476 on 2017/05/22 by Ben.Marsh Compile shipping builds for WEX and Ocean, and post telemetry for the resulting executable size. Change 3451478 on 2017/05/22 by Graeme.Thornton PR #3197: Improved log message formatting (Contributed by projectgheist) Change 3451868 on 2017/05/22 by Steve.Robb Static log category moved out of header. ENUM_CLASS_FLAGS macro used instead of explicit operators. Change 3452319 on 2017/05/22 by Ben.Marsh UBT: Add a new "package" build product type, which can be used for APK files on Android and Stub files on iOS. Treating these files as executables is causing the measured executable size to be incorrect. Change 3452607 on 2017/05/22 by Ben.Marsh UBT: Filter out folders for other platforms when searching for headers to pass to UHT. Change 3453600 on 2017/05/23 by Graeme.Thornton PR #3226 - Updated some code comments to better describe the usage of the log category definition macros Change 3453616 on 2017/05/23 by Steve.Robb Error reported instead of a crash when there's a space between UCLASS or UINTERFACE and the open parenthesis. Change 3453714 on 2017/05/23 by Ben.Marsh Build: Add some Visual Studio 2017 test compiles to the build system. Change 3453795 on 2017/05/23 by Ben.Marsh UBT: Fix parsing of command line attributes that have a specific value assigned. We should never have an '=' suffix for such arguments. Change 3454606 on 2017/05/23 by Ben.Marsh UAT: Make sure log filenames are unique by creating a 0-byte file in its place. Change 3454709 on 2017/05/23 by Ben.Marsh UBT: Enable the /permissive- option for stricter standards compliance on Visual Studio 2017. Currently have /Zc:strictStrings disabled due to violations in Windows headers; all UE4 instances have been fixed up. Change 3456445 on 2017/05/24 by Graeme.Thornton MemoryProfiler2 - Add mprof filename into title bar after opening Change 3457129 on 2017/05/24 by Ben.Marsh Fix comment for FVector::Normalize(). #jira UE-45369 #rnx Change 3457228 on 2017/05/24 by Ben.Marsh Do not allow forward-declaring Rect structs. They are not public, and it conflicts with third party libraries. #rnx Change 3458357 on 2017/05/24 by Ben.Marsh Fix name resolution issue with /permissive- in VS2017. Change 3458812 on 2017/05/25 by Robert.Manuszewski PR #2407: Fix LoadLibrary error with Microsoft Group Policy CWDIllegalinDllSearch mode 1 or 2 (Contributed by bozaro) Change 3458894 on 2017/05/25 by Robert.Manuszewski PR #2096: Fix argument parsing in DiffAssets Comandlet (Contributed by cgrebeld) Change 3461205 on 2017/05/26 by Robert.Manuszewski Fixed parameter parsing so that arguments are not parsed if not preceeded by a whitespace (for example "-Log" was parsed in "TM-Log") #jira UE-33790 Change 3464714 on 2017/05/30 by Robert.Manuszewski Fixing potential deadlock caused by a race condition when using FMallocVerifyProxy with FMallocBinned Change 3465310 on 2017/05/30 by Ben.Marsh UBT: Enable bAdaptiveUnityDisablesOptimizations by default. Change 3465346 on 2017/05/30 by Ben.Marsh UBT: Require Update 3 to be installed when compiling using VS2015. Change 3465389 on 2017/05/30 by Ben.Marsh UBT: Fix support for RTTI when creating PCHs and shared PCHs. Change 3466084 on 2017/05/30 by Ben.Marsh Fix compiling plain C files, where it would incorrectly use a C++ PCH. Change 3467018 on 2017/05/31 by Robert.Manuszewski Async loading code will now properly handle cases when the requested package could not be created. Change 3467113 on 2017/05/31 by Ben.Marsh UGS: When opening a solution in Visual Studio, always start the process in the solution's directory. Change 3467508 on 2017/05/31 by Ben.Marsh Add a function to fix a long package name so it matches the case of a file on disk. Fixes deterministic cooking issues when on-disk case changes. Change 3467510 on 2017/05/31 by Ben.Marsh Fix deterministic cooking issue caused by LODGroup only being initialized in the CDO if it's serialized, causing inconsistent delta serialization for instances. Change 3467967 on 2017/05/31 by Ben.Marsh Always allow UAT to compile on non-Windows platforms, even if a debugger is present, since MSVC is the only one that will load C# PDBs. Change 3468544 on 2017/05/31 by Ben.Marsh UBT: Add a more helpful message when a module is being compiled with implicit PCHs, but a source file is not configured correctly. Change 3469241 on 2017/06/01 by Ben.Marsh UBT: Fix single-file compile causing a different UHT manifest to be generated, potentially excluding hidden dependencies. Change 3471709 on 2017/06/02 by Daniel.Lamb Rebuild lighting commandlet now rebuilds reflections also instead of trashing them. #test None Change 3471719 on 2017/06/02 by Daniel.Lamb Fixed crash in cooker while trying to cook for multiple platforms #test Launch on shootergame windows + ps4 #jira UE-45356 Change 3472261 on 2017/06/02 by Ben.Marsh CRP: Clear out MDD logs whenever we clear out CRP logs. Change 3473169 on 2017/06/05 by Graeme.Thornton PR #3622: Log category code cleanup (Contributed by projectgheist) Change 3473176 on 2017/06/05 by Graeme.Thornton PR #3622: Log category code cleanup (Contributed by projectgheist) (Part II) - Missed some files from my previous checkin Change 3473597 on 2017/06/05 by Ben.Marsh UnrealVS: Fix massive slowdown on startup caused by searching the directory tree under the solution for *.uproject files (including intermediate folders, etc...). Now reads *.uprojectdirs files and only checks the listed directories within. Measured it taking > 30s to run before, now takes < 0.1s. Change 3473722 on 2017/06/05 by Steve.Robb GitHub #3444: UE-42521: Added missing macro's for TMap and TSet PREPROCESSOR_COMMA_SEPARATED added as a better solution for the hacky comma separator solution in the PR. Change 3475073 on 2017/06/06 by Steve.Robb Fix for TPromise's move assignment operator return value. Change 3475331 on 2017/06/06 by Ben.Marsh UAT: Fix invalid paths being generated when stripping encryption settings from config files. * In cases where INI files were in a subfolder of the Config folder (eg. Config\Localization), it was not stripping the separating slash, resulting in files being written to the root directory of the current drive. * Paths under the config folder are not guaranteed to be unique. Change 3475453 on 2017/06/06 by Ben.Marsh UBT: Add an error if a plugin lists a non-plugin module as belonging to it. #jira UE-45178 Change 3475668 on 2017/06/06 by Ben.Marsh Add a message showing when we begin creating the asset registry, since it can take a long time. #jira UE-41675 Change 3475747 on 2017/06/06 by Steve.Robb Replicated from CL# 3332960: Force a gather on hot reload, so we don't use stale state from the makefile. #jira UE-42205 Change 3475897 on 2017/06/06 by Ben.Marsh PR #3655: Improved behavior for Automation.IsBuildMachine (Contributed by projectgheist) Change 3477432 on 2017/06/07 by Robert.Manuszewski Removed AsyncIOBandwidthLimit as it was no longer being used by anything. Change 3478582 on 2017/06/07 by Ben.Marsh UBT: Allow setting the UE_ENGINE_DIRECTORY macro for any monolithic builds, to fix being able to debug cooked foreign projects in the binary release. Change 3480035 on 2017/06/08 by Gil.Gribb UE4 - Fixed async loading from pak files < 64k. Change 3484348 on 2017/06/12 by Robert.Manuszewski Removed private_subobject macro which was a temporary measure to make all subobjects private without breaking game code. Change 3484863 on 2017/06/12 by Steve.Robb Fix for TSparseArray::operator= corrupting non-POD objects. InCopy.ArrayMax cached in a local instead of being read each time. Const-correctness fix for element copy construction. SrcData and DestData names flipped as they were the wrong way around. Source: https://udn.unrealengine.com/questions/374840/possible-bug-in-tsparsearray-assignment-operator.html Change 3485003 on 2017/06/12 by Ben.Marsh UGS: Add support for multiple tabs. Each tab can monitor changes in a separate workspace, and scheduled syncs will run for all open tabs. Change 3485063 on 2017/06/12 by Ben.Marsh UGS: Fix a null reference exception when right clicking on the notification icon during startup. Change 3485104 on 2017/06/12 by Ben.Marsh PR #2084: [UAT] Command-line parameter to override branch name (Contributed by nbjk667) Change 3485112 on 2017/06/12 by Steve.Robb TSetElement generic constructor protected from becoming a copy constructor. Redundant #include removed from AreTypesEqual.h. Source: https://udn.unrealengine.com/questions/374840/possible-bug-in-tsparsearray-assignment-operator.html Change 3485452 on 2017/06/12 by Ben.Marsh UnrealVS: Fix command line not being updated for C# projects. IVsBuildPropertyStorage.SetPropertyValue does not seem to update properties that are cached in memory. #jira UE-45716 Change 3486182 on 2017/06/12 by Ben.Marsh UGS: Include option to selet tab names in the options menu. Change 3486189 on 2017/06/12 by Ben.Marsh UGS: Fix browse button from context menu always opening a new tab. Change 3486636 on 2017/06/13 by Steve.Robb FStatMessagesArray iteration changed to use ranged-for instead of indexing. Change 3486688 on 2017/06/13 by Steve.Robb Fix for CDO pointer replacement in non-UObject properties during hot reload. #jira UE-38146 Change 3486704 on 2017/06/13 by Ben.Marsh UGS: Fix exception when closing the last open tab. Change 3486707 on 2017/06/13 by Ben.Marsh UGS: Fix exception on load if UGS was closed with no projects open. Change 3486715 on 2017/06/13 by Ben.Marsh UGS: Change tabs to show the project file by default. Change 3486718 on 2017/06/13 by Ben.Marsh UGS: Only allow one workspace to sync at a time. Change 3486880 on 2017/06/13 by Ben.Marsh UGS: Show the sync progress of each tab via the underline on the tab button. Change 3486912 on 2017/06/13 by Ben.Marsh UGS: Include the open project and recent project list as separate top-level menu items. Change 3486914 on 2017/06/13 by Ben.Marsh UGS: Update version to 1.101. Change 3487092 on 2017/06/13 by Ben.Marsh UGS: Fix crash on startup if log window is minimized. Change 3487099 on 2017/06/13 by Ben.Marsh UGS: Update version to 1.102 Change 3487198 on 2017/06/13 by Ben.Marsh Remove debug code. Change 3487285 on 2017/06/13 by Ben.Marsh Restore Remap() function that was accidentally removed in merge. Change 3487769 on 2017/06/13 by Ben.Marsh Disable the promoted flag when using the SyncProject command on Mac; doing so prevents UE4Game being compiled when packaging blueprint projects. #jira UE-45995 Change 3487915 on 2017/06/13 by Ben.Marsh UAT: Fix exception due to collection being modified while packaging for Linux. #jira UE-46013 Change 3487972 on 2017/06/13 by Ben.Marsh UAT: Always allow staged files to overwrite previously staged files. New iOS code relies on old behavior to overwrite engine icons and metadata with game copies. #jira UE-46014 Change 3487991 on 2017/06/13 by Ben.Marsh UAT: Ensure that the directory exists before trying to create a placeholder log filename. #jira UE-46015 Change 3489062 on 2017/06/14 by Robert.Manuszewski Removed FPackageFileSummary's AdditionalPackagesToCook as it was not used by anything. This should reduce the package header size considerably for levels with many streaming sublevels. #jira UE-45563 Change 3489063 on 2017/06/14 by Robert.Manuszewski Increasing the maximum package summary size to handle levels with multiple streaming sublevels. #jira UE-45563 Change 3491552 on 2017/06/15 by Ben.Marsh Handle failures to load *MeshReduction modules. [CL 3492074 by Ben Marsh in Main branch]
2017-06-15 12:43:54 -04:00
DEFINE_LOG_CATEGORY_STATIC(LogFileCache, Log, All);
namespace DirectoryWatcher
{
template<typename T>
void ReadWithCustomVersions(FArchive& Ar, T& Data, ECustomVersionSerializationFormat::Type CustomVersionFormat)
{
int64 CustomVersionsOffset = 0;
Ar << CustomVersionsOffset;
const int64 DataStart = Ar.Tell();
Ar.Seek(CustomVersionsOffset);
// Serialize the custom versions
FCustomVersionContainer Vers = Ar.GetCustomVersions();
Vers.Serialize(Ar, CustomVersionFormat);
Ar.SetCustomVersions(Vers);
Ar.Seek(DataStart);
Ar << Data;
}
template<typename T>
void WriteWithCustomVersions(FArchive& Ar, T& Data)
{
const int64 CustomVersionsHeader = Ar.Tell();
int64 CustomVersionsOffset = CustomVersionsHeader;
// We'll come back later and fill this in
Ar << CustomVersionsOffset;
// Write out the data
Ar << Data;
CustomVersionsOffset = Ar.Tell();
// Serialize the custom versions
FCustomVersionContainer Vers = Ar.GetCustomVersions();
Vers.Serialize(Ar);
// Write out where the custom versions are in our header
Ar.Seek(CustomVersionsHeader);
Ar << CustomVersionsOffset;
}
/** Convert a FFileChangeData::EFileChangeAction into an EFileAction */
EFileAction ToFileAction(FFileChangeData::EFileChangeAction InAction)
{
switch (InAction)
{
case FFileChangeData::FCA_Added: return EFileAction::Added;
case FFileChangeData::FCA_Modified: return EFileAction::Modified;
case FFileChangeData::FCA_Removed: return EFileAction::Removed;
default: return EFileAction::Modified;
}
}
const FGuid FFileCacheCustomVersion::Key(0x8E7DDCB3, 0x80DA47BB, 0x9FD346A2, 0x93984DF6);
FCustomVersionRegistration GRegisterFileCacheVersion(FFileCacheCustomVersion::Key, FFileCacheCustomVersion::Latest, TEXT("FileCacheVersion"));
static const uint32 CacheFileMagicNumberOldCustomVersionFormat = 0x03DCCB00;
static const uint32 CacheFileMagicNumber = 0x03DCCB03;
static ECustomVersionSerializationFormat::Type GetCustomVersionFormatForFileCache(uint32 MagicNumber)
{
if (MagicNumber == CacheFileMagicNumberOldCustomVersionFormat)
{
return ECustomVersionSerializationFormat::Guids;
}
else
{
return ECustomVersionSerializationFormat::Optimized;
}
}
/** Single runnable thread used to parse file cache directories without blocking the main thread */
struct FAsyncTaskThread : public FRunnable
{
typedef TArray<TWeakPtr<IAsyncFileCacheTask, ESPMode::ThreadSafe>> FTaskArray;
FAsyncTaskThread() : Thread(nullptr) {}
/** Add a reader to this thread which will get ticked periodically until complete */
void AddTask(TSharedPtr<IAsyncFileCacheTask, ESPMode::ThreadSafe> InTask)
{
FScopeLock Lock(&TaskArrayMutex);
Tasks.Add(InTask);
if (!Thread)
{
static int32 Index = 0;
Thread = FRunnableThread::Create(this, *FString::Printf(TEXT("AsyncTaskThread_%d"), ++Index));
}
}
/** Run this thread */
virtual uint32 Run()
{
for(;;)
{
// Copy the array while we tick the readers
FTaskArray Dupl;
{
FScopeLock Lock(&TaskArrayMutex);
Dupl = Tasks;
}
// Tick each one for a second
for (auto& Task : Dupl)
{
auto PinnedTask = Task.Pin();
if (PinnedTask.IsValid())
{
PinnedTask->Tick(FTimeLimit(1));
}
}
// Cleanup dead/finished Tasks
FScopeLock Lock(&TaskArrayMutex);
for (int32 Index = 0; Index < Tasks.Num(); )
{
auto Task = Tasks[Index].Pin();
if (!Task.IsValid() || Task->IsComplete())
{
Tasks.RemoveAt(Index);
}
else
{
++Index;
}
}
// Shutdown the thread if we've nothing left to do
if (Tasks.Num() == 0)
{
Thread = nullptr;
break;
}
}
return 0;
}
private:
/** We start our own thread if one doesn't already exist. */
FRunnableThread* Thread;
/** Array of things that need ticking, and a mutex to protect them */
FCriticalSection TaskArrayMutex;
FTaskArray Tasks;
};
FAsyncTaskThread AsyncTaskThread;
/** Threading strategy for FAsyncFileHasher:
* The task is constructed on the main thread with its Data.
* The array 'Data' *never* changes size. The task thread moves along setting file hashes, while the main thread
* trails behind accessing the completed entries. We should thus never have 2 threads accessing the same memory,
* except for the atomic 'CurrentIndex'
*/
FAsyncFileHasher::FAsyncFileHasher(TArray<FFilenameAndHash> InFilesThatNeedHashing)
: Data(MoveTemp(InFilesThatNeedHashing)), NumReturned(0)
{
// Read in files in 1MB chunks
ScratchBuffer.SetNumUninitialized(1024 * 1024);
}
TArray<FFilenameAndHash> FAsyncFileHasher::GetCompletedData()
{
// Don't need to lock here since the thread will never look at the array before CurrentIndex.
TArray<FFilenameAndHash> Local;
const int32 CompletedIndex = CurrentIndex.GetValue();
if (NumReturned < CompletedIndex)
{
Local.Append(Data.GetData() + NumReturned, CompletedIndex - NumReturned);
NumReturned = CompletedIndex;
if (CompletedIndex == Data.Num())
{
Data.Empty();
CurrentIndex.Set(0);
}
}
return Local;
}
bool FAsyncFileHasher::IsComplete() const
{
return CurrentIndex.GetValue() == Data.Num();
}
IAsyncFileCacheTask::EProgressResult FAsyncFileHasher::Tick(const FTimeLimit& Limit)
{
for (; CurrentIndex.GetValue() < Data.Num(); )
{
const auto Index = CurrentIndex.GetValue();
Data[Index].FileHash = FMD5Hash::HashFile(*Data[Index].AbsoluteFilename, &ScratchBuffer);
CurrentIndex.Increment();
if (Limit.Exceeded())
{
return EProgressResult::Pending;
}
}
return EProgressResult::Finished;
}
/** Threading strategy for FAsyncDirectoryReader:
* The directory reader owns the cached and live state until it has completely finished. Once IsComplete() is true, the main thread can
* have access to both the cached and farmed data.
*/
FAsyncDirectoryReader::FAsyncDirectoryReader(const FString& InDirectory, EPathType InPathType)
: RootPath(InDirectory), PathType(InPathType)
{
PendingDirectories.Add(InDirectory);
LiveState.Emplace();
StandardRootPath = RootPath;
FPaths::MakeStandardFilename(StandardRootPath);
StandardRootPath /= TEXT("");
}
TOptional<FDirectoryState> FAsyncDirectoryReader::GetLiveState()
{
TOptional<FDirectoryState> OldState;
if (ensureMsgf(IsComplete(), TEXT("Invalid property access from thread before task completion")))
{
Swap(OldState, LiveState);
}
return OldState;
}
TOptional<FDirectoryState> FAsyncDirectoryReader::GetCachedState()
{
TOptional<FDirectoryState> OldState;
if (ensureMsgf(IsComplete(), TEXT("Invalid property access from thread before task completion")))
{
Swap(OldState, CachedState);
}
return OldState;
}
bool FAsyncDirectoryReader::IsComplete() const
{
return bIsComplete;
}
FAsyncDirectoryReader::EProgressResult FAsyncDirectoryReader::Tick(const FTimeLimit& TimeLimit)
{
if (IsComplete())
{
return EProgressResult::Finished;
}
auto& FileManager = IFileManager::Get();
// Discover files
for (int32 Index = 0; Index < PendingDirectories.Num(); ++Index)
{
ScanDirectory(PendingDirectories[Index]);
if (TimeLimit.Exceeded())
{
// We've spent too long, bail
PendingDirectories.RemoveAt(0, Index + 1, false);
return EProgressResult::Pending;
}
}
PendingDirectories.Empty();
// Process files
for (int32 Index = 0; Index < PendingFiles.Num(); ++Index)
{
const auto& File = PendingFiles[Index];
// Store the file relative or absolute
FString Filename = GetPathToStore(File);
const auto Timestamp = FileManager.GetTimeStamp(*File);
FMD5Hash MD5;
if (CachedState.IsSet())
{
const FFileData* CachedData = CachedState->Files.Find(Filename);
if (CachedData && CachedData->Timestamp == Timestamp && CachedData->FileHash.IsValid())
{
// Use the cached MD5 to avoid opening the file
MD5 = CachedData->FileHash;
}
}
if (!MD5.IsValid())
{
FilesThatNeedHashing.Emplace(File);
}
LiveState->Files.Emplace(MoveTemp(Filename), FFileData(Timestamp, MD5));
if (TimeLimit.Exceeded())
{
// We've spent too long, bail
PendingFiles.RemoveAt(0, Index + 1, false);
return EProgressResult::Pending;
}
}
PendingFiles.Empty();
bIsComplete = true;
UE_LOG(LogFileCache, Log, TEXT("Scanning file cache for directory '%s' took %.2fs"), *RootPath, GetAge());
return EProgressResult::Finished;
}
void FAsyncDirectoryReader::ScanDirectory(const FString& InDirectory)
{
struct FVisitor : public IPlatformFile::FDirectoryVisitor
{
TArray<FString>* PendingFiles;
TArray<FString>* PendingDirectories;
FMatchRules* Rules;
int32 RootPathLength;
int32 StandardRootPathLength;
virtual bool Visit(const TCHAR* FilenameOrDirectory, bool bIsDirectory)
{
FString FileStr(FilenameOrDirectory);
if (bIsDirectory)
{
PendingDirectories->Add(MoveTemp(FileStr));
}
else
{
const int32 Offset = FPaths::IsRelative(FileStr) ? StandardRootPathLength : RootPathLength;
check(Offset <= FileStr.Len());
if (Rules->IsFileApplicable(FilenameOrDirectory + Offset))
{
PendingFiles->Add(MoveTemp(FileStr));
}
}
return true;
}
};
FVisitor Visitor;
Visitor.PendingFiles = &PendingFiles;
Visitor.PendingDirectories = &PendingDirectories;
Visitor.Rules = &LiveState->Rules;
Visitor.RootPathLength = RootPath.Len();
Visitor.StandardRootPathLength = StandardRootPath.Len();
IFileManager::Get().IterateDirectory(*InDirectory, Visitor);
}
FString FAsyncDirectoryReader::GetPathToStore(const FString& InPath) const
{
if (PathType == EPathType::Relative)
{
if (FPaths::IsRelative(InPath))
{
return InPath.RightChop(StandardRootPath.Len());
}
else
{
return InPath.RightChop(RootPath.Len());
}
}
else
{
// TODO: Convert to absolute if not already absolute
return InPath;
}
}
FFileCache::FFileCache(const FFileCacheConfig& InConfig)
: Config(InConfig)
, bSavedCacheDirty(false)
, LastFileHashGetTime(0)
{
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
bPendingTransactionsDirty = true;
// Ensure the directory has a trailing /
Config.Directory /= TEXT("");
// Store standardized copy of the directory
ConfigDirectoryStandardized = Config.Directory;
FPaths::MakeStandardFilename(ConfigDirectoryStandardized);
ConfigDirectoryStandardized /= TEXT("");
// bDetectMoves implies bRequireFileHashes
Config.bRequireFileHashes = Config.bRequireFileHashes || Config.bDetectMoves;
DirectoryReader = MakeShareable(new FAsyncDirectoryReader(Config.Directory, Config.PathType));
DirectoryReader->SetMatchRules(Config.Rules);
// Attempt to load an existing cache file
auto ExistingCache = ReadCache();
if (ExistingCache.IsSet())
{
DirectoryReader->UseCachedState(MoveTemp(ExistingCache.GetValue()));
}
AsyncTaskThread.AddTask(DirectoryReader);
FDirectoryWatcherModule& Module = FModuleManager::LoadModuleChecked<FDirectoryWatcherModule>(TEXT("DirectoryWatcher"));
if (IDirectoryWatcher* DirectoryWatcher = Module.Get())
{
auto Callback = IDirectoryWatcher::FDirectoryChanged::CreateRaw(this, &FFileCache::OnDirectoryChanged);
if (!DirectoryWatcher->RegisterDirectoryChangedCallback_Handle(Config.Directory, Callback, WatcherDelegate))
{
UE_LOG(LogFileCache, Display, TEXT("Failed registering directory watcher for folder '%s'"), *Config.Directory);
}
}
}
FFileCache::~FFileCache()
{
UnbindWatcher();
WriteCache();
}
void FFileCache::Destroy()
{
// Delete the cache file, and clear out everything
bSavedCacheDirty = false;
if (!Config.CacheFile.IsEmpty())
{
IFileManager::Get().Delete(*Config.CacheFile, false, true, true);
}
DirectoryReader = nullptr;
AsyncFileHasher = nullptr;
DirtyFileHasher = nullptr;
DirtyFiles.Empty();
CachedDirectoryState = FDirectoryState();
UnbindWatcher();
}
bool FFileCache::HasStartedUp() const
{
return !DirectoryReader.IsValid() || DirectoryReader->IsComplete();
}
bool FFileCache::MoveDetectionInitialized() const
{
if (!HasStartedUp())
{
return false;
}
else if (!Config.bDetectMoves)
{
return true;
}
else
{
// We don't check AsyncFileHasher->IsComplete() here because that doesn't necessarily mean we've harvested the results off the thread
return !AsyncFileHasher.IsValid();
}
}
const FFileData* FFileCache::FindFileData(FImmutableString InFilename) const
{
if (!ensure(HasStartedUp()))
{
// It's invalid to call this while the cached state is still being updated on a thread.
return nullptr;
}
return CachedDirectoryState.Files.Find(InFilename);
}
void FFileCache::UnbindWatcher()
{
if (!WatcherDelegate.IsValid())
{
return;
}
if (FDirectoryWatcherModule* Module = FModuleManager::GetModulePtr<FDirectoryWatcherModule>(TEXT("DirectoryWatcher")))
{
if (IDirectoryWatcher* DirectoryWatcher = Module->Get())
{
DirectoryWatcher->UnregisterDirectoryChangedCallback_Handle(Config.Directory, WatcherDelegate);
}
}
WatcherDelegate.Reset();
}
TOptional<FDirectoryState> FFileCache::ReadCache() const
{
TOptional<FDirectoryState> Optional;
if (!Config.CacheFile.IsEmpty())
{
FArchive* Ar = IFileManager::Get().CreateFileReader(*Config.CacheFile);
if (Ar)
{
// Serialize the magic number - the first iteration omitted version information, so we have a magic number to ignore this data
uint32 MagicNumber = 0;
*Ar << MagicNumber;
if (MagicNumber == CacheFileMagicNumber || MagicNumber == CacheFileMagicNumberOldCustomVersionFormat)
{
FDirectoryState Result;
ReadWithCustomVersions(*Ar, Result, GetCustomVersionFormatForFileCache(MagicNumber));
Optional.Emplace(MoveTemp(Result));
}
Ar->Close();
delete Ar;
}
}
return Optional;
}
void FFileCache::WriteCache()
{
if (bSavedCacheDirty && !Config.CacheFile.IsEmpty())
{
const FString ParentFolder = FPaths::GetPath(Config.CacheFile);
if (!IFileManager::Get().DirectoryExists(*ParentFolder))
{
IFileManager::Get().MakeDirectory(*ParentFolder, true);
}
// Write to a temp file to avoid corruption
FString TempFile = Config.CacheFile + TEXT(".tmp");
FArchive* Ar = IFileManager::Get().CreateFileWriter(*TempFile);
if (ensureMsgf(Ar, TEXT("Unable to write file-cache for '%s' to '%s'."), *Config.Directory, *Config.CacheFile))
{
// Serialize the magic number
uint32 MagicNumber = CacheFileMagicNumber;
*Ar << MagicNumber;
WriteWithCustomVersions(*Ar, CachedDirectoryState);
Ar->Close();
delete Ar;
CachedDirectoryState.Files.Shrink();
bSavedCacheDirty = false;
const bool bMoved = IFileManager::Get().Move(*Config.CacheFile, *TempFile, true, true);
Copying //UE4/Release-Staging-4.12 to //UE4/Dev-Main (Source: //UE4/Release-4.12 @ 2962397) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2962397 on 2016/05/02 by Dmitriy.Dyomin Fixed: Crash generating LOD for a Landscape #jira UE-30144 Change 2962367 on 2016/05/01 by Zachary.Wilson Building lighting on QA-Effects #jira UE-29618 Change 2962363 on 2016/05/01 by Zachary.Wilson Updating Reflection Capture Test Content #jira UE-29618 Change 2962362 on 2016/05/01 by Benjamin.Hyder Built Lighting in QA-PostProcessing level #jira UE-29618 Change 2962361 on 2016/05/01 by Zachary.Wilson Adding testing content for Custom Resolutions and Cubemaps for Sky Cubemaps and Reflection Probes. #jira UE-29618 Change 2962357 on 2016/05/01 by Benjamin.Hyder Built Lighting for Tm_SceneTexture #jira UE-29618 Change 2962356 on 2016/05/01 by Benjamin.Hyder Adding PlayerStart to TM-TranslucencyLghtingMode map #jira UE-29618 Change 2962351 on 2016/05/01 by Benjamin.Hyder Adding high Precision GBuffer Normal Encoding example to TM-Shadermodels #jira UE-29618 Change 2962349 on 2016/05/01 by Benjamin.Hyder Correcting Planar Reflection in TM-Shadermodels #Jira UE-29618 Change 2962348 on 2016/05/01 by Benjamin.Hyder Adding Planar Reflection Test Case content to TM-Shadermodels #jira UE-29618 Change 2962347 on 2016/05/01 by Zachary.Wilson Adding testing content for Dual Normal Clfar Coat Material Expression #jira UE-29618 Change 2962340 on 2016/05/01 by Zachary.Wilson Adding testing content for engine scalability (WIP) #jira UE-29618 Change 2962173 on 2016/04/30 by Ben.Marsh Fix typo. Change 2962172 on 2016/04/30 by Ben.Marsh Disable Vulkan in installed UE4 buids. Build machines don't have the Vulkan SDK installed so they can't generate static libraries for VulkanRHI, so if we try to link against it on user's machines they'll fail due to the missing LIB. #jira UE-30156 Change 2961782 on 2016/04/29 by Mike.Beach Guarding against an invalid (null) target for the Blueprint debugger (watch viewer) panel. #jira UE-30110 Change 2961780 on 2016/04/29 by Mike.Beach Guarding against interface arrays with null entries (null checking in property editor processing code). #jira UE-30015 Change 2961580 on 2016/04/29 by Owen.Stupka #jira UE-29796 Rollback //UE4/Release-4.12/Samples/NotForLicensees/ProtoStar/Content/Blueprints/NickD/StarCoreSliceNick.uasset to revision 2 Change 2961531 on 2016/04/29 by Ryan.Gerleve Fix for an assert that could occur in monolithic builds when seamless traveling while recording a replay. #jira UE-22047 Change 2961499 on 2016/04/29 by Marc.Audy Use accessor instead of variable directly. #jira UE-00000 Change 2961492 on 2016/04/29 by Chris.Babcock Android Vulkan dynamic loader with fallback to ES2 - works with either NDK r11c+ or VulkanSDK (does not require .so) #jira UEPLAT-1249 #jira UEMOB-103 #ue4 #android Change 2961462 on 2016/04/29 by Chris.Babcock Fix issue with stripping symbols for non-armv7 architectures #jira UE-30138 #android #ue4 Change 2961442 on 2016/04/29 by Marc.Audy Fix undo/redo of attachment between an IWCE and blueprint constructed component not working #jira UE-28948 Change 2961400 on 2016/04/29 by Samuel.Proctor Test assets for FiB test cases. #jira UE-29618 Change 2961382 on 2016/04/29 by Daniel.Lamb Fix for shadowed variables. #jira UE-29470 Change 2961319 on 2016/04/29 by mitchell.wilson #jira UE-29618 - Adding TM-LandscapeFoliage map Change 2961278 on 2016/04/29 by Chris.Babcock Fix 64-bit cast #jira UE-30132 #ue4 #android Change 2961263 on 2016/04/29 by Daniel.Lamb Fixed issue with iterative cooking missing dependent sublevels when checking for dependent timestamps. #jira UE-29470 Change 2961227 on 2016/04/29 by Taizyd.Korambayil #jira UE-30068 Resaved Some assets and Updated TexturePool in DefaultEninge.ini Change 2961208 on 2016/04/29 by Nick.Darnell UMG - Unable to reproduce the issue of the designer crashing because it popping more messages than it has, but adding a check to make sure the array isn't already empty before popping. #jira UE-29919 Change 2961190 on 2016/04/29 by Nick.Darnell UMG - Unable to reproduce the issue of the designer crashing because it popping more messages than it has, but adding a check to make sure the array isn't already empty before popping. #jira UE-29919 Change 2961161 on 2016/04/29 by Gareth.Martin Added warnings when trying to use the Landscape Visibility Tool without the landscape material having a "Landscape Visibility Mask" node. #jira UE-30032 Change 2961109 on 2016/04/29 by Keith.Judge Xbox One - Enable USE_NEW_LOCK_FREE_LISTS, and refactor code to allow VS2015 to compile it (was using a non-standard GCC/Clang behaviour). Lots of duplicated code, but there already was... #jira UEPLAT-1288 Change 2961055 on 2016/04/29 by Mike.Beach Mirroring CL 2961019: Temporarily disabling InitProperties() spawning optimization, as it was causing GC issues. #jira UE-29940 Change 2961018 on 2016/04/29 by Rolando.Caloca UE4.12 - Compile fix for shipping #jira UE-30096 Change 2960921 on 2016/04/29 by Matthew.Griffin Updated AutoSDK used by Android so that arm64 will build Change 2960920 on 2016/04/29 by Martin.Wilson Missing files from 2960847 #jira ue-25715 Change 2960906 on 2016/04/29 by Peter.Sauerbrei added more explicit message when the deployment fails due to device not on provision #jira UE-19875 Change 2960869 on 2016/04/29 by Chris.Bunner Allow custom material nodes to be used with tessellation outputs. #jira UE-29586 Change 2960847 on 2016/04/29 by Martin.Wilson Fix setting incorrect animation assets on anim player nodes. #jira ue-25715 Change 2960842 on 2016/04/29 by Keith.Judge Xbox One - Remove SetGpuMemoryPriority() call as it turns out most actual game titles are CPU bound, and this is just hurting them. #jira UEPLAT-1288 Change 2960841 on 2016/04/29 by Keith.Judge Xbox One - Make temporary buffers last for three frames. #jira UEPLAT-1288 Change 2960838 on 2016/04/29 by Keith.Judge Xbox One - Change the MemoryBarrier function to be FORCENOINLINE so that the compiler doesn't reorder writes around it. #jira UEPLAT-1288 Change 2960834 on 2016/04/29 by Keith.Judge Xbox One - Change GPUMalloc memory type to write combined, as cached non-coherent caused major UMG flickering issues, and would appear to be unsafe, according to the latest XDK docs. #jira UEPLAT-1288 Change 2960829 on 2016/04/29 by Keith.Judge Xbox One - Fix RHIUpdateTexture2D not actually updating the texture. It was silently failing because the GPU_READONLY flag was set on the memory. Grrrrrr! #jira UEPLAT-1288 Change 2960826 on 2016/04/29 by Keith.Judge Xbox One - Turn on GSupportsEfficientAsyncCompute and GSupportsParallelOcclusionQueries. Duplcated from Dev-Platform. #jira UEPLAT-1288 Change 2960820 on 2016/04/29 by Keith.Judge Xbox One - Replicate Windows critical section changes. Duplicated from Dev-Platform. #jira UEPLAT-1288 Change 2960819 on 2016/04/29 by Marc.Audy Owned components are once again referenced by their Owning actor for GC purposes #jira UE-29131 Change 2960817 on 2016/04/29 by Keith.Judge Xbox One - Further fix for flickering HUD. Also seems to fix weird bloom when Fast Semantics are enabled. Duplicated from Dev-Platform. #jira UEPLAT-1288 Change 2960814 on 2016/04/29 by Keith.Judge Xbox One - Fix crash when creating odd sized textures with initial data. Duplicated from Dev-Platform. #jira UEPLAT-1288 Change 2960805 on 2016/04/29 by Keith.Judge Fix .ini.ini filename issue (duplicated fix from Dev-Platform). #jira UES-2270 Change 2960797 on 2016/04/29 by Mason.Seay Deleting asset associated with crashing map, just to be safe (neither are needed anymore) #jira UE-25215 Change 2960793 on 2016/04/29 by Mason.Seay Deleting map that's causing a crash #jira UE-25215 Change 2960774 on 2016/04/29 by Robert.Manuszewski (temp) Fix for missing packages after cooking. #jira UE-29876 Change 2960747 on 2016/04/29 by Jurre.deBaare Mac build fixes #jira abc-123 Change 2960739 on 2016/04/29 by Benn.Gallagher Use mesh update mode to update cloth rather than whether or not it was rendered. #jira UE-25934 Change 2960707 on 2016/04/29 by Jurre.deBaare HLOD cluster dirtying from changes in static mesh component and spline mesh component, required making the HierarchicalLODUtilities Module to have an abstract interface (for dynamic loading in the Engine module) #jira UE-24378 Change 2960704 on 2016/04/29 by Matthew.Griffin Added Architectures and GPUArchitectures to UEBuildConfiguration that can be passed through on the UBT command line Changed Android Tool Chain so that it checks the command line architectures as an additional way to setup which ones to build Added option to pass architectures on command line when precompiling monolithic targets via UAT (with armv7, arm64 & es2 set for Android for now) Added code to read precompiled architectures in Rocket build and write out additional Installed Platform Info entries for each one #jira UEB-560 Change 2960694 on 2016/04/29 by Robert.Manuszewski Log free disk space when DirectoryWatcher's File Cache fails to move a file. #jira UE-24660 Change 2960687 on 2016/04/29 by Benn.Gallagher Demoted eINTERNAL_ERROR (PhysX error code) to warning as we were flagging things too zealously (degenerate poly failing a cook) #jira UE-30053 Change 2960381 on 2016/04/28 by Chris.Babcock Handle movie playback not covering full surface #jira UE-28705 #ue4 #android Change 2960162 on 2016/04/28 by Ryan.Vance #jira UE-30099 Re-enabling the occlusion area mask for the Rift. Any Rift HMD's newer than the CB prototype will use the CV1 masks. We'll need to revist this in the future. We need to ensure we always set the InstancedEyeIndex uniform if it's bound. Otherwise passes that aren't using instanced stereo will resolve their views using an uninitialized variable (translucency). Change 2960100 on 2016/04/28 by Andrew.Porter Removing old sub sequences. #jira UE-29618 Change 2959962 on 2016/04/28 by Peter.Sauerbrei fix for enabling InApp purchasing not enabling Online Subsystem IOS #jira UE-25512 Change 2959937 on 2016/04/28 by Patrick.Donovan Screen aligned UVs test material for QAGame for testing if they work in VR. #jira UE-29618 Change 2959914 on 2016/04/28 by Dan.Oconnor Fix for copy paste error, likely of no consequence because nothing calls IsExporting(), found with PVS-Studio by Robert Troughton #jira UE-30058 Change 2959859 on 2016/04/28 by Ryan.Gerleve Fix for fatal error crash when loading the default map fails. Now we load a dummy world and request graceful exit in standalone, or shutdown the current play session in PIE. #jira UE-26634 Change 2959856 on 2016/04/28 by Chris.Babcock Fix scaling on low-resolution devices in Match3 #jira UE-28706 #ue4 #match3 Change 2959839 on 2016/04/28 by Dan.Oconnor Fix IsControlCharacter result for 'pop directional isolate' character (u2069), found with PVS-Studio by Robert Troughton #jira UE-30058 Change 2959836 on 2016/04/28 by Dan.Oconnor Remove unused local variable, found with PVS-Studio by Robert Troughton #jira UE-30058 Change 2959829 on 2016/04/28 by Dan.Oconnor Using OverridePredrawBatchTime and OverridePredrawBatchTime correctly, found with PVS-Studio by Robert Troughton #jira UE-30058 Change 2959817 on 2016/04/28 by Peter.Sauerbrei fix for parsing the IOS Device ID addition of iPhone SE (courtesy davidrpozesky, PR2307) addition of iPadPro 9.7 #jira UE-21921 Change 2959808 on 2016/04/28 by Nick.Darnell UBT - Restoring GetModuleFilename to the RulesCompiler but only to deprecate it, and point users at the method they should now be using. #jira ue-none Change 2959805 on 2016/04/28 by Chad.Taylor Merging //UE4/Dev-VR/Engine/... to //UE4/Release-4.12/Engine/... #jira UEBP-188 Change 2959798 on 2016/04/28 by Dan.Oconnor Manually integrate 2947850, also found with PVS-Studio by Robert Troughton #jira UE-30058 Change 2959796 on 2016/04/28 by Aaron.McLeran Duplicating CL 2959785 from //UE4/Dev-Framework #jira UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances #tests created new sound cue with concat node with child nodes that don't play sound-instances, concat node continues playing Change 2959793 on 2016/04/28 by Dan.Oconnor Fixed setter that did nothing, found with PVS-Studio by Robert Troughton. This code will be removed soon. #jira UE-30058 Change 2959739 on 2016/04/28 by Ori.Cohen Remove box2d ensure as it's confusing for legit crashes since it shows up in the end of the log. #JIRA UE-29932 Change 2959709 on 2016/04/28 by Nick.Darnell Slate - Menu Stack no longer crashes when forcefully dismissing multiple menus in the stack at once. #jira UE-30087 Change 2959701 on 2016/04/28 by Nick.Darnell Slate - The MoviePlayer now has an OnPrepareLoadingScreen callback that modules can hook instead of relying on the PreLoadMap, which depending on when you hook it, you may be before or after the movie player. Therefore to aleviate that ordering problem - if the movie player goes to play a loading screen and one has not yet been configured this callback will be triggered so that hopefully one is supplied. #jira UE-30085 Change 2959691 on 2016/04/28 by Nick.Darnell UMG - Fixed Aspect ratios now correctly size the right side of the screen, allowing right anchored content to be fit properly inside the black frame borders. #jira UE-30084 Change 2959678 on 2016/04/28 by mason.seay Updated test sound cue asset, as it appeared to be partially filled out. Moved it out of developer folder. Also rebuilt lighting on associated test map. #jira UE-29618 Change 2959514 on 2016/04/28 by Aaron.McLeran Duplicating CL 2959506 from //UE4/Dev-Framework #jira UE-30000 PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel) #tests Playing another looping sound on an audio component will stop the previous looping sound. Change 2959486 on 2016/04/28 by Bob.Tellez Duplicating CL#2948431 from //Orion/Dev-General CL#s 2919775 and 2942793 integrated to prevent annotation map performance problems on shutdown and asserts in PIE. #JIRA UE-29625 #tests Ran editor Change 2959414 on 2016/04/28 by Chad.Taylor IStereoLayers API and Oculus Rift implementation #jira UEBP-185 Change 2959395 on 2016/04/28 by Taizyd.Korambayil #jira UE-29710 Resaved Kite Demo Maps and Audio files to Fix Build Warnings Change 2959386 on 2016/04/28 by Richard.TalbotWatkin Replicated from CL 2959360 in //UE4/Dev-Editor/ Fixed potential crash when mesh painting actors whose geometry adapters are no longer registered. #jira UE-29615 - [CrashReport] UE4Editor_MeshPaint!FEdModeMeshPaint::DoPaint() [meshpaintedmode.cpp:1127] Change 2959377 on 2016/04/28 by Matthew.Griffin Added 2015 versions of OpenSSL dlls to list of RuntimeDependencies, so that they will be included in the binary build #jira UE-30024 Change 2959367 on 2016/04/28 by Alexis.Matte #jira OR-20622 make sure LOD import Materials get map with LOD 0 material index Change 2959302 on 2016/04/28 by Jamie.Dale Removed invalid assert #jira UE-30042 Change 2959263 on 2016/04/28 by Peter.Sauerbrei fix for virtual joysticks showing up on tvOS removed usage of ES2 define for tvOS #jira UE-26122 Change 2959235 on 2016/04/28 by Taizyd.Korambayil #jira UE-29744 Resaved Vehicle Game maps to Fix Build Warnings Change 2959177 on 2016/04/28 by Thomas.Sarkanen Fixed curve names getting incorrectly duplicated when DuplicateObject was called Fixes crash when trying to convert curves to metadata after newly importing a sequence. #jira UE-29988 - Crash when converting custom curve to metadata in persona Change 2959170 on 2016/04/28 by Taizyd.Korambayil #jira UE-29683 Resaved Maps to Fix Build Warnings #jira UE-29685 #jira UE-29679 #jira UE-29684 Change 2959154 on 2016/04/28 by Dan.Bullard Added Media Player assets and added example to TM-ShaderModels. #jira UE-29618 Change 2959112 on 2016/04/28 by Jamie.Dale Fixed a long time IME crash that could happen under certain circumtances #jira OPP-5607 Change 2959086 on 2016/04/28 by Jamie.Dale Refreshing the editable text layout now makes sure the layout is up-to-date This addresses some update issues when the widget is being ticked, but not running a layout pass. #jira UE-30054 Change 2958927 on 2016/04/28 by Phillip.Kavan [UE-30040] Fix broken editor UI display of values for int32 properties tagged as bitmask fields when the high bit is set. #jira UE-30040 Change 2958730 on 2016/04/28 by Phillip.Kavan [UE-23087] Don't apply near-zero delta values while drag-scaling inside the Blueprint editor's preview viewport. #jira UE-23087 Change 2958566 on 2016/04/27 by Marcus.Wassmer Fix material preview and PostProcessAmbient #jira UE-29994 Change 2958459 on 2016/04/27 by mason.seay Test assets for Sound Class Override #jira UE-29618 Change 2958399 on 2016/04/27 by Owen.Stupka #jira UE-29924 Back out CL 2958355, change was in wrong position. Change 2958395 on 2016/04/27 by Aaron.McLeran Duplicating CL#2950482 from //UE4/Dev-Framework #jira 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. #tests Apply a sound mix using a child sound class with apply-to-children enabled. Sound mix properly interpolates. Change 2958387 on 2016/04/27 by Aaron.McLeran Duplicating CL#2954865 from //UE4/Dev-Framework #jira UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types. #tests run editor in PIE with HMD connected, audio only plays on PC, then run in VR-Preview with HMD connected, audio plays on HMD audio device Change 2958381 on 2016/04/27 by Josh.Adams - Fixed compile error in IOSDeviceHelperMac.cpp #lockdown nick.penwarden #jira UE-30037 Change 2958355 on 2016/04/27 by Owen.Stupka #jira UE-29924 Fix for UAT issues on Mac. Change 2958351 on 2016/04/27 by Aaron.McLeran Duplicating CL#2957953 from //UE4/Dev-Framework #jira UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing. #tests run audio component with auto-activate, call play, setup notification callback in BP, note that only triggered once Change 2958344 on 2016/04/27 by Taizyd.Korambayil #jira UE-29720 Resaved Audio Files to fix NodeGUID Warnings Change 2958342 on 2016/04/27 by mitchell.wilson #jira UE-29618 updating shot_002 to fix an issue with snapping. Change 2958315 on 2016/04/27 by Marc.Audy No longer use component pooling, but instead spawn Actors for thumbnail display #jira UE-17453 Change 2958289 on 2016/04/27 by Marc.Audy Don't crash rerunning construction script on a child actor that belongs to a ownerless child actor component #jira UE-30033 Change 2958280 on 2016/04/27 by Taizyd.Korambayil #jira UE-29723 Resaved Maps and Audio Files Change 2958237 on 2016/04/27 by Taizyd.Korambayil #jira UE-29687 Resaved Some Assets to Fix Build Warnings Change 2958176 on 2016/04/27 by Taizyd.Korambayil #jira UE-29701 Resaved Some Assets to Fix Build Warnings Change 2958172 on 2016/04/27 by Ori.Cohen Back out changelist 2955134 #JIRA UE-30030 Change 2958121 on 2016/04/27 by Taizyd.Korambayil #jira UE-29706 Resaved Some Assets to Fix Build Warnings Change 2958070 on 2016/04/27 by Peter.Sauerbrei fix for launch on to tvOS from PC properly filter out tvOS devices when launching to IOS and vice versa #jira UE-29928 Change 2958029 on 2016/04/27 by Andrew.Rodham Fixed SMenuAnchor::bIsCollapsedByParent not being respected #jira UE-30016 Change 2957962 on 2016/04/27 by Alexis.Matte #jira UE-29984 Pixel inspector crash Fix the viewport id Change 2957908 on 2016/04/27 by Andrew.Rodham Sequencer: Fixed being unable to render out 4K image sequences using matinee or sequencer #jira UE-29171 Change 2957880 on 2016/04/27 by Peter.Sauerbrei fix for metal not being enabled in iOS 8 added some checks for bSupportsResourceOptions in Lock/Unlock #jira UE-29268 Change 2957860 on 2016/04/27 by Gareth.Martin Fixed landscape grass not updating when using a material instance as the landscape material and changing parameters #jira UE-29471 Change 2957833 on 2016/04/27 by Taizyd.Korambayil #jira UE-29707 Replaced Deprecated Nodes and Resaved Audio Files to Fix Build Warnings Change 2957805 on 2016/04/27 by Max.Chen Sequencer: Fix crash in UMG when a property changes and there's no movie scene. #jira UE-30008 Change 2957803 on 2016/04/27 by Taizyd.Korambayil #jira UE-29718 Resaved Audio Files and Maps to Fix NodeGuid Warnings Change 2957799 on 2016/04/27 by Max.Chen Sequencer: Fix visibility track name so that it says "Visibility" #jira UE-29996 Change 2957777 on 2016/04/27 by Allan.Bentham Workaround ES31 HQ DoF producing no effect with vulkan rhi. #jira UE-30006 Change 2957763 on 2016/04/27 by Taizyd.Korambayil #jira UE-29678 Resaved Maps to Fix Build Errors Change 2957740 on 2016/04/27 by Taizyd.Korambayil #jira UE-29628 Resaved Maps to fix Build Warnings Change 2957713 on 2016/04/27 by Taizyd.Korambayil #jira UE-29715 Resaved Maps to Fix Build Warnings Change 2957678 on 2016/04/27 by Taizyd.Korambayil #jira UE-29677 Fixed up AnimBP and resaved some assets to fix Build Warnings Change 2957627 on 2016/04/27 by Frank.Fella UMG - Sequencer - Fix material animation for materials on struct properties e.g. style materials, and fix the naming so that it's [Original Name]_Animated #Jira UE-29319 #Jira UE-29321 Change 2957625 on 2016/04/27 by Taizyd.Korambayil #jira UE-29689 Replaced deprecated Nodes and Resaved some assets to Fix Warnings Change 2957603 on 2016/04/27 by mitchell.wilson #jira UE-29618 updating Test-Animation for UMG test. Adding M_SequenceUMG material for UMG testing Change 2957577 on 2016/04/27 by Ben.Marsh EC: Increase the number of changes queried to display the EC dashboard. Some changes are getting filtered out. Change 2957569 on 2016/04/27 by Maciej.Mroz #jira UE-27735 Enumerators are not set correctly in packaged games if Nativize Blueprint Assets is set to true merged from Dev-Blueprints 2957564 Change 2957565 on 2016/04/27 by Taizyd.Korambayil #jira UE-29721 Resaved Some Content to Fix Empty Engine Version Error Change 2957558 on 2016/04/27 by Matthew.Griffin Updated Installed Engine Filters now that Linux has dropped the architecture from its .target files #jira UE-29899 Change 2957504 on 2016/04/27 by Marc.Audy Persist component instance data cache through blueprint construction that results in "disaster recovery mode" #jira UE-20385 Change 2957162 on 2016/04/26 by Dmitriy.Dyomin Fixed: Some Unicode letters are not properly displayed with FCanvasTextItem in Android device #jira UE-25861 Change 2957117 on 2016/04/26 by Dan.Oconnor PR #2289: Exposing "IsValidIndex" Array function to Blueprints (Contributed by eXifreXi) Modifications: typo fix in Array.h, made blueprint description consistent with native function, removed redundant nullptr check, added P_NATIVE timer macros, added custom thunk implementation for cpp backend #jira UE-29563 Change 2957057 on 2016/04/26 by Dan.Oconnor Tweak logic used to make variable nodes more accessible Motivation was PR#2202 by Lucyberad #jira UE-28802 Change 2956884 on 2016/04/26 by Jamie.Dale Removed an assert that can be triggered by certain IMEs #jira UE-19744 Change 2956876 on 2016/04/26 by Dan.Oconnor PR #2288: Adjustment of RInterpTo and RInterpTo_Constant descriptions to match function. (Contributed by CelPlays) #jira UE-29495 Change 2956860 on 2016/04/26 by Max.Preussner Sockets: Fixed incorrect socket timeout when value < 1 ms (UE-29973) #jira: UE-29973 Change 2956801 on 2016/04/26 by Rolando.Caloca UE4.12 - vk - Added r.Vulkan.SubmitOnCopyToResolve to help track down submit issues #jira UE-28140 Change 2956679 on 2016/04/26 by Andrew.Rodham Editor: Fixed not being able to switch between cinematic/default viewport types #jira UE-29942 Change 2956674 on 2016/04/26 by James.Fox Updated Blueprint Bitmask test asset to include Bitwise OR. #jira UE-29618 Change 2956573 on 2016/04/26 by Rolando.Caloca UE4.12 - vk - Added TRANSFER_BIT to swapchain images since it's required for clearing #jira UE-28140 Change 2956572 on 2016/04/26 by Rolando.Caloca UE4.12 - vk - Added alignment to buffer offsets depending on usage #jira UE-28140 Change 2956502 on 2016/04/26 by Peter.Sauerbrei fix for missing particles on iPhone 5 when compiling for size re-enable compile for size for Match 3 #jira UE-28721 Change 2956445 on 2016/04/26 by Taizyd.Korambayil #jira UE-29691 Resaved some Animation Assets to Fix Build Warnings Change 2956382 on 2016/04/26 by Taizyd.Korambayil #jira UE-29688 Resaved Maps in Infiltrator Demo t oFix Some Build Warnings Change 2956332 on 2016/04/26 by Patrick.Donovan Adding physics asset set up for Capsule shadows for easy testing of capsule shadows in VR and with instanced stereo enabled. #jira UE-29618 Change 2956301 on 2016/04/26 by Ben.Marsh Disable notification emails for warnings in Rocket sample builds. Change 2956264 on 2016/04/26 by Peter.Sauerbrei fix for binary release generation of bp-only project files for IOS on Mac #jira UE-29934 Change 2956247 on 2016/04/26 by Jurre.deBaare Fix for Mac compile #jira UE-123ABC Change 2956192 on 2016/04/26 by Jurre.deBaare - Changed signatures for merging static mesh (LOD index now incorporated in merge data structure) - Proxy mesh and Mesh merging now just merges one specific LOD index per input mesh (instead of looping over all LOD levels) - Moved SourceStaticMesh and addex ExportLODIndex to FMeshMergeData structure - LightMap Index for merged static meshes is now set correctly - Added enum to MaterialProxySettings for distinction between (non-)Simplygon uses of the struct - Move MergeActor tab spawner out of experimental (removed option from config) and moved into Developer Tools/Misc #jira UE-28319 Change 2956183 on 2016/04/26 by mitchell.wilson #jira UE-29618 Adding new sequence for assign actor testing. Updating sequencer levels for assign actor testing Change 2956152 on 2016/04/26 by Lina.Halper - removed invalid ensure because it doesn't check recursive, it does have different value with validation #jira : UE-29945 Change 2956034 on 2016/04/26 by Andrew.Rodham Sequencer: Skeletal animation tracks now evaluate the nearest section where no animation section is present - This is more consistent with how other tracks evaluate, and guarantees a deterministic animated state #jira UE-28073 Change 2956002 on 2016/04/26 by Taizyd.Korambayil #jira UE-29729 Resaved Blueprints to Fix Build Warnings Change 2955999 on 2016/04/26 by Max.Chen Sequencer: Refresh instances when done recording. This fixes a bug where spawned recorded actors aren't visible when done recording. #jira UE-29841 Change 2955983 on 2016/04/26 by Andrew.Rodham Removing Saved, Intermediate, and DerivedDataCache folders from SubwaySequencer sample project. #jira UE-29938 Change 2955979 on 2016/04/26 by Taizyd.Korambayil #jira UE-29728 Resaved Some assets to Fix Build Warnings Change 2955941 on 2016/04/26 by Taizyd.Korambayil #jira UE-29730 Resaved Maps to Fix Build Warnings Change 2955937 on 2016/04/26 by Andrew.Rodham Sequencer: When recording actors as spawnables, we no longer duplicate the object, rather create a new instance of the same class - This fixes issues caused by undersiable state being saved into the spawnable defaults Merged from //UE4/Dev-Sequencer/...@2952610 #jira UE-29774 Change 2955888 on 2016/04/26 by mitchell.wilson #jira UE-29618 Updating shots for sequencer testing Change 2955635 on 2016/04/26 by Max.Chen Sequencer: Fix filtering so that folders that contain filtered nodes will also appear. #jira UE-28213 [CL 2969385 by Matthew Griffin in Main branch]
2016-05-06 15:20:28 -04:00
if (!bMoved)
{
uint64 TotalDiskSpace = 0;
uint64 FreeDiskSpace = 0;
FPlatformMisc::GetDiskTotalAndFreeSpace(Config.CacheFile, TotalDiskSpace, FreeDiskSpace);
ensureMsgf(bMoved, TEXT("Unable to move file-cache for '%s' from '%s' to '%s' (free disk space: %llu)"), *Config.Directory, *TempFile, *Config.CacheFile, FreeDiskSpace);
}
}
}
}
FString FFileCache::GetAbsolutePath(const FString& InTransactionPath) const
{
if (Config.PathType == EPathType::Relative)
{
return Config.Directory / InTransactionPath;
}
else
{
return InTransactionPath;
}
}
TOptional<FString> FFileCache::GetTransactionPath(const FString& InAbsolutePath) const
{
FString Temp = FPaths::ConvertRelativePathToFull(InAbsolutePath);
FString RelativePath(*Temp + Config.Directory.Len());
// If it's a directory or is not applicable, ignore it
if (!Temp.StartsWith(Config.Directory) || IFileManager::Get().DirectoryExists(*Temp) || !Config.Rules.IsFileApplicable(*RelativePath))
{
return TOptional<FString>();
}
if (Config.PathType == EPathType::Relative)
{
return MoveTemp(RelativePath);
}
else
{
return MoveTemp(Temp);
}
}
void FFileCache::DiffDirtyFiles(TMap<FImmutableString, FFileData>& InDirtyFiles, TArray<FUpdateCacheTransaction>& OutTransactions, const FDirectoryState* InFileSystemState) const
{
TMap<FImmutableString, FFileData> AddedFiles, ModifiedFiles;
TSet<FImmutableString> RemovedFiles, InvalidDirtyFiles;
auto& FileManager = IFileManager::Get();
auto& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
for (const auto& Pair : InDirtyFiles)
{
const auto& File = Pair.Key;
FString AbsoluteFilename = GetAbsolutePath(File.Get());
const auto* CachedState = CachedDirectoryState.Files.Find(File);
const bool bFileExists = InFileSystemState ? InFileSystemState->Files.Find(File) != nullptr : PlatformFile.FileExists(*AbsoluteFilename);
if (bFileExists)
{
FFileData FileData;
if (const auto* FoundData = InFileSystemState ? InFileSystemState->Files.Find(File) : nullptr)
{
FileData = *FoundData;
}
else
{
// The dirty file timestamp is the time that the file was dirtied, not necessarily its modification time
FileData = FFileData(FileManager.GetTimeStamp(*AbsoluteFilename), Pair.Value.FileHash);
}
if (Config.bRequireFileHashes && !FileData.FileHash.IsValid())
{
// We don't have this file's hash yet. Temporarily ignore it.
continue;
}
// Do we think it exists in the cache?
if (CachedState)
{
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
// Custom logic overrides everything
TOptional<bool> CustomResult = Config.CustomChangeLogic ? Config.CustomChangeLogic(File, FileData) : TOptional<bool>();
if (CustomResult.IsSet())
{
if (CustomResult.GetValue())
{
ModifiedFiles.Add(File, FileData);
}
else
{
InvalidDirtyFiles.Add(File);
}
}
// A file has changed if its hash is now different
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
else if (Config.bRequireFileHashes &&
Config.ChangeDetectionBits[FFileCacheConfig::FileHash] &&
CachedState->FileHash != FileData.FileHash
)
{
ModifiedFiles.Add(File, FileData);
}
// or the timestamp has changed
else if (Config.ChangeDetectionBits[FFileCacheConfig::Timestamp] &&
CachedState->Timestamp != FileData.Timestamp)
{
ModifiedFiles.Add(File, FileData);
}
else
{
// File hasn't changed
InvalidDirtyFiles.Add(File);
}
}
else
{
AddedFiles.Add(File, FileData);
}
}
// We only report it as removed if it exists in the cache
else if (CachedState)
{
RemovedFiles.Add(File);
}
else
{
// File doesn't exist, and isn't in the cache
InvalidDirtyFiles.Add(File);
}
}
// Remove any dirty files that aren't dirty
for (auto& Filename : InvalidDirtyFiles)
{
InDirtyFiles.Remove(Filename);
}
// Rename / move detection
if (Config.bDetectMoves)
{
bool bHavePendingHashes = false;
// Remove any additions that don't have their hash generated yet
for (auto AdIt = AddedFiles.CreateIterator(); AdIt; ++AdIt)
{
if (!AdIt.Value().FileHash.IsValid())
{
bHavePendingHashes = true;
AdIt.RemoveCurrent();
}
}
// We can only detect renames or moves for files that have had their file hash harvested.
// If we can't find a valid move destination for this file, and we have pending hashes, ignore the removal until we can be sure it's not a move
for (auto RemoveIt = RemovedFiles.CreateIterator(); RemoveIt; ++RemoveIt)
{
const auto* CachedState = CachedDirectoryState.Files.Find(*RemoveIt);
if (CachedState && CachedState->FileHash.IsValid())
{
for (auto AdIt = AddedFiles.CreateIterator(); AdIt; ++AdIt)
{
if (AdIt.Value().FileHash == CachedState->FileHash)
{
// Found a move destination!
OutTransactions.Add(FUpdateCacheTransaction(*RemoveIt, AdIt.Key(), AdIt.Value()));
AdIt.RemoveCurrent();
RemoveIt.RemoveCurrent();
goto next;
}
}
// We can't be sure this isn't a move (yet) so temporarily ignore this
if (bHavePendingHashes)
{
RemoveIt.RemoveCurrent();
}
}
next:
continue;
}
}
for (auto& RemovedFile : RemovedFiles)
{
OutTransactions.Add(FUpdateCacheTransaction(MoveTemp(RemovedFile), EFileAction::Removed));
}
// RemovedFiles is now bogus
for (auto& Pair : AddedFiles)
{
OutTransactions.Add(FUpdateCacheTransaction(MoveTemp(Pair.Key), EFileAction::Added, Pair.Value));
}
// AddedFiles is now bogus
for (auto& Pair : ModifiedFiles)
{
OutTransactions.Add(FUpdateCacheTransaction(MoveTemp(Pair.Key), EFileAction::Modified, Pair.Value));
}
// ModifiedFiles is now bogus
}
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
void FFileCache::UpdatePendingTransactions()
{
if (bPendingTransactionsDirty)
{
PendingTransactions.Reset();
DiffDirtyFiles(DirtyFiles, PendingTransactions);
bPendingTransactionsDirty = false;
}
}
void FFileCache::IterateOutstandingChanges(TFunctionRef<bool(const FUpdateCacheTransaction&, const FDateTime&)> InIter) const
{
for (const FUpdateCacheTransaction& Transaction : PendingTransactions)
{
FFileData FileData = DirtyFiles.FindRef(Transaction.Filename);
if (!InIter(Transaction, FileData.Timestamp))
{
break;
}
}
}
TArray<FUpdateCacheTransaction> FFileCache::GetOutstandingChanges()
{
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
// Harvest hashes first, since that may invalidate our pending transactions
HarvestDirtyFileHashes();
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
UpdatePendingTransactions();
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
// Clear the set of dirty files since we're returning transactions for them now
DirtyFiles.Empty();
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
TArray<FUpdateCacheTransaction> ReturnVal = MoveTemp(PendingTransactions);
PendingTransactions.Empty();
return ReturnVal;
}
TArray<FUpdateCacheTransaction> FFileCache::FilterOutstandingChanges(TFunctionRef<bool(const FUpdateCacheTransaction&, const FDateTime&)> InPredicate)
{
HarvestDirtyFileHashes();
TArray<FUpdateCacheTransaction> AllTransactions;
DiffDirtyFiles(DirtyFiles, AllTransactions, nullptr);
// Filter the transactions based on the predicate
TArray<FUpdateCacheTransaction> FilteredTransactions;
for (auto& Transaction : AllTransactions)
{
FFileData FileData = DirtyFiles.FindRef(Transaction.Filename);
// Timestamp is the time the file was dirtied, not necessarily the timestamp of the file
if (InPredicate(Transaction, FileData.Timestamp))
{
DirtyFiles.Remove(Transaction.Filename);
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
if (Transaction.Action == EFileAction::Moved)
{
DirtyFiles.Remove(Transaction.MovedFromFilename);
}
FilteredTransactions.Add(MoveTemp(Transaction));
}
}
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
bPendingTransactionsDirty = true;
// Anything left in AllTransactions is discarded
return FilteredTransactions;
}
void FFileCache::IgnoreNewFile(const FString& Filename)
{
auto TransactionPath = GetTransactionPath(Filename);
if (TransactionPath.IsSet())
{
DirtyFiles.Remove(TransactionPath.GetValue());
const FFileData FileData(IFileManager::Get().GetTimeStamp(*Filename), FMD5Hash::HashFile(*Filename));
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
CompleteTransaction(FUpdateCacheTransaction(MoveTemp(TransactionPath.GetValue()), EFileAction::Added, FileData));
bPendingTransactionsDirty = true;
}
}
void FFileCache::IgnoreFileModification(const FString& Filename)
{
auto TransactionPath = GetTransactionPath(Filename);
if (TransactionPath.IsSet())
{
DirtyFiles.Remove(TransactionPath.GetValue());
const FFileData FileData(IFileManager::Get().GetTimeStamp(*Filename), FMD5Hash::HashFile(*Filename));
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
CompleteTransaction(FUpdateCacheTransaction(MoveTemp(TransactionPath.GetValue()), EFileAction::Modified, FileData));
bPendingTransactionsDirty = true;
}
}
void FFileCache::IgnoreMovedFile(const FString& SrcFilename, const FString& DstFilename)
{
auto SrcTransactionPath = GetTransactionPath(SrcFilename);
auto DstTransactionPath = GetTransactionPath(DstFilename);
if (SrcTransactionPath.IsSet() && DstTransactionPath.IsSet())
{
DirtyFiles.Remove(SrcTransactionPath.GetValue());
DirtyFiles.Remove(DstTransactionPath.GetValue());
const FFileData FileData(IFileManager::Get().GetTimeStamp(*DstFilename), FMD5Hash::HashFile(*DstFilename));
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
CompleteTransaction(FUpdateCacheTransaction(MoveTemp(SrcTransactionPath.GetValue()), MoveTemp(DstTransactionPath.GetValue()), FileData));
bPendingTransactionsDirty = true;
}
}
void FFileCache::IgnoreDeletedFile(const FString& Filename)
{
auto TransactionPath = GetTransactionPath(Filename);
if (TransactionPath.IsSet())
{
DirtyFiles.Remove(TransactionPath.GetValue());
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
CompleteTransaction(FUpdateCacheTransaction(MoveTemp(TransactionPath.GetValue()), EFileAction::Removed));
bPendingTransactionsDirty = true;
}
}
void FFileCache::CompleteTransaction(FUpdateCacheTransaction&& Transaction)
{
auto* CachedData = CachedDirectoryState.Files.Find(Transaction.Filename);
switch (Transaction.Action)
{
case EFileAction::Moved:
{
CachedDirectoryState.Files.Remove(Transaction.MovedFromFilename);
if (!CachedData)
{
CachedDirectoryState.Files.Add(Transaction.Filename, Transaction.FileData);
}
else
{
*CachedData = Transaction.FileData;
}
bSavedCacheDirty = true;
}
break;
case EFileAction::Modified:
if (CachedData)
{
// Update the timestamp
*CachedData = Transaction.FileData;
bSavedCacheDirty = true;
}
break;
case EFileAction::Added:
if (!CachedData)
{
// Add the file information to the cache
CachedDirectoryState.Files.Emplace(Transaction.Filename, Transaction.FileData);
bSavedCacheDirty = true;
}
break;
case EFileAction::Removed:
if (CachedData)
{
// Remove the file information to the cache
CachedDirectoryState.Files.Remove(Transaction.Filename);
bSavedCacheDirty = true;
}
break;
default:
checkf(false, TEXT("Invalid file cached transaction"));
break;
}
}
void FFileCache::Tick()
{
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
HarvestDirtyFileHashes();
UpdatePendingTransactions();
/** Stage one: wait for the asynchronous directory reader to finish harvesting timestamps for the directory */
if (DirectoryReader.IsValid())
{
if (!DirectoryReader->IsComplete())
{
return;
}
else
{
ReadStateFromAsyncReader();
if (Config.bRequireFileHashes)
{
auto FilesThatNeedHashing = DirectoryReader->GetFilesThatNeedHashing();
if (FilesThatNeedHashing.Num() > 0)
{
AsyncFileHasher = MakeShareable(new FAsyncFileHasher(MoveTemp(FilesThatNeedHashing)));
AsyncTaskThread.AddTask(AsyncFileHasher);
}
}
// Null out our pointer to the directory reader to indicate that we've finished
DirectoryReader = nullptr;
}
}
/** The file cache is now running, and will report changes. */
/** Keep harvesting file hashes from the file hashing task until complete. These are much slower to gather, and only required for rename/move detection. */
else if (AsyncFileHasher.IsValid())
{
double Now = FPlatformTime::Seconds();
if (Now - LastFileHashGetTime > 5.f)
{
LastFileHashGetTime = Now;
auto Hashes = AsyncFileHasher->GetCompletedData();
if (Hashes.Num() > 0)
{
bSavedCacheDirty = true;
for (const auto& Data : Hashes)
{
FImmutableString CachePath = *GetPathToStore(Data);
auto* FileData = CachedDirectoryState.Files.Find(CachePath);
if (FileData && !FileData->FileHash.IsValid())
{
FileData->FileHash = Data.FileHash;
}
}
}
if (AsyncFileHasher->IsComplete())
{
UE_LOG(LogFileCache, Log, TEXT("Retrieving MD5 hashes for directory '%s' took %.2fs"), *Config.Directory, AsyncFileHasher->GetAge());
AsyncFileHasher = nullptr;
}
}
}
}
FString FFileCache::GetPathToStore(const FFilenameAndHash& InData) const
{
if (Config.PathType == EPathType::Relative)
{
if (FPaths::IsRelative(InData.AbsoluteFilename))
{
return InData.AbsoluteFilename.RightChop(ConfigDirectoryStandardized.Len());
}
else
{
return InData.AbsoluteFilename.RightChop(Config.Directory.Len());
}
}
else
{
// TODO: Convert to absolute if not already absolute
return InData.AbsoluteFilename;
}
}
void FFileCache::ReadStateFromAsyncReader()
{
// We should only ever get here once. The directory reader has finished scanning, and we can now diff the results with what we had saved in the cache file.
check(DirectoryReader->IsComplete());
TOptional<FDirectoryState> LiveState = DirectoryReader->GetLiveState();
TOptional<FDirectoryState> CachedState = DirectoryReader->GetCachedState();
if (!CachedState.IsSet() || !Config.bDetectChangesSinceLastRun)
{
// If we don't have any cached data yet, just use the file data we just harvested
CachedDirectoryState = MoveTemp(LiveState.GetValue());
bSavedCacheDirty = true;
return;
}
else
{
// Use the cache that we gave to the directory reader
CachedDirectoryState = MoveTemp(CachedState.GetValue());
}
const FDateTime Now = FDateTime::UtcNow();
// We already have cached data so we need to compare it with the harvested data
// to detect additions, modifications, and removals
for (const auto& FilenameAndData : LiveState->Files)
{
const FString& Filename = FilenameAndData.Key.Get();
// If the file we've discovered was not applicable to the old cache, we can't report a change for it as we don't know if it's new or not, just add it straight to the cache.
if (!CachedDirectoryState.Rules.IsFileApplicable(*Filename))
{
CachedDirectoryState.Files.Add(FilenameAndData.Key, FilenameAndData.Value);
bSavedCacheDirty = true;
}
else
{
const auto* CachedData = CachedDirectoryState.Files.Find(Filename);
if (!CachedData || CachedData->Timestamp != FilenameAndData.Value.Timestamp)
{
DirtyFiles.Add(FilenameAndData.Key, FFileData(Now, FMD5Hash()));
}
}
}
// Check for anything that doesn't exist on disk anymore
for (auto It = CachedDirectoryState.Files.CreateIterator(); It; ++It)
{
const FImmutableString& Filename = It.Key();
if (LiveState->Rules.IsFileApplicable(*Filename.Get()) && !LiveState->Files.Contains(Filename))
{
DirtyFiles.Add(Filename, FFileData(Now, FMD5Hash()));
}
}
RescanForDirtyFileHashes();
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
bPendingTransactionsDirty = true;
// Update the applicable extensions now that we've updated the cache
CachedDirectoryState.Rules = LiveState->Rules;
}
void FFileCache::HarvestDirtyFileHashes()
{
if (!DirtyFileHasher.IsValid())
{
return;
}
else for (FFilenameAndHash& Data : DirtyFileHasher->GetCompletedData())
{
FImmutableString CachePath = *GetPathToStore(Data);
if (auto* FileData = DirtyFiles.Find(CachePath))
{
FileData->FileHash = Data.FileHash;
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
bPendingTransactionsDirty = true;
}
}
if (DirtyFileHasher->IsComplete())
{
DirtyFileHasher = nullptr;
}
}
void FFileCache::RescanForDirtyFileHashes()
{
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
if (!Config.bRequireFileHashes)
{
return;
}
TArray<FFilenameAndHash> FilesThatNeedHashing;
for (const auto& Pair : DirtyFiles)
{
if (!Pair.Value.FileHash.IsValid())
{
FilesThatNeedHashing.Emplace(GetAbsolutePath(Pair.Key.Get()));
}
}
if (FilesThatNeedHashing.Num() > 0)
{
// Re-create the dirty file hasher with the new data that needs hashing. The old task will clean itself up if it already exists.
DirtyFileHasher = MakeShareable(new FAsyncFileHasher(MoveTemp(FilesThatNeedHashing)));
AsyncTaskThread.AddTask(DirtyFileHasher);
}
}
void FFileCache::OnDirectoryChanged(const TArray<FFileChangeData>& FileChanges)
{
// Harvest any completed data from the file hasher before we discard it
HarvestDirtyFileHashes();
const FDateTime Now = FDateTime::UtcNow();
for (const auto& ThisEntry : FileChanges)
{
auto TransactionPath = GetTransactionPath(ThisEntry.Filename);
if (TransactionPath.IsSet())
{
// Add the file that changed to the dirty files map, potentially invalidating the MD5 hash (we'll need to calculate it again)
DirtyFiles.Add(MoveTemp(TransactionPath.GetValue()), FFileData(Now, FMD5Hash()));
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown nick.penwarden Change 2889481 on 2016/03/02 by Richard.TalbotWatkin Fixed socket preview component in Static Mesh Editor so that it remains correctly attached if the socket is renamed (Contributed by Manny-MADE). PR #2094 #jira UE-27338 - GitHub 2094 : BUGFIX: Socket preview component broken in Static Mesh Editor FSlateAtlasedTextureResource Made changes to the Perforce source control provider so that operations can be cancelled with immediate effect if there is an issue connecting to the server. #jira UE-24632 - "Updating file(s) source control status..." dialog doesn't allow Cancel #RB Thomas.Sarkanen Change 2890359 on 2016/03/02 by Nick.Darnell Jira Mirroring - Adding some tools for matching gits sha to perforce commits. Also adding the program for scraping jira issues and pushing them elsewhere. Change 2892008 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813475 Change 2892086 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2813457 Change 2892117 on 2016/03/03 by Richard.TalbotWatkin Back out changelist 2812830 Change 2892316 on 2016/03/03 by Richard.TalbotWatkin Fixed conversion of brushes to volumes so that the original transform isn't lost. #jira UE-24404 - Convert Actor from BSP to volume can affect the actor transform Change 2892765 on 2016/03/03 by Andrew.Rodham Changed public facing level editor classes to use ILevelEditor instead of SLevelEditor #codereview Mike.Fricker Change 2894154 on 2016/03/04 by Richard.TalbotWatkin Fixed error in USplineComponent::GetSegmentLength when the segment is linear or constant. Change 2894481 on 2016/03/04 by Cody.Albert #jira UE-27830 Fixed mismatched layout name Change 2896339 on 2016/03/06 by Richard.TalbotWatkin Fixed undo issues in texture paint mode. #jira UE-21206 - Texture Painting bugs Change 2896713 on 2016/03/07 by Joe.Conley Replacing #ifndef with #pragma once Change 2896955 on 2016/03/07 by Cody.Albert #jira UE-27711 Added initialization for LastHighlightInteractionTime Change 2898895 on 2016/03/08 by Richard.TalbotWatkin More optimizations to editing actors with a large number of components. Improved performance when executing construction scripts. #jira UE-24821 - Blueprints with thousands of components perform very badly when selected in the Level Viewport Change 2900770 on 2016/03/09 by Joe.Conley Change #ifndef to #pragma once for headers under Runtime/Engine/Public Change 2900835 on 2016/03/09 by Richard.TalbotWatkin Fixed issues with scrolling items into view in STileView. Also fixed bugs in STileView::ReGenerateItems. #jira UE-20441 - Hitting F2 to rename an asset in the Content Browser moves the asset out of view if the CB is at default size and location #jira UE-20807 - Browse to Asset in Content Browser focuses just on the text #codereview Nick.Atamas Change 2900837 on 2016/03/09 by Richard.TalbotWatkin Added an OnKeyDownHandler to SSearchBox and SAssetSearchBox so that functionality for handling keypresses which is normally handled by SEditableText can be overridden. Added custom behavior to SAssetPicker and SAssetSearchBox so that up/down cursor keys can be used to change focus from the text box to the menu. #jira UE-20567 - UX Regression on Open Asset Panel This also addresses a similar issue with the auto-complete popup in the Content Browser search bar. Change 2900847 on 2016/03/09 by Richard.TalbotWatkin Fixed include dependency. Change 2900951 on 2016/03/09 by Richard.TalbotWatkin Fixed non-dependent name lookup for superclass member access. Change 2901325 on 2016/03/09 by Jamie.Dale PR #2107: Output Log Filtering (Contributed by phoboz-net) Change 2901391 on 2016/03/09 by Jamie.Dale Some more output log filter improvements We now defer the search until you finish typing, and the filter list itself now uses toggle buttons (like the content browser) so that you can toggle multiple filters without having to re-open the menu. Change 2901736 on 2016/03/09 by Alexis.Matte #jira UE-14632 Export staticmeshactor which are base on blueprint class as a blueprint instead of exporting it as an actor. #codereview nick.darnell Change 2903162 on 2016/03/10 by Alexis.Matte Fbx scene importer, Fix crash when changing the material base path in the material tab page #codereview nick.darnell Change 2903903 on 2016/03/10 by Richard.TalbotWatkin Fixed crash when attempting to paste an object from the level viewport into the content browser. #jira UE-26100 - Crash when attempting to copy an object from the world into the content browser Change 2903947 on 2016/03/10 by Richard.TalbotWatkin [CL 2937134 by Nick Darnell in Main branch]
2016-04-07 16:16:52 -04:00
bPendingTransactionsDirty = true;
}
}
RescanForDirtyFileHashes();
}
} // namespace DirectoryWatcher