#change Rollback of accidental merge 2581810. Discussed alternate solution with Ben.Marsh
#platformnotify Josh.Adams
[CL 2582768 by Andrew Brown in Main branch]
#jira UE-8407 - Trying to open project from Newer version to older version of the Editor
#reviewedby Ben.Marsh
[CL 2515634 by Richard TalbotWatkin in Main branch]
Slate Widget was failing, because of missing Slate dependencies. Testing introduced a couple of problems which all was fixed by this CL:
1. I introduced AdditionalDependencies in .uproject file and change "Add Code To Project..." procedure to fill this array if needed. UBT reads this field and builds the project with required modules. Needed for Slate classes.
2. Changed UHT to #include missing headers in generated.h files if it was missing an include for it's super class. It was causing problems if we were trying to add a subclass of BrushShape -- BrushShape.h didn't have #include "Brush.h" and UBrushShape was inheriting from UBrush.
3. Above problems also occured for Slate classes, but not all of them was UCLASSes, so I had to fixed that manually.
4. "Add Code To Project..." functionality was not invalidating UBT makefiles, which lead to omitting new source files during hot-reloading (even thought it was reporting a success). This change also should improve a bit performance, cause right now there is no "gathering" step -- there is only invalidate step which is a lot quicker.
5. Fixed "Selected Class Source" link to source class in Slate Widget and Slate Widget Style class.
#codereview Robert.Manuszewski
[CL 2481488 by Jaroslaw Palczynski in Main branch]
This is needed for UBT to update its makefiles when we add new code via the editor.
Updating UBT makefiles is more typically handled by re-generating project files, however on Windows we use DTE to inject new files directly into Visual Studio in an attempt to avoid re-generating project files (as it produces modal popups that block operations), so we need to perform a gather instead so that UBT knows things have changed.
ReviewedBy Mike.Fricker
[CL 2446903 by Jamie Dale in Main branch]
- Added IDesktopPlatform::GetUserTempPath() and implemented it for windows
- Created SGetSuggestedIDEWidget class that handles whether to show a "Download X" hyperlink vs. an "Install X" button (depending on whether the platform supports on-demand installation)
- Analytics event added ("Editor.Usage.InstalledIDE") that fires whenever the "Install X" button is clicked
- Changed SourceCodeIDEURL_Windows in BaseEditor.ini from the VSC 2013 web page link to the installer download link (need to replace with perma-link once we have it)
[CL 2409158 by Dan Hertzka in Main branch]
#change Added (desktop) platform abstraction for checking if UBT is running. Fully functional for Windows, WIP for Mac and Linux (should work, but can give false positives)
[CL 2302894 by Robert Manuszewski 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]
add support for showing the various platforms in different menus whether they are properly installed or not
update FPlatformInfo to include information about SDK status, whether or not the platform should be shown on a particular executing platform (Win, Mac, Linux), and whether or not the platform should be shown as part of the binary distribution
fixed platform target modules for IOS, Android, and HTML5 for binary release
TTP341656, TTP342449, TTP342631
#ue4
#platforms
[CL 2238535 by Peter Sauerbrei in Main branch]
TTP# 337511 - ANALYTICS: Store Epic Account ID and Machine Unique GUIDs on Users Machine. Send with Every Event.
This works differently to what the TTP originally asked for, but I've checked with MaxP/MattK/WesH and we're okay with the way this works, as it avoids an annoyingly tight dependency between the analytics and the editor.
On the request of MattK, I also changed FPlatformMisc::GetRegistryString to be FPlatformMisc::GetStoredValue and added a corresponding FPlatformMisc::SetStoredValue. These will store generic key->value pairs using a platform specific store (the registry on Windows, and an INI file on other platforms).
DesktopPlatform uses these to provide access to the Machine ID and Epic Account ID (the Epic Account ID is set when the user logs into the Launcher).
The Editor sends an "Editor.ProgramStarted" event containing this data. This can then be tied to the current analytics session via the analytics session ID.
Tested on Windows and OS X.
ReviewedBy Thomas.Sarkanen, Max.Preussner
[CL 2113818 by Jamie Dale in Main branch]