From 02ccc68172689a9134f0c379160cde69d0a202ab Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de>
Date: Tue, 17 Jan 2023 18:33:37 +0100
Subject: [PATCH] JobItem: rm save/load DiffItem

---
 GUI/Model/Job/JobItem.cpp | 19 ++++---------------
 GUI/Model/Job/JobItem.h   |  2 +-
 2 files changed, 5 insertions(+), 16 deletions(-)

diff --git a/GUI/Model/Job/JobItem.cpp b/GUI/Model/Job/JobItem.cpp
index 21254b2fb62..f6ec9db1868 100644
--- a/GUI/Model/Job/JobItem.cpp
+++ b/GUI/Model/Job/JobItem.cpp
@@ -56,7 +56,6 @@ const QString Status("Status");
 const QString Progress("Progress");
 const QString RealItem("RealItem");
 const QString SimulatedData("SimulatedData");
-const QString DiffData("DiffData");
 const QString FitSuite("FitSuite");
 
 } // namespace Tag
@@ -354,7 +353,7 @@ DataItem* JobItem::simulatedDataItem()
     return m_simulatedDataItem.get();
 }
 
-void JobItem::createDiffDataItem()
+DataItem* JobItem::createDiffDataItem()
 {
     ASSERT(!diffDataItem());
     m_diffDataItem.reset(createNewDataItem());
@@ -365,6 +364,8 @@ void JobItem::createDiffDataItem()
 
     if (isSpecularJob())
         dynamic_cast<SpecularDataItem*>(diffDataItem())->setDiffPlotStyle();
+
+    return m_diffDataItem.get();
 }
 
 DataItem* JobItem::diffDataItem()
@@ -520,13 +521,6 @@ void JobItem::writeTo(QXmlStreamWriter* w) const
         w->writeEndElement();
     }
 
-    // diff data
-    if (m_diffDataItem) {
-        w->writeStartElement(Tag::DiffData);
-        XML::writeItemAndChildItems(w, m_diffDataItem.get());
-        w->writeEndElement();
-    }
-
     // fit suite
     if (m_fitSuiteItem) {
         w->writeStartElement(Tag::FitSuite);
@@ -629,8 +623,7 @@ void JobItem::readFrom(QXmlStreamReader* r, const QString& projectDir,
             // real item
         } else if (tag == Tag::RealItem) {
             realError = createRealItem()->readFrom(r, projectDir, messageService);
-            // jobItem and its realItem have to reference the same instrument
-            m_realItem->linkToInstrument(instrumentItem());
+            createDiffDataItem()->copyXYRangesFromItem(m_realItem->dataItem());
             XML::gotoEndElementOfTag(r, tag);
 
             // simulated data
@@ -638,10 +631,6 @@ void JobItem::readFrom(QXmlStreamReader* r, const QString& projectDir,
             m_simulatedDataItem.reset(readItemToEnd<DataItem>(r, this, Tag::SimulatedData));
             simError = m_simulatedDataItem->loadDatafield(projectDir, messageService);
 
-            // diff data
-        } else if (tag == Tag::DiffData) {
-            m_diffDataItem.reset(readItemToEnd<DataItem>(r, this, Tag::DiffData));
-
             // fit suite
         } else if (tag == Tag::FitSuite) {
             createFitSuiteItem()->readFrom(r);
diff --git a/GUI/Model/Job/JobItem.h b/GUI/Model/Job/JobItem.h
index 62b2e2cd91f..00558feac42 100644
--- a/GUI/Model/Job/JobItem.h
+++ b/GUI/Model/Job/JobItem.h
@@ -122,7 +122,7 @@ public:
     IntensityDataItem* intensityDataItem();
     DataItem* simulatedDataItem();
 
-    void createDiffDataItem();
+    DataItem *createDiffDataItem();
     DataItem* diffDataItem();
 
     RealItem* createRealItem();
-- 
GitLab