ATOM-15473 added context menu to material inspector group header with expand and collapse actions

https://jira.agscollab.com/browse/ATOM-15473
This commit is contained in:
guthadam
2021-05-05 16:35:32 -05:00
parent be1e4e7b1a
commit eb847ce9fa
5 changed files with 88 additions and 24 deletions
@@ -15,6 +15,7 @@
#if !defined(Q_MOC_RUN)
#include <AzCore/Memory/SystemAllocator.h>
#include <AzQtComponents/Components/ExtendedLabel.h>
#include <QMouseEvent>
#include <QPaintEvent>
#endif
@@ -31,7 +32,11 @@ namespace AtomToolsFramework
void SetExpanded(bool expanded);
bool IsExpanded() const;
Q_SIGNALS:
void clicked(QMouseEvent* event);
protected:
void mousePressEvent(QMouseEvent* event) override;
void paintEvent(QPaintEvent* event) override;
private:
@@ -55,6 +55,12 @@ namespace AtomToolsFramework
//! Calls Rebuild for all InspectorGroupWidget, allowing for destructive UI changes
virtual void RebuildAll() = 0;
//! Expands all groups and headers
virtual void ExpandAll() = 0;
//! Collapses all groups and headers
virtual void CollapseAll() = 0;
};
using InspectorRequestBus = AZ::EBus<InspectorRequests>;
@@ -29,11 +29,8 @@ namespace Ui
namespace AtomToolsFramework
{
class InspectorPropertyGroupWidget;
}
class InspectorGroupHeaderWidget;
namespace AtomToolsFramework
{
//! Provides controls for viewing and editing object settings.
//! The settings can be divided into groups, with each one showing a subset of properties.
class InspectorWidget
@@ -66,8 +63,15 @@ namespace AtomToolsFramework
void RefreshAll() override;
void RebuildAll() override;
void ExpandAll() override;
void CollapseAll() override;
private:
void OnHeaderClicked(QMouseEvent* event, InspectorGroupHeaderWidget* groupHeader, QWidget* groupWidget);
QVBoxLayout* m_layout = nullptr;
QScopedPointer<Ui::InspectorWidget> m_ui;
AZStd::vector<InspectorGroupHeaderWidget*> m_headers;
AZStd::vector<QWidget*> m_groups;
};
} // namespace AtomToolsFramework