Cleanup: return value type from WeightModel::weightSystemAt()

There is only one caller of WeightModel::weightSystemAt() and that
certainly does not need a pointer into the weightsystem-table of
the current dive. Return a value type instead of a pointer.

This allows us to mark WeightModel::weightSystemAt() as const and
use it from WeightModel::data(). Slightly cleaner code.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-11-03 15:25:23 +01:00 committed by Dirk Hohndel
parent b3f530bfb9
commit 2cfb35b6d7
3 changed files with 7 additions and 7 deletions

View file

@ -371,9 +371,9 @@ QWidget *WSInfoDelegate::createEditor(QWidget *parent, const QStyleOptionViewIte
/* First, call the combobox-create editor, it will setup our globals. */
QWidget *editor = ComboBoxDelegate::createEditor(parent, option, index);
WeightModel *mymodel = qobject_cast<WeightModel *>(currCombo.model);
weightsystem_t *ws = mymodel->weightSystemAt(index);
currWeight.type = ws->description;
currWeight.weight = ws->weight.grams;
weightsystem_t ws = mymodel->weightSystemAt(index);
currWeight.type = ws.description;
currWeight.weight = ws.weight.grams;
return editor;
}

View file

@ -19,14 +19,14 @@ WeightModel::WeightModel(QObject *parent) : CleanerTableModel(parent),
connect(&diveListNotifier, &DiveListNotifier::weightRemoved, this, &WeightModel::weightRemoved);
}
weightsystem_t *WeightModel::weightSystemAt(const QModelIndex &index)
weightsystem_t WeightModel::weightSystemAt(const QModelIndex &index)
{
int row = index.row();
if (row < 0 || row >= d->weightsystems.nr) {
qWarning("WeightModel: Accessing invalid weightsystem %d (of %d)", row, d->weightsystems.nr);
return nullptr;
return { { 0 }, nullptr };
}
return &d->weightsystems.weightsystems[index.row()];
return d->weightsystems.weightsystems[index.row()];
}
void WeightModel::clear()

View file

@ -25,7 +25,7 @@ public:
void passInData(const QModelIndex &index, const QVariant &value);
void clear();
void updateDive(dive *d);
weightsystem_t *weightSystemAt(const QModelIndex &index);
weightsystem_t weightSystemAt(const QModelIndex &index);
bool changed;
public