Commit Graph

28 Commits

Author SHA1 Message Date
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Jamie Dale
7775242a93 Fixed output log performance degradation as new text was added
UETOOL-129 - Investigate SOutputLog performance degradation

FTextLayout::AddLine was causing a re-flow of the entire document when a new line was added. This change makes it only flow the line that is being added (providing the rest of the layout is already up-to-date).

ReviewedBy Justin.Sargent

[CL 2363200 by Jamie Dale in Main branch]
2014-11-18 06:25:21 -05:00
Michael Noland
6e79b18ad4 Editor: Fix crash during shutdown with log timestamps
[CL 2357800 by Michael Noland in Main branch]
2014-11-12 20:01:49 -05:00
Mikolaj Sieluzycki
462bb3edc1 Prepare cpp files for header cleanup.
#codereview Robert.Manuszewski

[CL 2356890 by Mikolaj Sieluzycki in Main branch]
2014-11-12 05:28:51 -05:00
Michael Noland
897c2880b4 Editor: Fix Clang error with ? of dissimilar types
[CL 2355272 by Michael Noland in Main branch]
2014-11-10 18:29:57 -05:00
Michael Noland
6d2b7ff428 Editor: Add LogTimestampMode editor config setting to control how timestamps are displayed in the output log (still defaults to None)
[CL 2354931 by Michael Noland in Main branch]
2014-11-10 15:13:41 -05:00
Jamie Dale
588dfdfcf0 Removed some redundant focus switching code from the output log
This was causing the focus to ultimately switch back to the widget that was already focused, however it was also causing IMEs to lose their current context. This force focus isn't needed, as the suggestions list is already set to not take focus when it's spawned.

[CL 2350270 by Jamie Dale in Main branch]
2014-11-05 13:12:41 -05:00
Chris Gagnon
0e6d657c3d Refactor to unify keyboard and controller input and focus.
Native controller navigation support.

[CL 2345039 by Chris Gagnon in Main branch]
2014-10-30 12:29:36 -04:00
Matt Kuhlenschmidt
b2d573aa0d Fix crash typing in the output log when a PIE window is open
[CL 2344902 by Matt Kuhlenschmidt in Main branch]
2014-10-30 10:18:39 -04:00
Wes Hunt
31e2bb00ac Removed a bunch of stuff from Slate standard include, created SlateBasics.h
* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN

[CL 2329610 by Wes Hunt in Main branch]
2014-10-14 22:50:06 -04:00
Dan Hertzka
f3092790eb Window menu refactor & polish
- Window menu is now sectioned and labeled based on the current editor. There's now a local workspace root member in FTabManager and a workspace category in FAssetEditorToolkit (both are FWorkspaceItem objects). Individual editors attach their local category to the tab manager's local root. Workflow app modes have their own category members that are swapped out when the mode changes.

- Finally, the AssetEditorCategory of FWorkspaceMenuStructure has been removed entirely.

- Replaced the AddMenuSeparator() call in FTabManager::PopulateSpawnerMenu_Helper() with a section of the same title as the workspace category.

- Tab spawner menu entries for the local editor now properly show the icon of the associated tab. To accomplish this it was necessary to change FWorkflowTabFactory::TabIcon to be an FSlateIcon instead of an FSlateBrush*. All factory instances have been updated accordingly.

- Added & updated lots of icons! (those missing will be TTP'd)

- The nomad tab spawner section (named "General" in the menu) has been largely compressed into the Developer Tools submenu, which has also been organized into sections for readability.

- Unreal frontend options were also moved into a context menu within the General section

- Moved all experimental tools to their own section of the Window menu. When they're no longer experimental they should register as nomads in the appropriate category

- Undo history now under Edit menu

[CL 2324285 by Dan Hertzka in Main branch]
2014-10-09 12:34:55 -04:00
Jamie Dale
7dfea2d544 Fixed a crash when the TSF IME API tried to get the selected text from SOutputLog
FOutputLogTextLayoutMarshaller::GetText wasn't implemented, so it was always returning an empty string. I've implemented this and verified that it doesn't cause any performance issues for the output log.

I had to change SMultiLineEditableText::LoadText to only do that when it was bound to a delegate, as that was causing a hitch while the output log was updated when you gave it focus.

I also fixed giving the output log focus sometimes jumping to the top of the log (SMultiLineEditableText::OnKeyboardFocusReceived needed the same fix as SMultiLineEditableText::OnKeyboardFocusLost to prevent the cursor jumping into focus).

ReviewedBy Justin.Sargent

[CL 2308259 by Jamie Dale in Main branch]
2014-09-24 09:59:43 -04:00
Jamie Dale
22f0534844 Removed Tick() from SOutputLog
It wasn't actually needed as we're able to perform the scroll immediately in all cases we need to, rather than wait until the next Tick().

#codereview Max.Preussner

[CL 2306688 by Jamie Dale in Main branch]
2014-09-23 06:03:13 -04:00
Jamie Dale
6da78431f0 Some usability improvements for the output log
1) The selected text colour is now easier on the eyes
2) The output log will always scroll to the end when you enter a command
3) The output log will now correctly scroll to the bottom when it is first opened (it forces the scrollbars to always visible to avoid the horizontal scrollbar being able to move the vertical scrollbar up slightly from the bottom of the log)

