From 5c5911cdb3b96e14d704799379d271281eef39dd Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de>
Date: Fri, 27 Jan 2023 17:21:14 +0100
Subject: [PATCH] prevent accessing to 'IntensityItem' content on real data
 removal

---
 GUI/View/Import/RealDataMaskWidget.cpp                 | 5 ++++-
 GUI/View/Projection/IntensityDataProjectionsWidget.cpp | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/GUI/View/Import/RealDataMaskWidget.cpp b/GUI/View/Import/RealDataMaskWidget.cpp
index 8b4b52de4d1..88c516591e4 100644
--- a/GUI/View/Import/RealDataMaskWidget.cpp
+++ b/GUI/View/Import/RealDataMaskWidget.cpp
@@ -77,6 +77,8 @@ QList<QAction*> RealDataMaskWidget::actionList()
 
 void RealDataMaskWidget::setContext()
 {
+    ASSERT(currentIntensityDataItem());
+
     MaskContainerItem* containerItem = currentIntensityDataItem()->getOrCreateMaskContainerItem();
     QModelIndex maskContainerIndex = containerItem->index();
     SessionModel* model = currentIntensityDataItem()->model();
@@ -103,7 +105,8 @@ void RealDataMaskWidget::resetContext()
 
 void RealDataMaskWidget::showEvent(QShowEvent*)
 {
-    setContext();
+    if (currentIntensityDataItem())
+        setContext();
 }
 
 void RealDataMaskWidget::hideEvent(QHideEvent*)
diff --git a/GUI/View/Projection/IntensityDataProjectionsWidget.cpp b/GUI/View/Projection/IntensityDataProjectionsWidget.cpp
index e96466a8eea..40e015901f6 100644
--- a/GUI/View/Projection/IntensityDataProjectionsWidget.cpp
+++ b/GUI/View/Projection/IntensityDataProjectionsWidget.cpp
@@ -63,6 +63,8 @@ void IntensityDataProjectionsWidget::setJobOrRealItem(JobRealBase* job_or_real_i
 
 void IntensityDataProjectionsWidget::setContext()
 {
+    ASSERT(currentIntensityDataItem());
+
     ProjectionContainerItem* container =
         currentIntensityDataItem()->getOrCreateProjectionContainerItem();
     QModelIndex shapeContainerIndex = container->index();
@@ -89,7 +91,8 @@ void IntensityDataProjectionsWidget::resetContext()
 
 void IntensityDataProjectionsWidget::showEvent(QShowEvent*)
 {
-    setContext();
+    if (currentIntensityDataItem())
+        setContext();
 }
 
 void IntensityDataProjectionsWidget::hideEvent(QHideEvent*)
-- 
GitLab