Undo: make weight-deletion an undoable action

This one is a bit more complicated than weight adding, because the
multiple-dive case is not well defined. If multiple dives are selected,
this implementation will search for weights that are identical to the
weight deleted in the currently shown dive. The position of the weight
in the list is ignored.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-11-03 15:04:48 +01:00 committed by Dirk Hohndel
parent b3253304a5
commit b3f530bfb9
9 changed files with 111 additions and 18 deletions

View file

@ -29,17 +29,6 @@ weightsystem_t *WeightModel::weightSystemAt(const QModelIndex &index)
return &d->weightsystems.weightsystems[index.row()];
}
void WeightModel::remove(QModelIndex index)
{
if (index.column() != REMOVE || !d)
return;
beginRemoveRows(QModelIndex(), index.row(), index.row());
rows--;
remove_weightsystem(d, index.row());
changed = true;
endRemoveRows();
}
void WeightModel::clear()
{
updateDive(nullptr);
@ -96,7 +85,6 @@ void WeightModel::passInData(const QModelIndex &index, const QVariant &value)
}
}
bool WeightModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
QString vString = value.toString();