From d6010b5155e7c1b03d1872eb3ed75c39e070ad55 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Tue, 9 Oct 2018 12:26:58 +0200 Subject: Dive locations: factor out common code of models For increased maintainability, use the same columns, roles and the same accessor function for both dive-site models. Signed-off-by: Berthold Stoeger --- qt-models/divelocationmodel.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'qt-models/divelocationmodel.cpp') diff --git a/qt-models/divelocationmodel.cpp b/qt-models/divelocationmodel.cpp index ba9dede0d..4411f5d98 100644 --- a/qt-models/divelocationmodel.cpp +++ b/qt-models/divelocationmodel.cpp @@ -32,20 +32,15 @@ int LocationInformationModel::rowCount(const QModelIndex&) const return dive_site_table.nr; } -QVariant LocationInformationModel::data(const QModelIndex &index, int role) const +QVariant LocationInformationModel::getDiveSiteData(const struct dive_site *ds, int column, int role) { - if (!index.isValid()) - return QVariant(); - - struct dive_site *ds = get_dive_site(index.row()); - if (!ds) return QVariant(); switch(role) { case Qt::EditRole: case Qt::DisplayRole : - switch(index.column()) { + switch(column) { case UUID: return ds->uuid; case NAME: return ds->name; case LATITUDE: return ds->latitude.udeg; @@ -70,6 +65,15 @@ QVariant LocationInformationModel::data(const QModelIndex &index, int role) cons return QVariant(); } +QVariant LocationInformationModel::data(const QModelIndex &index, int role) const +{ + if (!index.isValid()) + return QVariant(); + + struct dive_site *ds = get_dive_site(index.row()); + return getDiveSiteData(ds, index.column(), role); +} + void LocationInformationModel::update() { beginResetModel(); -- cgit v1.2.3-70-g09d2