XII Release 0.1.0
Loading...
Searching...
No Matches
xiiQtExposedParametersPropertyWidget Class Reference

#include <ExposedParametersPropertyWidget.moc.h>

Inheritance diagram for xiiQtExposedParametersPropertyWidget:
[legend]

Public Member Functions

virtual void SetSelection (const xiiHybridArray< xiiPropertySelection, 8 > &items) override
Public Member Functions inherited from xiiQtPropertyStandardTypeContainerWidget
 xiiQtPropertyStandardTypeContainerWidget ()
 *** xiiQtPropertyStandardTypeContainerWidget ***
Public Member Functions inherited from xiiQtPropertyContainerWidget
 xiiQtPropertyContainerWidget ()
 *** xiiQtPropertyContainerWidget ***
virtual bool HasLabel () const override
 If this returns true (default), a QLabel is created and the text that GetLabel() returns is displayed.
virtual void SetIsDefault (bool bIsDefault) override
 Whether the variable that the widget represents is currently set to the default value or has been modified.
Public Member Functions inherited from xiiQtPropertyWidget
 xiiQtPropertyWidget ()
 *** BASE ***
void Init (xiiQtPropertyGridWidget *pGrid, xiiObjectAccessorBase *pObjectAccessor, const xiiRTTI *pType, const xiiAbstractProperty *pProp)
const xiiAbstractProperty * GetProperty () const
const xiiHybridArray< xiiPropertySelection, 8 > & GetSelection () const
virtual const char * GetLabel (xiiStringBuilder &ref_sTmp) const
 The return value is used to display a label, if HasLabel() returns true.
virtual void ExtendContextMenu (QMenu &ref_menu)
bool GetCommonVariantSubType (const xiiHybridArray< xiiPropertySelection, 8 > &items, const xiiAbstractProperty *pProperty, xiiVariantType::Enum &out_type)
xiiVariant GetCommonValue (const xiiHybridArray< xiiPropertySelection, 8 > &items, const xiiAbstractProperty *pProperty)
void PrepareToDie ()
virtual void SetReadOnly (bool bReadOnly=true)
 By default disables the widget, but can be overridden to make a widget more interactable (for example to be able to copy text from it).

Protected Member Functions

virtual void OnInit () override
virtual void UpdateElement (xiiUInt32 index) override
virtual void UpdatePropertyMetaState () override
virtual void GetRequiredElements (xiiDynamicArray< xiiVariant > &out_keys) const override
Protected Member Functions inherited from xiiQtPropertyStandardTypeContainerWidget
virtual xiiQtGroupBoxBase * CreateElement (QWidget *pParent) override
virtual xiiQtPropertyWidget * CreateWidget (xiiUInt32 index) override
virtual Element & AddElement (xiiUInt32 index) override
virtual void RemoveElement (xiiUInt32 index) override
Protected Member Functions inherited from xiiQtPropertyContainerWidget
void UpdateElements ()
virtual xiiPropertyCategory::Enum GetContainerCategory () const
 Some containers like xiiVariant can be both a map or an array so we can't reply on the property type alone. For these containers, this method can be overwritten to retrieve the category from something other than m_pProp->GetCategory().
void Clear ()
void DeleteItems (xiiHybridArray< xiiPropertySelection, 8 > &items)
void MoveItems (xiiHybridArray< xiiPropertySelection, 8 > &items, xiiInt32 iMove)
virtual void DoPrepareToDie () override
virtual void dragEnterEvent (QDragEnterEvent *event) override
virtual void dragMoveEvent (QDragMoveEvent *event) override
virtual void dragLeaveEvent (QDragLeaveEvent *event) override
virtual void dropEvent (QDropEvent *event) override
virtual void paintEvent (QPaintEvent *event) override
virtual void showEvent (QShowEvent *event) override
Protected Member Functions inherited from xiiQtPropertyWidget
void Broadcast (xiiPropertyEvent::Type type)
void PropertyChangedHandler (const xiiPropertyEvent &ed)
bool IsUndead () const
virtual bool eventFilter (QObject *pWatched, QEvent *pEvent) override

