NDEVR
API Documentation
ModelTileTable

A table widget for displaying and managing ModelTileGroup children of a parent model. More...

Inheritance diagram for ModelTileTable:
[legend]
Collaboration diagram for ModelTileTable:
[legend]

Public Member Functions

 ModelTileTable (const DynamicPointer< QTDesignObject > &target, QWidget *parent=nullptr)
 Constructs the tile table bound to the given design object.
 ModelTileTable (QWidget *parent=nullptr)
 Constructs the tile table with no initial target.
void init ()
 Initializes columns, filters, sorting, and the new-item button.
void setTarget (const DynamicPointer< QTDesignObject > &target)
 Sets the target design object and populates the table with its tile group descendants.
Public Member Functions inherited from DesignPropertyTable
 DesignPropertyTable (QTModelManager *manager, QWidget *parent=nullptr)
 Constructs a DesignPropertyTable with a model manager.
 DesignPropertyTable (QWidget *parent=nullptr)
 Constructs a DesignPropertyTable without a model manager.
uint04 addColumn (const DesignParameter &parameter, bool is_editable=true)
 Adds a column displaying the given design parameter.
uint04 addColumn (const ModelTableColumnSpec &column)
 Adds a column from a fully specified ModelTableColumnSpec.
uint04 addColumn (const TranslatedString &custom_column_name, const DesignParameter &parameter, bool is_editable=true)
 Adds a column with a custom name displaying the given design parameter.
uint04 addColumn (const TranslatedString &name, const StringView &icon, const std::function< void(UUID)> &callback)
 Adds a button column with a custom icon and click callback.
uint04 addColumn (NDPO property, bool is_editable=true)
 Adds a column displaying the given NDPO property.
void addListItem (const UUID &id)
 Adds a single object to the table.
uint04 addMaterialDataColumn (const TranslatedString &custom_column_name=TranslatedString())
 Adds a column showing material data for each design object.
ButtonaddNewButton (std::function< void(Button *)> callback, const TranslatedString &new_title=_t("Add New"), const StringView &add_icon="plus")
 Adds an "Add New" button to the bottom button bar.
void addOpenButton (std::function< void(Button *)> callback, const TranslatedString &new_title=_t("Open"), const StringView &add_icon="open")
 Adds an "Open" button to the bottom button bar.
uint04 addParentPathColumn (const TranslatedString &custom_column_name=TranslatedString())
 Adds a column showing the parent path of each design object.
void addWidget (QWidget *widget)
 Adds a custom widget to the bottom button bar.
bool event (QEvent *event) override
 Handles events, including custom polish events for deferred setup.
void filterAndSetList (Buffer< UUID > ids)
 Applies the current search filter and sets the list of objects to display.
bool isEditable ()
 Returns whether the table is currently editable.
const std::function< void(Model, PopupInfo)> & selectedCallback () const
 Returns the current selection callback.
Buffer< UUIDselectedIDs () const
 Returns the UUIDs of the currently selected rows.
void setAddedFilter (const std::function< bool(const Model &)> &callback)
 Sets a custom filter callback applied when objects are added.
void setColumnEditable (uint04 column, bool editable)
 Sets whether a specific column is editable.
void setColumnVisible (uint04 column, bool visible)
 Shows or hides a specific column.
void setEditable (bool editable)
 Sets whether the entire table is editable.
void setList (const Buffer< UUID > &ids)
 Sets the list of objects to display in the table.
virtual void setModelManager (QTModelManager *manager)
 Sets the model manager and connects it to the table model.
void setModels (const Buffer< Model > &models)
 Sets the table contents from a buffer of Models.
void setSelectedCallback (const std::function< void(Model, PopupInfo)> &callback)
 Sets the callback invoked when a row is selected.
void setSortCallback (const std::function< bool(const Model &a, const Model &b)> &callback)
 Sets a custom sort comparison callback for ordering rows.
void setTypeAddedFilter (const String &type)
 Sets a type-based filter so only objects of the given type appear when added.
void setup ()
 Performs initial setup of the table layout, search bar, and edit button.
void setupTable ()
 Sets up the table view, proxy model, and delegate.
void showSearch (bool show_search)
 Shows or hides the search bar.
void updateRow (uint04 row)
 Updates the data display for a specific row.
void viewSettingsSignal ()
 Emitted when the view settings should be shown or updated.

Public Attributes

DynamicPointer< QTDesignObjectm_object_parent
 The parent design object whose tile group children are displayed.

Additional Inherited Members

Protected Member Functions inherited from DesignPropertyTable
void contextMenu (const QPoint &pos)
 Slot called to display a context menu at the given position.
void selected (QModelIndex index)
 Slot called when a table row is selected.
Protected Attributes inherited from DesignPropertyTable
QHBoxLayout * m_bottom_button_layout
 The layout for buttons at the bottom of the table.
Buttonm_edit_button
 The button for toggling edit mode.
QTModelManagerm_manager
 The model manager providing design objects.
DesignObjectSearchWidgetm_search_text
 The search text input widget.
QWidget * m_search_widget
 The container widget for the search bar.
DesignSortFilterProxyModelm_sort_model
 The sort/filter proxy model.
DesignPropertyTableViewm_table_view
 The table view displaying design object properties.
DesignTableModelm_view_model
 The underlying table model.

Detailed Description

A table widget for displaying and managing ModelTileGroup children of a parent model.


Provides columns for icon, name, and visibility, with the ability to create new tile groups.

Definition at line 14 of file ModelTileTable.h.

Constructor & Destructor Documentation

◆ ModelTileTable() [1/2]

ModelTileTable::ModelTileTable ( QWidget * parent = nullptr)
inline

Constructs the tile table with no initial target.

Parameters
[in]parentThe optional parent widget.

Definition at line 21 of file ModelTileTable.h.

References DesignPropertyTable::DesignPropertyTable(), and init().

◆ ModelTileTable() [2/2]

ModelTileTable::ModelTileTable ( const DynamicPointer< QTDesignObject > & target,
QWidget * parent = nullptr )
inline

Constructs the tile table bound to the given design object.

Parameters
[in]targetThe design object whose tile group children are displayed.
[in]parentThe optional parent widget.

Definition at line 31 of file ModelTileTable.h.

References DesignPropertyTable::DesignPropertyTable(), init(), m_object_parent, and setTarget().

Member Function Documentation

◆ setTarget()

void ModelTileTable::setTarget ( const DynamicPointer< QTDesignObject > & target)
inline

Sets the target design object and populates the table with its tile group descendants.

Parameters
[in]targetThe design object whose tile group children are displayed.

Definition at line 42 of file ModelTileTable.h.

References Model::getDescendantsByType(), m_object_parent, DesignPropertyTable::setModels(), and ModelTileGroup::TypeName().

Referenced by ModelTileTable().


The documentation for this class was generated from the following file: