From 70164c24e6fbc97d12ff74bb8c260e755167de8e Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <svechnikovmv@gmail.com>
Date: Tue, 4 Jul 2023 12:12:49 +0200
Subject: [PATCH] upd axes size

---
 GUI/Model/Device/RealItem.cpp  | 11 ++++++++++-
 GUI/View/PlotUtil/ColorMap.cpp |  2 ++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/GUI/Model/Device/RealItem.cpp b/GUI/Model/Device/RealItem.cpp
index 4f9bf64a13f..8bcbf99deeb 100644
--- a/GUI/Model/Device/RealItem.cpp
+++ b/GUI/Model/Device/RealItem.cpp
@@ -13,9 +13,11 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Device/RealItem.h"
+#include "Base/Axis/Scale.h"
 #include "Device/Coord/ICoordSystem.h"
 #include "Device/Data/DataUtil.h"
 #include "Device/Data/Datafield.h"
+#include "GUI/Model/Axis/AmplitudeAxisItem.h"
 #include "GUI/Model/Data/DataItemUtil.h"
 #include "GUI/Model/Data/IntensityDataItem.h"
 #include "GUI/Model/Data/ProjectionItems.h"
@@ -259,7 +261,14 @@ void RealItem::rotateData()
 
     // -- now rotate data
     const Datafield* input = intensityDataItem()->c_field();
-    intensityDataItem()->setDatafield(DataUtil::Data::createRearrangedDataSet(*input, 1).release());
+    Datafield* output = DataUtil::Data::createRearrangedDataSet(*input, 1).release();
+
+    // upd AxesItems
+    intensityDataItem()->xAxisItem()->setBinCount(output->xAxis().size());
+    intensityDataItem()->yAxisItem()->setBinCount(output->yAxis().size());
+
+    // apply rotated data
+    intensityDataItem()->setDatafield(output);
     intensityDataItem()->setAxesRangeToData();
 }
 
diff --git a/GUI/View/PlotUtil/ColorMap.cpp b/GUI/View/PlotUtil/ColorMap.cpp
index 4b2b196eac6..1679c3c2193 100644
--- a/GUI/View/PlotUtil/ColorMap.cpp
+++ b/GUI/View/PlotUtil/ColorMap.cpp
@@ -365,6 +365,8 @@ void ColorMap::setDataFromItem()
 
     int nx(intensityItem()->xSize()); // outside of the loop because of slow retrieval
     int ny(intensityItem()->ySize());
+    m_colorMap->data()->setSize(nx, ny);
+
     for (int ix = 0; ix < nx; ++ix)
         for (int iy = 0; iy < ny; ++iy)
             m_colorMap->data()->setCell(ix, iy, (*data)[iy + ny * ix]);
-- 
GitLab