mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
Mobile: provide direct access to dives in DiveListModel
Accesses were via DiveObjectHelpers. Provide a direct access to struct dive *. Use this for the filter - there is no point in mass generating DiveHelperObjects in the filter code. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
ca939300e2
commit
62f1a92068
2 changed files with 14 additions and 6 deletions
|
@ -51,8 +51,8 @@ void DiveListSortModel::resetFilter()
|
|||
bool DiveListSortModel::filterAcceptsRow(int source_row, const QModelIndex &) const
|
||||
{
|
||||
DiveListModel *mySourceModel = qobject_cast<DiveListModel *>(sourceModel());
|
||||
DiveObjectHelper d = mySourceModel->at(source_row);
|
||||
return d && !d.getDive()->hidden_by_filter;
|
||||
const dive *d = mySourceModel->getDive(source_row);
|
||||
return d && !d->hidden_by_filter;
|
||||
}
|
||||
|
||||
int DiveListSortModel::shown()
|
||||
|
@ -262,11 +262,18 @@ DiveListModel *DiveListModel::instance()
|
|||
return m_instance;
|
||||
}
|
||||
|
||||
DiveObjectHelper DiveListModel::at(int i)
|
||||
struct dive *DiveListModel::getDive(int i)
|
||||
{
|
||||
if (i < 0 || i >= dive_table.nr) {
|
||||
qWarning("DiveListModel::at(): accessing invalid dive with id %d", i);
|
||||
return DiveObjectHelper(); // Returns an invalid DiveObjectHelper that will crash on access.
|
||||
qWarning("DiveListModel::getDive(): accessing invalid dive with id %d", i);
|
||||
return nullptr;
|
||||
}
|
||||
return DiveObjectHelper(dive_table.dives[i]);
|
||||
return dive_table.dives[i];
|
||||
}
|
||||
|
||||
DiveObjectHelper DiveListModel::at(int i)
|
||||
{
|
||||
// For an invalid id, returns an invalid DiveObjectHelper that will crash on access.
|
||||
dive *d = getDive(i);
|
||||
return d ? DiveObjectHelper(d) : DiveObjectHelper();
|
||||
}
|
||||
|
|
|
@ -55,6 +55,7 @@ public:
|
|||
void removeDiveById(int id);
|
||||
void updateDive(int i, dive *d);
|
||||
void reload();
|
||||
struct dive *getDive(int i);
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const;
|
||||
int getDiveIdx(int id) const;
|
||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
|
||||
|
|
Loading…
Reference in a new issue