Fix disappearing marker data

This commit is contained in:
Jan Käberich 2020-12-15 16:51:27 +01:00
parent c5440210b4
commit f0c5962878
2 changed files with 9 additions and 11 deletions

View File

@ -463,12 +463,14 @@ void TraceMarker::assignDeltaMarker(TraceMarker *m)
void TraceMarker::deleteHelperMarkers() void TraceMarker::deleteHelperMarkers()
{ {
emit beginRemoveHelperMarkers(this); if(helperMarkers.size() > 0) {
for(auto m : helperMarkers) { emit beginRemoveHelperMarkers(this);
delete m; for(auto m : helperMarkers) {
delete m;
}
helperMarkers.clear();
emit endRemoveHelperMarkers(this);
} }
helperMarkers.clear();
emit endRemoveHelperMarkers(this);
} }
void TraceMarker::setType(TraceMarker::Type t) void TraceMarker::setType(TraceMarker::Type t)

View File

@ -88,15 +88,11 @@ void TraceMarkerModel::addMarker(TraceMarker *t)
connect(t, &TraceMarker::beginRemoveHelperMarkers, [=](TraceMarker *m) { connect(t, &TraceMarker::beginRemoveHelperMarkers, [=](TraceMarker *m) {
auto row = find(markers.begin(), markers.end(), m) - markers.begin(); auto row = find(markers.begin(), markers.end(), m) - markers.begin();
auto modelIndex = createIndex(row, 0, root); auto modelIndex = createIndex(row, 0, root);
if(!m->getHelperMarkers().empty()){ beginRemoveRows(modelIndex, 0, m->getHelperMarkers().size() - 1);
beginRemoveRows(modelIndex, 0, m->getHelperMarkers().size() - 1);
}
}); });
connect(t, &TraceMarker::endRemoveHelperMarkers, [=](TraceMarker *m) { connect(t, &TraceMarker::endRemoveHelperMarkers, [=](TraceMarker *m) {
endRemoveRows();
markerDataChanged(m); markerDataChanged(m);
if(!m->getHelperMarkers().empty()){
endRemoveRows();
}
}); });
connect(t, &TraceMarker::deleted, this, qOverload<TraceMarker*>(&TraceMarkerModel::removeMarker)); connect(t, &TraceMarker::deleted, this, qOverload<TraceMarker*>(&TraceMarkerModel::removeMarker));
emit markerAdded(t); emit markerAdded(t);