Commit Graph

71 Commits

Author SHA1 Message Date
Peter Knepley
ceb95abc89 Support for silently ignoring plugin load failures. Can happen if plugin not supported on all platforms.
Merging 2587926

//depot/UE4-UT/...

to //depot/UE4/...

#codereview James.Golding

[CL 2588608 by Peter Knepley in Main branch]
2015-06-16 10:27:07 -04:00
Matthew Griffin
d2515308d8 Ensure that dependencies on removed plugins are removed from the saved .uproject file
Removed Saving from the Project Manager's SetPluginEnabled function, setting a dirty flag instead, as it won't be able to check source control
Added a new function to save the current project from the Project Manager and clear the dirty flag on success

[CL 2588323 by Matthew Griffin in Main branch]
2015-06-16 04:27:48 -04:00
Josh Adams
7ff0070a83 - Basic support for compiling Xcode 7 (iOS9, MacOS 10.11)
- Marked some overrides properly, then gave up and added -Wno-inconsistent-missing-override)
- Improved Xcode selection process for Mac and iOS (no more hardcoding Xcode path - it uses the currently running Xcode, or xcode-select when using commandline)
   - Added AppleToolchain.cs, to start sharing code between Mac and IOS Toolchains (Compile functionality and params to clang could be shared pretty easily)
   -
- Some Utility functions:
   - Added UBT utility to run a commandline and get its output, self-contained (Utils.RunLocalProcessAndReturnStdOut)
   - Added Log.TraceInformationOnce (and Error, Warning, etc) to print out a message only one time, without a bunch of static bools everywhere
#codereview michael.trepka,peter.sauerbrei,mark.satterthwaite

[CL 2586000 by Josh Adams in Main branch]
2015-06-12 13:45:19 -04:00
Matthew Griffin
f51aa7f78c Added support URL for plugins
Removed Custom file writing code from Plugin Creator plugin as it hadn't been kept up to date with normal methods and did not write all properties

Also noticed two strings in plugin tile used the same key, allowed documentation and support to preview URL as well

UE-16203

[CL 2579743 by Matthew Griffin in Main branch]
2015-06-08 04:49:29 -04:00
Peter Sauerbrei
2e8a308315 fix for installed plugins enabled by default kicking a link build for content-only projects
UE-16385
#codereview ben.marsh

[CL 2571774 by Peter Sauerbrei in Main branch]
2015-05-30 15:41:30 -04:00
Ben Marsh
7b2d94f21c Fix disabling an installed plugin removing it from the plugin reference list, which causes them to be re-enabled on next engine startup.
[CL 2571722 by Ben Marsh in Main branch]
2015-05-30 12:51:57 -04:00
Ben Marsh
cc719d7a21 Always enable installed plugins by default, but update your project file with references to them on startup (so other users opening the project will be able to find it on the marketplace).
[CL 2566860 by Ben Marsh in Main branch]
2015-05-27 12:56:05 -04:00
Ben Marsh
da817d30ef Automatically refresh the plugins list when a plugin is added or modified externally. Also simplify the logic for scanning for plugins.
[CL 2544726 by Ben Marsh in Main branch]
2015-05-10 15:38:43 -04:00
Ben Marsh
4f07e9779a Fix initialization order warnings for FPluginReferenceDescriptor, and reorder constructor parameters to match the more logical order.
[CL 2544454 by Ben Marsh in Main branch]
2015-05-09 08:05:10 -04:00
Ben Marsh
86551e13b5 Add a Marketplace URL field to the .uplugin descriptor. The URL will be embedded into projects that enable the plugin, which will prompt to open the marketplace at the given URL if the user doesn't have the plugin installed.
#codereview Richard.Fawcett, Leigh.Swift

