Changing material component property inspector to dockable view pane

• Inspector is locked to a specific entity and material assignment ID
• All modifications are made via the material component request bus
• Removed complicated configuration management in editor material component
• Multiple material property inspectors can be opened
• Multiple materials across different entities can be edited simultaneously
• No longer blocks the viewport or other interactions
• Added functions to material component request bus for retrieving material slot labels, default materials, getting and setting property and UV overrides
• Added more asset related types to material property value conversion from any
• Added support for static heading widget on top of atom tools inspector, currently used for menus and messages

WIP: Still investigating intermittent crash because of corrupt asset property
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
This commit is contained in:
Guthrie Adams
2021-09-14 19:11:11 -05:00
parent e69238d4de
commit f7d4b8e70f
19 changed files with 826 additions and 556 deletions
@@ -24,6 +24,12 @@ namespace AtomToolsFramework
static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::ById;
typedef AZ::Uuid BusIdType;
//! Add heading widget above scroll area
virtual void AddHeading(QWidget* headingWidget) = 0;
//! Clear heading widgets
virtual void ClearHeading() = 0;
//! Clear all inspector groups and content
virtual void Reset() = 0;
@@ -41,6 +41,10 @@ namespace AtomToolsFramework
~InspectorWidget() override;
// InspectorRequestBus::Handler overrides...
void AddHeading(QWidget* headingWidget) override;
void ClearHeading() override;
void Reset() override;
void AddGroupsBegin() override;
@@ -77,7 +81,6 @@ namespace AtomToolsFramework
virtual void OnHeaderClicked(const AZStd::string& groupNameId, QMouseEvent* event);
private:
QVBoxLayout* m_layout = nullptr;
QScopedPointer<Ui::InspectorWidget> m_ui;
struct GroupWidgetPair