* Doing so exposed an ambiguity in GetTypeHash(FLinearColor) because previously it was relying on an implicit conversion to FColor. Once an overload for FVector4 was provided, it became ambiguous because there is ALSO an implicit conversion to FVector4!
* Resolved this by implementing GetTypeHash(FLinearColor) directly instead of relying on implicit conversion to FColor.
* This exposed a situation where SDataGraph inlined a local definition of GetTypehash(FLinearColor), and was now in conflict with the real, global one.
* This was a nono in the first place because depending on how UBT decided to combine cpp files, this could CHANGE THE MEANING of GetTypeHash(FLinearColor)!!!
* Turns out that the function was completely unused in that file anyway, so never needed to be added in the first place.Thus, I removed it.
* Arguably, the implementation in SDataGraph is better, but I left the old way so as not to change the meaning of any existing serialized hashes of colors that might be in data files.
#codereview:rob.manuszewski,Jaroslaw.Surowiec
[CL 2302959 by Wes Hunt in Main branch]
Added new buttons on the lauch profile results screen ( rerun, and cancel without closing).
Fixed possible crash when trying to populate a non existant profiler window.
#codereview matt.kuhlenschmidt
[CL 2295572 by Chris Gagnon in Main branch]
Fixed CONSTEXPR definitions.
Converted EFontImportFlags to an enum class in order to test this feature.
#codereview robert.manuszewski,john.barrett
[CL 2254804 by Steve Robb in Main branch]
#ttp 340626 - FIXIF: EDITOR: ANALYTICS: Profiler Usage Event
#branch UE4
#added Added analytics for tracking how long the profiler has been used for
#note It may have been possible to just use HasMouseCapture in the Tick, however this returns false if the tab isn't 'active' yet - so wouldn't count the time when a use is hovering over the window, mulling over their options.
[CL 2229948 by Andrew Brown in Main branch]
#UDN: Feature suggestion; Content browser can sort by a second column
#branch UE4
#change
Added two new images for secondary sort ascending and descending.
(Updated styles where needed).
Added new enum EColumnSortPriority: currently only lists Primary and Secondary, but can easily accommodate more*.
(FOnSortModeChanged was modified to also have the priority as a param, fixedup existing usage).
SHeaderRow now also has a SortPriority attribute to specify the SortMode order
(Defaults to Primary if unused).
Modified TUniquePtr so that assigning one from another worked correctly.
(Reviewed by Steve Robb).
SAssetView is the only table that has been modified, so far, to take advantage of the secondary sort. SetMajorityAssetType has been updated to correctly filter out all those sorts which are no longer relevant and bump the priority of the remaining sorts to fill in the ægapsÆ made by non-longer-relevant ones.
FAssetViewSortManager has been overhauled to take SortPriority into consideration when sortingà
Firstly, duplicate comparison structs were removed in favour of single structs which have æascendingÆ as a paramà any remaining duplicate code was removed in favour of an inherited usage. The base struct has an array of æfurther methodsÆ to employ in the result of a tie. Should a tie occur the ænextÆ comparison is done, and so on until itÆs not a tie or we run out of comparisons to perform.*
The manager defaults to having no secondary sort, so it relies on the interface thatÆs using it to provide it.
Whenever a column is assign the code makes sure that itÆs not already assigned to another column and corrects the order to take this into account.
Fixed a bug in FCompareFAssetItemByTagNumericalAscending comparing A with A (instead of B).
Various optimizations to the sort to descrease times
*The only places æSecondaryÆ is referred to in code is in GetSortingBrush (so it can display the correct icon for the sort), and OnTitleClicked (so it can set to correct sort based on input). The sorting code itself has no concept as to a secondary sort, it can support any number of sorting levels so if in future a tertiary (or more) is added, it is only these two function which should need updating as the sort will automatically accommodate it.
reviewed by Thomas.Sarkanen, Bob.Tellez
[CL 2119201 by Andrew Brown in Main branch]
Please note that file comments had no purpose in nearly all cases and just added visual clutter. The two files that had meaningful file comments had their comments moved into the corresponding classes. There are still hundreds of file comments left in other files that will be removed over time.
Also cleaned up some random stuff along the way:
- relative paths to public headers within the same module are no longer necessary (automatically discovered by UBT now)
- header guards are deprecated, use #pragma once instead (all compilers support it now)
- space between multiple template brackets is no longer required (all compilers support >> now)
- NULL to nullptr, OVERRIDE to override
- spelling errors, whitespace, line breaks
[CL 2104067 by Max Preussner in Main branch]