diff --git a/qt-models/divelocationmodel.cpp b/qt-models/divelocationmodel.cpp index 8d7faa890..778496a89 100644 --- a/qt-models/divelocationmodel.cpp +++ b/qt-models/divelocationmodel.cpp @@ -29,7 +29,7 @@ int LocationInformationModel::columnCount(const QModelIndex &parent) const int LocationInformationModel::rowCount(const QModelIndex &parent) const { Q_UNUSED(parent); - return internalRowCount + 1; + return internalRowCount + 2; } QVariant LocationInformationModel::data(const QModelIndex &index, int role) const @@ -38,17 +38,19 @@ QVariant LocationInformationModel::data(const QModelIndex &index, int role) cons return QVariant(); // Special case to handle the 'create dive site' with name. - if (index.row() == 0) { + if (index.row() < 2) { if (index.column() == UUID) return 0; switch(role) { case Qt::DisplayRole : { - struct dive_site *ds; - int i; - for_each_dive_site(i, ds) { - QString dsName(ds->name); - if (dsName.startsWith(textField->text())) - return dsName; + if (index.row() == 1) { + struct dive_site *ds; + int i; + for_each_dive_site(i, ds) { + QString dsName(ds->name); + if (dsName.startsWith(textField->text())) + return dsName; + } } return textField->text(); } @@ -60,8 +62,8 @@ QVariant LocationInformationModel::data(const QModelIndex &index, int role) cons } } - // The dive sites are -1 because of the first item. - struct dive_site *ds = get_dive_site(index.row()-1); + // The dive sites are -2 because of the first two items. + struct dive_site *ds = get_dive_site(index.row() - 2); if (!ds) return QVariant(); @@ -112,7 +114,7 @@ int32_t LocationInformationModel::addDiveSite(const QString& name, int lon, int latitude.udeg = lat; longitude.udeg = lon; - beginInsertRows(QModelIndex(), dive_site_table.nr + 1, dive_site_table.nr + 1); + beginInsertRows(QModelIndex(), dive_site_table.nr + 2, dive_site_table.nr + 2); uint32_t uuid = create_dive_site_with_gps(name.toUtf8().data(), latitude, longitude); qSort(dive_site_table.dive_sites, dive_site_table.dive_sites + dive_site_table.nr, dive_site_less_than); internalRowCount = dive_site_table.nr; @@ -122,7 +124,7 @@ int32_t LocationInformationModel::addDiveSite(const QString& name, int lon, int bool LocationInformationModel::setData(const QModelIndex &index, const QVariant &value, int role) { - if (!index.isValid() || index.row() == 0) + if (!index.isValid() || index.row() < 2) return false; if (role != Qt::EditRole) @@ -140,7 +142,7 @@ bool LocationInformationModel::removeRows(int row, int count, const QModelIndex if(row >= rowCount()) return false; - beginRemoveRows(QModelIndex(), row + 1, row + 1); + beginRemoveRows(QModelIndex(), row + 2, row + 2); struct dive_site *ds = get_dive_site(row); if (ds) delete_dive_site(ds->uuid); diff --git a/qt-ui/locationinformation.cpp b/qt-ui/locationinformation.cpp index 39a8341cd..2e296450d 100644 --- a/qt-ui/locationinformation.cpp +++ b/qt-ui/locationinformation.cpp @@ -256,8 +256,8 @@ void LocationManagementEditHelper::handleActivation(const QModelIndex& activated activated.row(), LocationInformationModel::UUID); last_uuid = uuidIdx.data().toInt(); - // Special case: first option, add dive site. - if (activated.row() == 0) { + // Special case: first two options: add dive site. + if (activated.row() < 2) { qDebug() << "Setting to " << activated.data().toString(); emit setLineEditText(activated.data().toString()); } diff --git a/qt-ui/modeldelegates.cpp b/qt-ui/modeldelegates.cpp index 4a54eebf0..a3978ce54 100644 --- a/qt-ui/modeldelegates.cpp +++ b/qt-ui/modeldelegates.cpp @@ -503,9 +503,8 @@ void LocationFilterDelegate::paint(QPainter *painter, const QStyleOptionViewItem struct dive_site *ds = get_dive_site_by_uuid( index.model()->data(index.model()->index(index.row(),0)).toInt() ); - //Special case: do not show name, but instead, show - if (index.row() == 0) { + if (index.row() < 2) { diveSiteName = index.data().toString(); bottomText = index.data(Qt::ToolTipRole).toString(); goto print_part;