A very simple version of editing model data.
This commit is contained in:
@ -5,4 +5,14 @@ ModelItem::ModelItem(const QHash<int, QVariant> values)
|
|||||||
|
|
||||||
QVariant ModelItem::data(int role) const { return m_values.value(role); }
|
QVariant ModelItem::data(int role) const { return m_values.value(role); }
|
||||||
|
|
||||||
bool ModelItem::setData(const QVariant& value, int role) {}
|
bool ModelItem::setData(const QVariant& value, int role) {
|
||||||
|
bool valueChanged = false;
|
||||||
|
if (m_values.contains(role)) {
|
||||||
|
if (m_values.value(role) != value) {
|
||||||
|
valueChanged = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m_values[role] = value;
|
||||||
|
|
||||||
|
return valueChanged;
|
||||||
|
}
|
||||||
|
|||||||
@ -31,8 +31,7 @@ TableModel::TableModel(QObject* parent)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Qt::ItemFlags TableModel::flags(const QModelIndex& index) const {
|
Qt::ItemFlags TableModel::flags(const QModelIndex& index) const {
|
||||||
// return Qt::ItemIsEditable | QAbstractTableModel::flags(index);
|
return Qt::ItemIsEditable | QAbstractTableModel::flags(index);
|
||||||
return QAbstractTableModel::flags(index);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int TableModel::rowCount(const QModelIndex& parent) const { return m_items.size(); }
|
int TableModel::rowCount(const QModelIndex& parent) const { return m_items.size(); }
|
||||||
@ -80,17 +79,9 @@ bool TableModel::setData(const QModelIndex& index, const QVariant& value, int ro
|
|||||||
if (!checkIndex(index)) {
|
if (!checkIndex(index)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// save value from editor to member m_gridData
|
int columnRole = getRoleForColumn(index.column());
|
||||||
// m_gridData[index.row()][index.column()] = value.toString();
|
shared_ptr<ModelItem> item = m_items.at(index.row());
|
||||||
// // for presentation purposes only: build and emit a joined string
|
return item->setData(value, columnRole);
|
||||||
// QString result;
|
|
||||||
// for (int row = 0; row < ROWS; row++) {
|
|
||||||
// for (int col = 0; col < COLS; col++) {
|
|
||||||
// result += m_gridData[row][col] + ' ';
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// emit editCompleted(result);
|
|
||||||
// return true;
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user