Commit Graph

967 Commits (2a32d6783077417bb491cd05dfd99ed2fd090cf1)

Author SHA1 Message Date
Adi Bar-Lev 8dca689444 Merge commit 'caf247fcab0fc65773c6a95f1bbcfe10b184c5e0' into barlev/gitflow_211028_O3DE 4 years ago
Guthrie Adams e5729fbefe Fix clearing material component default material not clearing materials or updating preview
• Changed thumbnail property control to track asset key even if image is overridden so that it will be restored if the image is cleared.
• Changed property asset control to disable the thumbnail image by default whenever the attribute is applied. It will only enable the thumbnail image if the pixmap is valid.
• Changed the material component controller to always use an empty material assignment map on deactivation so that no persistent materials are reapplied.
• Changed the material component controller to immediately send a notification that materials have updated if no materials were queued for load but the configuration contained pre created or persistent material instances. This mainly affects the material editor because it manages its own material instances.

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
4 years ago
Danilo Aimini 1435d8b096 Merge branch 'development' of https://github.com/o3de/o3de into daimini/gitflow_211027_o3de 4 years ago
Alex Peterson 59c898fc48
Fix notification queue and add gem action (#4985) (#5024)
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
srikappa-amzn 6f8890c2ef
Improve error messaging when duplicating entities before they are created (#4922)
* Improved error messaging when user tries to duplicate before entities are created

Signed-off-by: srikappa-amzn <srikappa@amazon.com>
4 years ago
Danilo Aimini 732b8c2d1b Merge commit 'd332f7c4c70343d7e1a8ca72723ac99ebdd30ca6' into daimini/gitflow_211027_o3de
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
4 years ago
Danilo Aimini bc844dc6c9 Merge commit 'a2eca9de3d2e5abca3d5f52f58ff6afd613d8d0d' into daimini/gitflow_211027_o3de
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
4 years ago
Danilo Aimini 657b1026b5 Merge commit '1bc2968330c7f700759d68b4b4a8e59d81007027' into daimini/gitflow_211027_o3de
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
4 years ago
Danilo Aimini f960d6466c Merge commit '3b4b8c354903f6c0fb9b579b13ae5d336c761382' into daimini/gitflow_211027_o3de
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
4 years ago
Michael Pollind 3e3f27e65c
bugfix: improve viewport overlay (#4939)
* bugfix: improve viewport overlay

- disable animation for window
- fix problem where vieport is offset from main window

Signed-off-by: Michael Pollind <mpollind@gmail.com>

* update geometry of m_uiOverlay

Signed-off-by: Michael Pollind <mpollind@gmail.com>
4 years ago
Alex Peterson 7a0246530a
Fix notification queue and add gem action (#4985)
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
Chris Galvan 78b0683313 Added GetComponentTypeEditorIcon API and replaced old macro style ebus calls.
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
4 years ago
jonawals a2eca9de3d
Merge pull request #4998 from aws-lumberyard-dev/LYN-5265_state_tracker_impl
Add Focus Mode integration tests.
4 years ago
John c2105b0631 Address PR comments.
Signed-off-by: John <jonawals@amazon.com>
4 years ago
Michael Pollind 5374860444
Bug Fix: resolve entity ordering for EntityOutliner (#4798) (#4938)
* bugifx: resolve dragging behaviour for EntityOutliner (#4798)

Signed-off-by: Michael Pollind <mpollind@gmail.com>

* chore: cleanup and rework logic

Signed-off-by: Michael Pollind <mpollind@gmail.com>
4 years ago
Danilo Aimini 1bc2968330
Resolve minor hover state bugs on the Entity Outlier (branches detect hover state separately from the rest of the columns) (#4977)
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
4 years ago
Danilo Aimini 3b4b8c3549
Move the initialization of m_editorEntityUiInterface higher so that it's initialized when the interface is set up. (#4972)
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
4 years ago
galibzon 4d4deb1211
Added Hydra API to extract all the classes, globals and EBuses exposed (#4953)
* Added Hydra API to extract all the classes, globals and EBuses exposed
to lua:

azlmbr.script.LuaSymbolsReporterBus:
GetListOfClasses
GetListOfGlobalProperties
GetListOfGlobalFunctions
GetListOfEBuses

Also exposed to Hydra the classes that can be used to dump
the symbols
azlmbr.script.LuaPropertySymbol
azlmbr.script.LuaMethodSymbol
azlmbr.script.LuaClassSymbol
azlmbr.script.LuaEBusSender
azlmbr.script.LuaEBusSymbol

The python file Assets/Editor/Scripts/lua_symbols.py
can be used with "pyRunFile <script_name> [output.txt]"
to create Game/output.txt will all the symbols
OR
passing up to three additional arguments "c" or "g" or "e" to dump only
classes, globals or ebuses or a combination of those. Example:
To create an output file with only classes and Ebuses:
"pyRunFile <script_name> [output.txt] c e"

Signed-off-by: garrieta <garrieta@amazon.com>
4 years ago
John f98d2e55aa Refactor component mode query.
Signed-off-by: John <jonawals@amazon.com>
4 years ago
John 99b840652d Add Focus Mode integration tests.
Signed-off-by: John <jonawals@amazon.com>
4 years ago
AMZN-Igarri e970247fc5
Asset Browser Search View fixes (#4814)
* Fixed RowCount method.

Signed-off-by: igarri <igarri@amazon.com>

* Fixed Signals

Signed-off-by: igarri <igarri@amazon.com>

* Fixed Delegate case

Signed-off-by: igarri <igarri@amazon.com>

* Fixed issue when displaying branch icons

Signed-off-by: igarri <igarri@amazon.com>

* Fixed AssetBrowser Delegate

Signed-off-by: igarri <igarri@amazon.com>

* Removed optimize flags

Signed-off-by: igarri <igarri@amazon.com>

* AssetBrowsertableModel cleanup

Signed-off-by: igarri <igarri@amazon.com>

* Fixed Typos

Signed-off-by: igarri <igarri@amazon.com>

* Fixed Comment

Signed-off-by: igarri <igarri@amazon.com>

* Added check for rowCount == 0

Signed-off-by: igarri <igarri@amazon.com>
4 years ago
Chris Galvan efbf2f224e
Merge pull request #4913 from aws-lumberyard-dev/cgalvan/AddFindComponentsByServiceAPI
Added API for finding components based on required/incompatible services
4 years ago
Danilo Aimini 45926d0dbd
LYN-7539 + LYN-7541 | Focus Mode - Show prefab names and dirty markers instead of instance names in breadcrumbs (#4850)
* Change Prefab Focus breadcrumb widget to display template filename instead of instance container entity name. Also display dirty state for the template (*) and refresh it in real time.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Streamline path creation code; fix stem retrieval to ensure extension is cut correctly; delay refresh one frame when path is clicked to correctly refresh it.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Remove test code.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Simplify code to use Native directly.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Minor variable renaming and comment adjustments to make them clearer.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
4 years ago
Steve Pham 476ff637c2
Undo P4 check before spawning thread and fix usage of new AzToolsApplication trait (#4894)
Signed-off-by: Steve Pham <spham@amazon.com>
4 years ago
Alex Peterson 1989316cac
Added toast notifications to the gem catalog 4 years ago
Chris Galvan 95c2ee0e9d Added API for finding components based on required/incompatible services.
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
4 years ago
Nicholas Van Sickle f3af362ede
Merge pull request #4838 from aws-lumberyard-dev/LYN-7562
Make safe asset folder comparison for prefab creation to be case insensitive
4 years ago
Danilo Aimini 52112be1ac
LYN-7448 + LYN-7542 + LYN-7543 | Focus Mode - UX Improvements (#4837)
* Introduce Outliner button to simplify Prefab editing

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Fix Focus Mode and disabled entities colors

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Fix - propagate the event if the OnOutlinerItemClick function returns false.
This does not change current behavior but makes more sense in the context of future handlers.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Adjust disabled colors to match UX recommendations.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Display the edit button even if the prefab is disabled. Remove prefabWip check (it will be removed for focus mode by the time this goes in). Default to disabled capsule color for borders to save on checks.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Disable edit button on disabled prefabs as it caused conflicts in nested prefabs. May explore that possibility later.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Change disabled text color to be darker, as asked by UX.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
4 years ago
chiyenteng 7316802941
Add Detach and Duplicate Prefab basic workflow auto test (#4506)
- Add a new automated test PrefabBasicWorkflow_CreateReparentAndDetachPrefab for verifying prefab detachment basic workflow.
- Add a new automated test PrefabBasicWorkflow_CreateAndDuplicatePrefab for verifying prefab detachment basic workflow.
- Fix a bug related to sets of entity ids in Reparent helper function .
4 years ago
srikappa-amzn 33490ed6df Avoided a string copy by using path view
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
4 years ago
srikappa-amzn 4ed73a0b91 Use case insensitive folder path comparison for creating slices
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
4 years ago
Danilo Aimini c2ec18dc0e
Remove prefab WIP checks to make focus mode the default (and only) prefab editing workflow in the editor. (#4840)
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
4 years ago
Steve Pham 27a535eaf4
Linux Fixes for Launching the Material Editor (#4808)
- Prevent P4 thread to run if we cannot detect the P4 command to begin with
- Add a trait to disable calling the parent ComponentApplication::Destroy(), instead calling _exit() to skip the module unloading on exit

Signed-off-by: Steve Pham <spham@amazon.com>
4 years ago
Danilo Aimini 60c286dafa
LYN-7483 + LYN-7052 | Correctly initialize and refresh Prefab Focus Mode handler. (#4718)
* Initialize the PrefabFocusHandler on context reset, to also cover the case of a new level being created on the welcome screen.
Relax checks/restrictions on refreshes to cover cases where an instance is reused by the Prefab EOS.
Refresh the breadcrumbs when a container is renamed and when a change is propagated to the instances to ensure the correct names are displayed.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Rename m_isInitialized to m_initialized in PrefabFocusHandler

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Use find_if to detect when a container entity in the focus path has been renamed.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Renaming and commenting variables in PrefabFocusHandler.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Undo minor naming change

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Replace lazy initialization and have the UI side initialize the Editor calls in PrefabFocusHandler.
This should prevent issues with focus mode trying to access these interfaces in non-editor applications.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
4 years ago
srikappa-amzn 24b0dab30e Make safe asset folder comparison for prefab creation to be case insensitive
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
4 years ago
Alex Peterson 7ddcdffed7
Move Qt Toast Notifications from GraphCanvas into Framework
Move the existing Qt Toast Notification QWidgets, EBuses and logic from the GraphCanvas gem into AzQtComponents and AzToolsFramework so they can be re-used.

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
Allen Jackson 900aa4e5bc
{lyn7065} adding ProcPrefab Prefab::Tempate flag method (#4765)
* {lyn7065} adding ProcPrefab Prefab::Tempate flag method

Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>

* updated based on comments

Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>

* moved validation logic to IsValid()

Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>

* added more guards around the source string


Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
4 years ago
jonawals a1ee7b5a31
Merge pull request #4725 from aws-lumberyard-dev/hultonha_LYN-7394_focus_cursor
Updates to support 'lock'/'forbidden' cursor when in Focus Mode
4 years ago
jonawals befb97a80e
Merge pull request #4627 from aws-lumberyard-dev/igarri/Fix-Viewport-camera-locations
Make Go To Location affect the Default Viewport Camera
4 years ago
Nicholas Van Sickle 3485bc08b1
Fix EntityOutlinerTest (#4771)
The test was relying on immediate updates from the prefab system which are now scheduled for a later tick - this reworks the tests to wait for deferred updates before validating state

Signed-off-by: nvsickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 434641382b
Merge pull request #4749 from aws-lumberyard-dev/nvsickle/OutlinerDuplicateEntryFixes
Fix issues with invalid Outliner entries
4 years ago
Allen Jackson fbedd8126d
{lyn7251} Add material component example in Python (#4724)
* {lyn7251} Add material component example in Python

adds a AZ::Render::EditorMaterialComponent as an example of how to
override the default material from the scene building pipeline

Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>

* Only set the cube to a gray material
Skip loading the asset, instead just set the outPrefabAssetPath for the Prefab system to load

Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>

* stablizing the sub-id of procedural prefab groups

Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
4 years ago
igarri 6050d2e16e merge develop
Signed-off-by: igarri <igarri@amazon.com>
4 years ago
John 363bc33fed Fix broken function name.
Signed-off-by: John <jonawals@amazon.com>
4 years ago
John cf41ff020a Fix merge conflicts.
Signed-off-by: John <jonawals@amazon.com>
4 years ago
nvsickle f0e6841ca8 Fix issues with invalid Outliner entries
The EntityOutlinerListModel was violating the QAbstractItemModel contract in a few cases, as reported by `QAbstractItemModelTester`. The important ones causing issues were:
- Entry order was not guaranteed, leading to model indices pointing at invalid data
- Parent/child relationships could be temporarily invalid due to a change I made in EditorEntityModel::RemoveEntity to try to avoid an unnecessary reparent operation - as it turned out, the parent/child data was being cached even for recreated entities and not clearing child data could cause issues
- `EntityOutlinerListModel::ProcessEntityUpdates` was emitting data changed between two indices that didn't necessarily share a parent, which is [undefined behavior](https://doc.qt.io/qt-5/qabstractitemmodel.html#dataChanged)

The other reported issues (that weren't really causing issues with `QTreeView`) were:
- The root index had flags other than `Qt::ItemIsDropEnabled`
- `rowCount` showed all columns as having children
- `parent` showed indices as being parented to a non-0 column

This change introduces fixes for the above issues, namely:
- Reverts my change to `EditorEntityModel::RemoveEntity` to ensure we don't have invalid parent/child references sitting in the cache
- Ensures `EditorEntityModelEntry` child ordering is guaranteed sorted by EntityId, to prevent the `EntityOutlinerListModel` from having indices pointed at invalid data*.
- Fixes various model sanity issues, such as `rowCount` being 0 for indices with a non-0 column

Two unit tests were added to reproduce the invalid behavior and validate the fix: TestCreateFlatHierarchyUndoAndRedoWorks and TestCreateNestedHierarchyUndoAndRedoWorks
This change focuses on correctness over performance. My subjective in-Editor outliner experience is about the same, but it may be worthwhile to expand the test coverage with a benchmarking suite to look into areas for optimization.

*As a rough illustration of the previous child ordering behavior, consider the following entity hierarchy:
```
Root (EID 9999)
|_ Child1 (EID 2)
|_ Child2 (EID 3)
|_ Child3 (EID 4)
```
With an representations like the following pseudocode:
```
// EditorEntityModel representation
EditorEntityModelEntry root;
root.children[0] = 2;
root.children[1] = 3;
root.children[2] = 4;

// EditorOutlinerListModel representation
// row, column, user data (64 bit uint)
child1 = QModelIndex(0, 0, 2)
child2 = QModelIndex(1, 0, 3)
child3 = QModelIndex(2, 0, 4)
```

When removing a child, the `EditorEntityModel` used to do roughly the following:
```
// Swap and pop the last child
int indexToRemove = 0;
swap(root.children[indexToRemove], root.children[root.children.size() - 1]);
root.children.resize(root.children.size() - 1);
model.notifyRemoved(root, indexToRemove); // model removes the row indicated

// Leading to this EditorEntityModel state
root.children[0] = 4;
root.children[1] = 3;

// And this EntityOutlinerListModel state, note that the row indices are swapped from the indices in the backing storage
child2 = QModelIndex(0, 0, 3)
child3 = QModelIndex(1, 0, 4)
```

A QModelIndex having a row that doesn't match its underlying data is undefined behavior, and was the source of an intermittent crash in our `QSortFilterProxyModel` as subsequent updates to the wrong row led to an invalid proxy state.

Signed-off-by: nvsickle <nvsickle@amazon.com>
4 years ago
amzn-mike dd47e1aa4e
Add EditorPrefabComponent to procedural prefab container entity (#4727)
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
4 years ago
hultonha 244e1b8e16 add a switch to enable/disable cursor lock (default off)
Signed-off-by: hultonha <hultonha@amazon.co.uk>
4 years ago
hultonha 67ccc438c4 remove redundant word from comment
Signed-off-by: hultonha <hultonha@amazon.co.uk>
4 years ago
hultonha 2158c8cfdf Merge branch 'development' into hultonha_LYN-7394_focus_cursor
Signed-off-by: hultonha <hultonha@amazon.co.uk>
4 years ago