Additional Inherited Members

Public Slots inherited from xiiQtPropertyContainerWidget
void OnElementButtonClicked ()
void OnDragStarted (QMimeData &ref_mimeData)
void OnContainerContextMenu (const QPoint &pt)
void OnCustomElementContextMenu (const QPoint &pt)
Public Slots inherited from xiiQtPropertyWidget
void OnCustomContextMenu (const QPoint &pt)
Static Public Member Functions inherited from xiiQtPropertyWidget
static const xiiRTTI * GetCommonBaseType (const xiiHybridArray< xiiPropertySelection, 8 > &items)
static QColor SetPaletteBackgroundColor (xiiColorGammaUB inputColor, QPalette &ref_palette)
Protected Attributes inherited from xiiQtPropertyContainerWidget
QHBoxLayout * m_pLayout
xiiQtGroupBoxBase * m_pGroup
QVBoxLayout * m_pGroupLayout
xiiQtAddSubElementButton * m_pAddButton = nullptr
QPalette m_Pal
xiiHybridArray< xiiVariant, 16 > m_Keys
xiiDynamicArray< Element > m_Elements
xiiInt32 m_iDropSource = -1
xiiInt32 m_iDropTarget = -1
Protected Attributes inherited from xiiQtPropertyWidget
xiiQtPropertyGridWidget * m_pGrid = nullptr
xiiObjectAccessorBase * m_pObjectAccessor = nullptr
const xiiRTTI * m_pType = nullptr
const xiiAbstractProperty * m_pProp = nullptr
xiiHybridArray< xiiPropertySelection, 8 > m_Items
bool m_bIsDefault
 Whether the variable that the widget represents is currently set to the default value or has been modified.

Detailed Description

Custom widget for properties annotated with the xiiExposedParametersAttribute attribute. Technically exposed parameters are stored as an xiiVariantDictionary but that leaves much to be desired for usability. This class uses xiiExposedParameterCommandAccessor to always show all exposed parameters in the dictionary even if none were overwritten. Additionally, xiiExposedParametersAsTypeCommandAccessor is used to project the exposed parameters into a phantom type widget to make editing exposed parameters indistinguishable from editing a normal type object. A button can be used to switch between the two representations.

Member Function Documentation

◆ GetRequiredElements()

void xiiQtExposedParametersPropertyWidget::GetRequiredElements ( xiiDynamicArray< xiiVariant > & out_keys) const
overrideprotectedvirtual

Reimplemented from xiiQtPropertyContainerWidget.

◆ OnInit()

void xiiQtExposedParametersPropertyWidget::OnInit ( )
overrideprotectedvirtual

Reimplemented from xiiQtPropertyContainerWidget.

◆ SetSelection()

void xiiQtExposedParametersPropertyWidget::SetSelection ( const xiiHybridArray< xiiPropertySelection, 8 > & items)
overridevirtual

This is called whenever the selection in the editor changes and thus the widget may need to display a different value.

If the array holds more than one element, the user selected multiple objects. In this case, the code should check whether the values differ across the selected objects and if so, the widget should display "multiple values".

Reimplemented from xiiQtPropertyContainerWidget.

◆ UpdateElement()

void xiiQtExposedParametersPropertyWidget::UpdateElement ( xiiUInt32 index)
overrideprotectedvirtual

◆ UpdatePropertyMetaState()

void xiiQtExposedParametersPropertyWidget::UpdatePropertyMetaState ( )
overrideprotectedvirtual

Reimplemented from xiiQtPropertyContainerWidget.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Editor/EditorFramework/PropertyGrid/ExposedParametersPropertyWidget.moc.h
  • /home/runner/work/XII/XII/Source/Editor/EditorFramework/PropertyGrid/Implementation/ExposedParametersPropertyWidget.cpp