qt: refactor adding items to assignable item model to its own function

This commit is contained in:
Jussi Kuokkanen 2019-11-26 12:43:59 +02:00
parent 1ec8a5c6a1
commit ff20e91cb7
2 changed files with 30 additions and 21 deletions

View File

@ -65,29 +65,10 @@ void AssignableWidget::genAssignableTree(QTreeView *treeView) {
qDebug() << node->name;
}
// List for adding the name and editor on the same row
QList <QStandardItem*> rowItems;
QStandardItem *nameItem = new QStandardItem;
nameItem->setText(node->name);
nameItem->setEditable(false);
rowItems.append(nameItem);
// Don't add editor item for TC_ASSIGNABLE_NONE nodes
if (node->value_category != TC_ASSIGNABLE_NONE) {
QStandardItem *editorItem = new QStandardItem;
QVariant v;
AssignableData data(node);
v.setValue(data);
editorItem->setData(v, Qt::UserRole);
//editorItem->setText(node->name);
rowItems.append(editorItem);
}
item->appendRow(rowItems);
QStandardItem *newItem = addAssignableItem(node, item);
for (uint32_t i = 0; i < node->children_count; i++) {
traverse(node->children_nodes[i], nameItem);
traverse(node->children_nodes[i], newItem);
}
};
@ -114,3 +95,29 @@ void AssignableWidget::genAssignableTree(QTreeView *treeView) {
m_assignableTreeView->setEditTriggers(QAbstractItemView::AllEditTriggers);
}
QStandardItem *AssignableWidget::addAssignableItem(tc_assignable_node_t *node, QStandardItem *parent) {
if (!node || !node->name) {
return nullptr;
}
QList <QStandardItem*> rowItems;
QStandardItem *nameItem = new QStandardItem;
nameItem->setText(node->name);
nameItem->setEditable(false);
rowItems.append(nameItem);
// Don't add editor item for TC_ASSIGNABLE_NONE nodes
if (node->value_category != TC_ASSIGNABLE_NONE) {
QStandardItem *editorItem = new QStandardItem;
QVariant v;
v.setValue(AssignableData(node));
editorItem->setData(v, Qt::UserRole);
//editorItem->setText(node->name);
rowItems.append(editorItem);
}
parent->appendRow(rowItems);
return nameItem;
}

View File

@ -28,4 +28,6 @@ private:
AssignableManager *m_assignableManager;
void genAssignableTree(QTreeView *treeView);
QStandardItem *addAssignableItem(tc_assignable_node_t *node, QStandardItem *parent);
};