Input List widget.
More...
#include <Input.h>
|
std::unique_ptr< Ui::Input > | ui_ |
|
std::unique_ptr
< QStandardItemModel > | model_ |
|
omni::ui::Input::Input |
( |
QWidget * |
_parent = nullptr | ) |
|
43 QMenu* _menu =
new QMenu();
45 ui_->btnAddInput->setMenu(_menu);
46 connect(_menu,SIGNAL(triggered(QAction*)),
this,SLOT(
addInput(QAction*)));
49 connect(
ui_->inputList,SIGNAL(clicked(QModelIndex)),
this,SLOT(
changeSelection(QModelIndex)));
50 connect(
ui_->inputList,SIGNAL(activated(QModelIndex)),
this,SLOT(
changeSelection(QModelIndex)));
omni::ui::Input::~Input |
( |
| ) |
|
void omni::ui::Input::addInput |
( |
QAction * |
_action | ) |
|
|
slot |
108 auto _idInput =
dataModel()->inputs().addInput(_action->text());
109 auto& _id = _idInput.first;
110 auto& _input = _idInput.second;
114 if (_input->canAdd())
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
void omni::ui::Input::addItem |
( |
QString const & |
_id, |
|
|
input::Interface * |
_input |
|
) |
| |
|
private |
Add an item to input list widget.
231 QList<QStandardItem*> _row;
232 auto _addItem = [&](QString
const& _id) {
233 QStandardItem* _item =
new QStandardItem(_id);
234 _item->setEditable(
false);
239 _addItem(_input->getTypeId().str());
240 _addItem(_input->infoText());
242 model_->invisibleRootItem()->appendRow(_row);
243 ui_->inputList->resizeColumnToContents(0);
244 ui_->inputList->resizeColumnToContents(1);
245 ui_->inputList->resizeColumnToContents(2);
void omni::ui::Input::changeSelection |
( |
QModelIndex |
_index | ) |
|
|
slot |
Select input at model index.
180 int _row = _index.row();
182 if (_row < 1 || _row >
dataModel()->inputs().numberOfChildren())
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
bool isLocked() const
Return true if widget is locked.
Definition: Locked.h:40
void omni::ui::Input::clear |
( |
| ) |
|
|
slot |
Removes all inputs.
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
void omni::ui::Input::dataModelChanged |
( |
| ) |
|
|
signal |
void omni::ui::Input::dataToFrontend |
( |
| ) |
|
|
privatevirtual |
bool omni::ui::Input::frontendToData |
( |
| ) |
|
|
inlineprivatevirtual |
void omni::ui::Input::inputChanged |
( |
| ) |
|
|
signal |
void omni::ui::Input::inputIndexChanged |
( |
| ) |
|
|
signal |
void omni::ui::Input::inputRemoved |
( |
| ) |
|
|
signal |
void omni::ui::Input::inputUpdatedEmitter |
( |
| ) |
|
|
private |
QString omni::ui::Input::itemId |
( |
int |
_row | ) |
const |
|
private |
172 auto* _item =
model_->item(_row);
173 if (!_item)
return QString();
174 return _item->text();
void omni::ui::Input::parameterWidgetSetupOptions |
( |
QWidget * |
_paramWidget | ) |
const |
|
privatevirtual |
Additional options. Is called during setup process.
Reimplemented from omni::ui::mixin::ParameterWidget<>.
251 QSizePolicy _sizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
252 _sizePolicy.setVerticalStretch(1);
253 _paramWidget->setSizePolicy(_sizePolicy);
254 _paramWidget->setMinimumSize(QSize(0,128));
void omni::ui::Input::prepareModel |
( |
| ) |
|
|
private |
Setup the item model with columns etc.
206 model_.reset(
new QStandardItemModel());
208 model_->setColumnCount(3);
209 model_->setHeaderData(0,Qt::Horizontal,
"Id");
210 model_->setHeaderData(1,Qt::Horizontal,
"Input Type");
211 model_->setHeaderData(2,Qt::Horizontal,
"Info");
214 QList<QStandardItem*> _row;
215 QStandardItem* _hash =
new QStandardItem(
"#");
216 _hash->setEditable(
false);
217 QStandardItem* _item =
new QStandardItem(
"(no input)");
218 _item->setEditable(
false);
221 model_->invisibleRootItem()->appendRow(_row);
222 ui_->inputList->resizeColumnToContents(0);
223 ui_->inputList->resizeColumnToContents(1);
224 ui_->inputList->resizeColumnToContents(2);
void omni::ui::Input::removeSelection |
( |
| ) |
|
|
slot |
Removes all selected inputs.
145 if (
dataModel()->inputs().empty())
return;
147 int _row =
ui_->inputList->currentIndex().row();
149 if (_row < 1 || _row >
dataModel()->inputs().numberOfChildren())
return;
151 auto* _item =
model_->item(_row);
154 dataModel()->inputs().removeInput(_item->text());
155 model_->removeRows(_row,1);
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
void omni::ui::Input::selectInputId |
( |
QString const & |
_id | ) |
|
|
private |
128 auto* _current =
dataModel()->inputs().current();
130 for (
auto& _input :
dataModel()->inputs()) {
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
void omni::ui::Input::setupInputMenu |
( |
QMenu * |
_menu | ) |
|
|
private |
Find all categories
No categories exist
62 std::map<QString,QMenu*> _categoryMenus;
66 if (!_input)
continue;
68 auto _id = _idInputClass.first.str();
70 auto _categories = _input->categories();
71 if (_categories.empty()) {
72 QAction* _menuItem =
new QAction(QIcon(QString(
":/input/")+ _id + QString(
".png")),_id,_menu);
73 _menu->addAction(_menuItem);
76 for (
auto& _category : _categories) {
77 if (!_categoryMenus.count(_category)) {
78 _categoryMenus[_category] =
new QMenu(_category);
80 auto* _catMenu = _categoryMenus[_category];
81 QAction* _menuItem =
new QAction(QIcon(QString(
":/input/")+ _id + QString(
".png")),_id,_menu);
82 _catMenu->addAction(_menuItem);
87 for (
auto& _categoryMenu : _categoryMenus) {
88 _menu->addMenu(_categoryMenu.second);
static interface_type * create(const key_type &_key, const ARGS &..._args)
Instantiates an object of the class by id and constructor arguments.
Definition: factory.hpp:101
static class_map_type const & classes()
Gives readonly access to registered classes.
Definition: factory.hpp:108
void omni::ui::Input::showParameterWidget |
( |
| ) |
|
|
private |
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
std::unique_ptr<QStandardItemModel> omni::ui::Input::model_ |
|
private |
std::unique_ptr<Ui::Input> omni::ui::Input::ui_ |
|
private |
The documentation for this class was generated from the following files: