mobile cleanup: restyle construction of locationlist

See also e6e1473e6. The construction of the locationlist
was not the same as the 3 previous lists, and it needs
the inclusion of a new model file (divelocationmodel.cpp)
in the mobile app. In addition, as the mobile app is mainly
interested in a simple stringList (model) to populate a HintsText
field (or maybe later a combobox), this stringlist is added
to the model, to easy interfacing with QML.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
This commit is contained in:
Jan Mulder 2018-01-28 15:21:28 +01:00
parent 83259008e7
commit 494ad26540
8 changed files with 24 additions and 24 deletions

View file

@ -6,6 +6,7 @@ set(SUBSURFACE_GENERIC_MODELS_LIB_SRCS
diveplotdatamodel.cpp
diveimportedmodel.cpp
completionmodels.cpp
divelocationmodel.cpp
)
# models exclusively used in desktop builds
@ -25,7 +26,6 @@ set(SUBSURFACE_DESKTOP_MODELS_LIB_SRCS
divetripmodel.cpp
diveplannermodel.cpp
divecomputerextradatamodel.cpp
divelocationmodel.cpp
ssrfsortfilterproxymodel.cpp
)

View file

@ -128,9 +128,17 @@ void LocationInformationModel::update()
beginResetModel();
internalRowCount = dive_site_table.nr;
qSort(dive_site_table.dive_sites, dive_site_table.dive_sites + dive_site_table.nr, dive_site_less_than);
locationNames.clear();
for (int i = 0; i < internalRowCount; i++)
locationNames << QString(dive_site_table.dive_sites[i]->name);
endResetModel();
}
QStringList LocationInformationModel::allSiteNames() const
{
return(locationNames);
}
bool LocationInformationModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
if (!index.isValid() || index.row() < 2)

View file

@ -17,6 +17,7 @@ bool filter_same_gps_cb (QAbstractItemModel *m, int sourceRow, const QModelIndex
class LocationInformationModel : public QAbstractTableModel {
Q_OBJECT
public:
LocationInformationModel(QObject *obj = 0);
enum Columns { UUID, NAME, LATITUDE, LONGITUDE, COORDS, DESCRIPTION, NOTES, TAXONOMY_1, TAXONOMY_2, TAXONOMY_3, COLUMNS};
enum Roles { UUID_ROLE = Qt::UserRole + 1 };
static LocationInformationModel *instance();
@ -29,9 +30,10 @@ public:
public slots:
void update();
QStringList allSiteNames() const;
private:
LocationInformationModel(QObject *obj = 0);
int internalRowCount;
QStringList locationNames;
QLineEdit *textField;
};