Merge pull request #411 from AdenKoperczak/fix_location_markers_dialog

Use data role to get marker id for location marker dialog.
This commit is contained in:
Dan Paulat 2025-04-04 20:37:49 -05:00 committed by GitHub
commit 7c06aa8e6e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 14 additions and 13 deletions

View file

@ -100,6 +100,11 @@ QVariant MarkerModel::data(const QModelIndex& index, int role) const
return QVariant(); return QVariant();
} }
if (role == Qt::ItemDataRole::UserRole)
{
return qulonglong(id);
}
switch(index.column()) switch(index.column())
{ {
case static_cast<int>(Column::Name): case static_cast<int>(Column::Name):

View file

@ -85,13 +85,15 @@ void MarkerSettingsWidgetImpl::ConnectSignals()
->selectedRows(static_cast<int>( ->selectedRows(static_cast<int>(
model::MarkerModel::Column::Name)) model::MarkerModel::Column::Name))
.first(); .first();
std::optional<types::MarkerId> id = markerModel_->getId(selected.row());
if (!id) QVariant const id =
proxyModel_->data(selected, Qt::ItemDataRole::UserRole);
if (!id.isValid())
{ {
return; return;
} }
markerManager_->remove_marker(*id); markerManager_->remove_marker(id.toULongLong());
}); });
QObject::connect( QObject::connect(
self_->ui->markerView->selectionModel(), self_->ui->markerView->selectionModel(),
@ -116,20 +118,14 @@ void MarkerSettingsWidgetImpl::ConnectSignals()
self_, self_,
[this](const QModelIndex& index) [this](const QModelIndex& index)
{ {
const int row = index.row(); QVariant const id =
if (row < 0) proxyModel_->data(index, Qt::ItemDataRole::UserRole);
if (!id.isValid())
{ {
return; return;
} }
std::optional<types::MarkerId> id = editMarkerDialog_->setup(id.toULongLong());
markerModel_->getId(row);
if (!id)
{
return;
}
editMarkerDialog_->setup(*id);
editMarkerDialog_->show(); editMarkerDialog_->show();
}); });
} }