[CL 2543889 by Ben Marsh in Main branch]
2015-05-08 18:24:48 -04:00
Ben Marsh
78f6199447 Add a separate category for "installed" plugins, and hide categories if they're empty.
[CL 2527764 by Ben Marsh in Main branch]
2015-04-27 20:08:52 -04:00
Ben Marsh
eecb6f24ce Remove ensure against CoreUObject mount delegate existing unless there are plugins with content folders. Not entirely sure why this is necessary yet, but Mac DDC seems to be failing where it wasn't before.
[CL 2526386 by Ben Marsh in Main branch]
2015-04-26 22:19:39 -04:00
Ben Marsh
a784ebdf3c Change IPluginManager to return shared pointers to plugin objects, rather than passing raw pointers by default.
[CL 2526084 by Ben Marsh in Main branch]
2015-04-26 10:47:22 -04:00
Ben Marsh
923e6b01a4 Renaming some plugin browser stuff for consistency, and removing a bunch of unnecessary abstractions.
[CL 2526080 by Ben Marsh in Main branch]
2015-04-26 10:27:46 -04:00
Ben Marsh
11ff491a44 Add editor for plugin metadata.
[CL 2526069 by Ben Marsh in Main branch]
2015-04-26 09:18:08 -04:00
Ben Marsh
41d63d4980 Add a virtual destructor to FPlugin.
[CL 2524969 by Ben Marsh in Main branch]
2015-04-24 17:05:49 -04:00
Ben Marsh
9e4c2ae0a5 Use the exposed IPlugin interface to get plugin content folders rather than querying it separately.
[CL 2524929 by Ben Marsh in Main branch]
2015-04-24 16:37:21 -04:00
Ben Marsh
83e12c29e1 Accessor to get an array of all the enabled plugins.
[CL 2524773 by Ben Marsh in Main branch]
2015-04-24 14:58:39 -04:00
Ben Marsh
b1cf5c6d34 Add IPlugin interface, rather than exposing lots of raw data for plugins.
[CL 2524702 by Ben Marsh in Main branch]
2015-04-24 14:23:22 -04:00
Ben Marsh
8be8504edc Remove some of the tedious layers of indirection from the plugin manager.
[CL 2521707 by Ben Marsh in Main branch]
2015-04-22 16:41:13 -04:00
Ben Marsh
660595213d Better explanation for what FProjectDescriptor::EngineAssociation does.
[CL 2511591 by Ben Marsh in Main branch]
2015-04-14 09:13:27 -04:00
Jaroslaw Palczynski
6c305898e0 UE-8578: Slate Widget fails to compile once added to a new project
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]
2015-03-17 09:34:18 -04:00
Marc Audy
e5ba044eb0 Fix shadowed variables
[CL 2451810 by Marc Audy in Main branch]
2015-02-19 12:13:52 -05:00
Jamie Dale
55c3728d11 Added support for showing game and engine classes in the Content Browser
UE-7184 - Show game c++ classes and engine c++ classes in the content browser

The Content Browser now has extra entries for "Game C++ Classes" and "Engine C++ Classes" (with "Game" and "Engine" being renamed to "Game Content" and "Engine Content" respectively). These new folders serve as hosts for the list of available C++ modules, with each module internally mirroring the folder structure on disk.

For example:
- Game C++ Classes
    - ShooterGame
        - Classes
            - Bots
                - ShooterBot
                - ShooterAIController
                - [...]
            - [...]

The Content Browser allows you to navigate and search these classes like you can with assets, and provides convenient access to either edit an existing class, or create a new class (either within a selected folder, or derived from a selected class).

As the Content Browser only shows you known UClass types, any new classes need to be compiled into a loaded module before they will appear. This means that adding a new class will now automatically hot-reload your target module. Should you prefer to handle building and loading your modules manually, you can disable the automatic hot-reload via "Editor Settings" -> "Miscellaneous" -> "Hot Reload" -> "Automatically Hot Reload New Classes" (see UEditorUserSettings::bAutomaticallyHotReloadNewClasses).

[CL 2409386 by Jamie Dale in Main branch]
2015-01-16 15:39:47 -05:00
Ben Marsh
1f5b1222c2 Remove GenerateNewProjectFile from IProjectManager.
[CL 2401854 by Ben Marsh in Main branch]
2015-01-09 08:08:13 -05:00