void ActionModel::update(int row) { Q_ASSERT(m_core); // need to create the row list ... grrr.. if (row >= rowCount()) return; QStandardItemList list; for (int i = 0; i < NumColumns; i++) list += item(row, i); setItems(m_core, actionOfItem(list.front()), list); }
QModelIndex ActionModel::addAction(QAction *action) { Q_ASSERT(m_core); QStandardItemList items; const Qt::ItemFlags flags = Qt::ItemIsSelectable|Qt::ItemIsDropEnabled|Qt::ItemIsDragEnabled|Qt::ItemIsEnabled; QVariant itemData; qVariantSetValue(itemData, action); for (int i = 0; i < NumColumns; i++) { QStandardItem *item = new QStandardItem; item->setData(itemData, ActionRole); item->setFlags(flags); items.push_back(item); } setItems(m_core, action, items); appendRow(items); return indexFromItem(items.front()); }