void DataDocument::restoreEditState(const DataDocument::EditState &edit_state) { TableModel *m = model(); int ri = currentModelRow(); QMapIterator<int, QVariant> it(edit_state.dirtyValues); while (it.hasNext()) { it.next(); m->setValue(ri, it.key(), it.value()); m->setDirty(ri, it.key(), true); } setMode(edit_state.editMode); if(edit_state.editMode == ModeInsert || edit_state.editMode == ModeCopy) m->tableRef().rowRef(ri).setInsert(true); }
void DataDocument::setValue(const QString &data_id, const QVariant &val) { qfLogFuncFrame() << "data_id:" << data_id << "val:" << val.toString(); if(isEmpty()) { qfWarning() << "data_id:" << data_id << "val:" << val.toString() << "setValue() in empty document"; return; } if(data_id.isEmpty()) { qfWarning() << "data_id is empty"; return; } QVariant old_val; TableModel *m = model(); int r = currentModelRow(); old_val = m->value(r, data_id); if(m->setValue(r, data_id, val)) { if(old_val != val) { emit valueChanged(data_id, old_val, val); } } }