![]() |
NDEVR
API Documentation
|
A base class for tables wishing to show columns of DesignObject properties. More...
Public Member Functions | |
| 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 ¶meter, 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 ¶meter, 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. | |
| Button * | addNewButton (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< UUID > | selectedIDs () 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. | |
Protected Member Functions | |
| 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 | |
| QHBoxLayout * | m_bottom_button_layout |
| The layout for buttons at the bottom of the table. | |
| Button * | m_edit_button |
| The button for toggling edit mode. | |
| QTModelManager * | m_manager |
| The model manager providing design objects. | |
| DesignObjectSearchWidget * | m_search_text |
| The search text input widget. | |
| QWidget * | m_search_widget |
| The container widget for the search bar. | |
| DesignSortFilterProxyModel * | m_sort_model |
| The sort/filter proxy model. | |
| DesignPropertyTableView * | m_table_view |
| The table view displaying design object properties. | |
| DesignTableModel * | m_view_model |
| The underlying table model. | |
A base class for tables wishing to show columns of DesignObject properties.
Definition at line 143 of file DesignPropertyTable.h.
|
explicit |
Constructs a DesignPropertyTable without a model manager.
| [in] | parent | The parent widget. |
Referenced by DesignPropertyTable(), ModelTileTable::ModelTileTable(), and ModelTileTable::ModelTileTable().
|
explicit |
Constructs a DesignPropertyTable with a model manager.
| [in] | manager | The QTModelManager providing design objects. |
| [in] | parent | The parent widget. |
References DesignPropertyTable().
| uint04 DesignPropertyTable::addColumn | ( | const DesignParameter & | parameter, |
| bool | is_editable = true ) |
Adds a column displaying the given design parameter.
| [in] | parameter | The design parameter to display. |
| [in] | is_editable | Whether the column allows editing. |
| uint04 DesignPropertyTable::addColumn | ( | const ModelTableColumnSpec & | column | ) |
Adds a column from a fully specified ModelTableColumnSpec.
| [in] | column | The column specification. |
| uint04 DesignPropertyTable::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.
| [in] | custom_column_name | The column header name. |
| [in] | parameter | The design parameter to display. |
| [in] | is_editable | Whether the column allows editing. |
| uint04 DesignPropertyTable::addColumn | ( | const TranslatedString & | name, |
| const StringView & | icon, | ||
| const std::function< void(UUID)> & | callback ) |
Adds a button column with a custom icon and click callback.
| [in] | name | The column header name. |
| [in] | icon | The icon name for the button. |
| [in] | callback | The function called with the object UUID when clicked. |
Adds a column displaying the given NDPO property.
| [in] | property | The design object property. |
| [in] | is_editable | Whether the column allows editing. |
Referenced by ModelTileTable::init().
| void DesignPropertyTable::addListItem | ( | const UUID & | id | ) |
Adds a single object to the table.
| [in] | id | The UUID of the object to add. |
| uint04 DesignPropertyTable::addMaterialDataColumn | ( | const TranslatedString & | custom_column_name = TranslatedString() | ) |
Adds a column showing material data for each design object.
| [in] | custom_column_name | An optional custom column header name. |
| Button * DesignPropertyTable::addNewButton | ( | 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.
| [in] | callback | The function called when the button is clicked. |
| [in] | new_title | The button label. |
| [in] | add_icon | The icon name for the button. |
Referenced by TransitIncidentVehiclesEditor::TransitIncidentVehiclesEditor(), and ModelTileTable::init().
| void DesignPropertyTable::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.
| [in] | callback | The function called when the button is clicked. |
| [in] | new_title | The button label. |
| [in] | add_icon | The icon name for the button. |
| uint04 DesignPropertyTable::addParentPathColumn | ( | const TranslatedString & | custom_column_name = TranslatedString() | ) |
Adds a column showing the parent path of each design object.
| [in] | custom_column_name | An optional custom column header name. |
| void DesignPropertyTable::addWidget | ( | QWidget * | widget | ) |
Adds a custom widget to the bottom button bar.
| [in] | widget | The widget to add. |
|
protected |
Slot called to display a context menu at the given position.
| [in] | pos | The position in widget coordinates. |
|
override |
Applies the current search filter and sets the list of objects to display.
| [in] | ids | The UUIDs of the objects to filter and display. |
| bool DesignPropertyTable::isEditable | ( | ) |
Returns whether the table is currently editable.
|
protected |
Slot called when a table row is selected.
| [in] | index | The model index of the selected row. |
|
inline |
Returns the current selection callback.
Definition at line 327 of file DesignPropertyTable.h.
References m_sort_model.
Returns the UUIDs of the currently selected rows.
| void DesignPropertyTable::setAddedFilter | ( | const std::function< bool(const Model &)> & | callback | ) |
Sets a custom filter callback applied when objects are added.
| [in] | callback | A function returning true for models that should be included. |
Referenced by ModelTileTable::init().
| void DesignPropertyTable::setColumnEditable | ( | uint04 | column, |
| bool | editable ) |
Sets whether a specific column is editable.
| [in] | column | The column index. |
| [in] | editable | Whether editing is allowed for that column. |
| void DesignPropertyTable::setColumnVisible | ( | uint04 | column, |
| bool | visible ) |
Shows or hides a specific column.
| [in] | column | The column index. |
| [in] | visible | Whether the column should be visible. |
| void DesignPropertyTable::setEditable | ( | bool | editable | ) |
Sets whether the entire table is editable.
| [in] | editable | Whether editing is allowed. |
Referenced by ModelTileTable::init().
Sets the list of objects to display in the table.
| [in] | ids | The UUIDs of the objects to display. |
|
virtual |
Sets the model manager and connects it to the table model.
| [in] | manager | The QTModelManager instance. |
Reimplemented in BuildWorkflowTable, and CustomerJobsList.
Sets the table contents from a buffer of Models.
| [in] | models | The models to display. |
Referenced by ModelTileTable::setTarget().
|
inline |
Sets the callback invoked when a row is selected.
| [in] | callback | The callback receiving the selected Model and popup info. |
Definition at line 317 of file DesignPropertyTable.h.
References m_sort_model.
| void DesignPropertyTable::setSortCallback | ( | const std::function< bool(const Model &a, const Model &b)> & | callback | ) |
Sets a custom sort comparison callback for ordering rows.
| [in] | callback | A comparison function returning true if a should appear before b. |
| void DesignPropertyTable::setTypeAddedFilter | ( | const String & | type | ) |
Sets a type-based filter so only objects of the given type appear when added.
| [in] | type | The design object type string to filter on. |
| void DesignPropertyTable::showSearch | ( | bool | show_search | ) |
Shows or hides the search bar.
| [in] | show_search | Whether to show the search bar. |
Referenced by OfficersEditor::OfficersEditor(), TransitIncidentPedestrianEditor::TransitIncidentPedestrianEditor(), TransitIncidentVehiclesEditor::TransitIncidentVehiclesEditor(), and WitnessEditor::WitnessEditor().
| void DesignPropertyTable::updateRow | ( | uint04 | row | ) |
Updates the data display for a specific row.
| [in] | row | The row index to update. |