ReviewedBy Andrew.Rodham

[CL 2305438 by Jamie Dale in Main branch]
2014-09-22 09:46:08 -04:00
Jamie Dale
57f0bee6b0 Fixed auto-scrolling not working after clearing the output log
ReviewedBy Rob.Jones

[CL 2298082 by Jamie Dale in Main branch]
2014-09-15 09:30:39 -04:00
Jamie Dale
80b7d7a258 Converted SOutputLog to use a multiline editable text control to show its log output
This is using a custom text marshaller to efficiently convert an FLogMessage into something understood by the FTextLayout.

ReviewedBy Justin.Sargent

[CL 2297960 by Jamie Dale in Main branch]
2014-09-15 07:10:02 -04:00
Daniel Lamb
4bc121d9e6 Fixed missing header include.
[CL 2285078 by Daniel Lamb in Main branch]
2014-09-04 16:26:20 -04:00
Matt Kuhlenschmidt
a75d1ba1c6 Console can be opened anywhere in the editor by pressing tilde (~). This is shortcut is rebindable.
[CL 2284536 by Matt Kuhlenschmidt in Main branch]
2014-09-04 10:49:55 -04:00
Jamie Dale
9397540ee7 Fixed crash shutting down the editor
TTP# 345402 - CRITICAL: Regression: EDITOR: CRASH: Closing the editor

There was a static instance of SOutputLog being created, which was persisting beyond the lifespan of both Slate and ICU.

#codereview Justin.Sargent

[CL 2282175 by Jamie Dale in Main branch]
2014-09-02 18:32:57 -04:00
Matt Kuhlenschmidt
e16c656e93 Some tweaks to minimize horizontal scrollbar artifacts in the output log.
[CL 2267403 by Matt Kuhlenschmidt in Main branch]
2014-08-22 10:04:10 -04:00
Matt Kuhlenschmidt
b8c7941fe3 Added horizontal scrolling to the output log.
[CL 2258783 by Matt Kuhlenschmidt in Main branch]
2014-08-15 22:45:05 -04:00
Michael Trepka
3293117f09 More fixes for Clang warnings
[CL 2238624 by Michael Trepka in Main branch]
2014-07-31 15:43:08 -04:00
Nick Atamas
badf62c330 Slate slots now use a common base class, which has a private '.Widget' member; use GetWidget() instead.
Slate TPanelChildren, TSlotlessChildren are no longer full-fledged arrays; removed any unused Array API.
Fixed up a lot of improper use cases.

This better encapsulates the action of adding/removing Slate Widgets from the runtime tree as a Slate Core concern.
Alows us to add parent pointers in the future with significantly less effort.

#codereview Wes.Hunt
#codereview Nick.Darnell
#codereview Matt.Kuhlendschmidt
#codereview Justin.Sargent

[CL 2234301 by Nick Atamas in Main branch]
2014-07-28 06:53:40 -04:00
Jaroslaw Palczynski
ebce413232 UE4 Refactoring. Changed OVERRIDE and FINAL macros to keywords override and final.
[CL 2104397 by Jaroslaw Palczynski in Main branch]
2014-06-13 06:14:46 -04:00
Max Preussner
b63129a60c Slate: Refactored core Slate implementation into SlateCore module in preparation for UMG.
Other Updates:
- The WidgetReflector is now in its own module as well. It will be converted to a plug-in later.
- The Public API of both Slate and SlateCore has largely been reorganized for better discoverabilty. More cleanup work is needed.
- Added a lot of missing API documentation and fixed existing ones. More and better documentation is needed.
- Removed dead code, fixed a couple things I stubled upon, and conformed to coding guidelines (NULL vs nullptr, line breaks, etc.)

Upgrade Notes:
- The Slate Remote Server is currently disabled - will be re-enabled shortly!
- If your module previously had a module dependency to 'Slate', it now also needs a PrivateModuleDependency to 'SlateCore' in its Build.cs file.
- If your module exposes in any of its Public header files types that are now declared in SlateCore, it needs a PublicModuleDependency to 'SlateCore'
- The ToolTip property type on SWidget has changed from SToolTip to IToolTip; change local variables to TSharedPtr<IToolTip> instead of TSharedPtr<SToolTip> where needed
- IToolTip is not a widget. If you need access to the actual widget that represents the tool tip, use IToolTip::AsWidget(); If you need access to the tool tip's content, use IToolTip::GetContentWidget()

Troubleshooting:
- After syncing to this changelist you may have to clean your /Engine/Intermediate/Build/ directory and rebuild your entire project
- If in your project you are getting linker errors for unresolved types that are now declared in SlateCore, you may be missing a dependency to 'SlateCore'
- If in the Engine code you are getting linker errors for unresolved types that are now declared in SlateCore, you may need to rebuild the entire Engine

[CL 2057118 by Max Preussner in Main branch]
2014-04-26 15:07:24 -04:00