From f0c5962878a581ff85d2b327b86fa16e279013ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Tue, 15 Dec 2020 16:51:27 +0100 Subject: [PATCH] Fix disappearing marker data --- Software/PC_Application/Traces/tracemarker.cpp | 12 +++++++----- Software/PC_Application/Traces/tracemarkermodel.cpp | 8 ++------ 2 files changed, 9 insertions(+), 11 deletions(-) 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);