diff --git a/Software/PC_Application/Traces/tracemarker.cpp b/Software/PC_Application/Traces/tracemarker.cpp index ef5dfe1..158df85 100644 --- a/Software/PC_Application/Traces/tracemarker.cpp +++ b/Software/PC_Application/Traces/tracemarker.cpp @@ -463,12 +463,14 @@ void TraceMarker::assignDeltaMarker(TraceMarker *m) void TraceMarker::deleteHelperMarkers() { - emit beginRemoveHelperMarkers(this); - for(auto m : helperMarkers) { - delete m; + if(helperMarkers.size() > 0) { + emit beginRemoveHelperMarkers(this); + for(auto m : helperMarkers) { + delete m; + } + helperMarkers.clear(); + emit endRemoveHelperMarkers(this); } - helperMarkers.clear(); - emit endRemoveHelperMarkers(this); } void TraceMarker::setType(TraceMarker::Type t) diff --git a/Software/PC_Application/Traces/tracemarkermodel.cpp b/Software/PC_Application/Traces/tracemarkermodel.cpp index ccc9983..b7a6239 100644 --- a/Software/PC_Application/Traces/tracemarkermodel.cpp +++ b/Software/PC_Application/Traces/tracemarkermodel.cpp @@ -88,15 +88,11 @@ void TraceMarkerModel::addMarker(TraceMarker *t) connect(t, &TraceMarker::beginRemoveHelperMarkers, [=](TraceMarker *m) { auto row = find(markers.begin(), markers.end(), m) - markers.begin(); 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) { + endRemoveRows(); markerDataChanged(m); - if(!m->getHelperMarkers().empty()){ - endRemoveRows(); - } }); connect(t, &TraceMarker::deleted, this, qOverload(&TraceMarkerModel::removeMarker)); emit markerAdded(t);