From b1dd98e79af31400dc8eb8bfb4b4a9501167360c Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de>
Date: Tue, 15 Nov 2022 16:20:48 +0100
Subject: [PATCH] rm unneeded forward declarations, especially of SessionItem

---
 GUI/Model/Descriptor/UIntProperty.h                   | 1 -
 GUI/View/Import/RealDataSelectorWidget.cpp            | 2 --
 GUI/View/Import/RealDataSelectorWidget.h              | 5 ++---
 GUI/View/Instrument/DistributionPlot.cpp              | 1 -
 GUI/View/Instrument/DistributionPlot.h                | 9 ++++-----
 GUI/View/Mask/IShape2DView.cpp                        | 1 -
 GUI/View/Mask/IShape2DView.h                          | 4 ++--
 GUI/View/Plot2D/IntensityDataWidget.h                 | 3 +--
 GUI/View/SampleDesigner/LayerOrientedSampleEditor.cpp | 1 -
 GUI/View/SampleDesigner/LayerOrientedSampleEditor.h   | 5 ++---
 GUI/View/SampleDesigner/SampleEditorController.h      | 1 -
 GUI/View/SampleDesigner/SampleView.h                  | 2 --
 GUI/View/Toplevel/SessionDecorationModel.h            | 1 -
 13 files changed, 11 insertions(+), 25 deletions(-)

diff --git a/GUI/Model/Descriptor/UIntProperty.h b/GUI/Model/Descriptor/UIntProperty.h
index 58fe0a37fb0..89b8e723bbd 100644
--- a/GUI/Model/Descriptor/UIntProperty.h
+++ b/GUI/Model/Descriptor/UIntProperty.h
@@ -20,7 +20,6 @@
 #include <variant>
 
 class Streamer;
-class SessionItem;
 
 //! Class for representing a uint value, its attributes and its accessors.
 //!
diff --git a/GUI/View/Import/RealDataSelectorWidget.cpp b/GUI/View/Import/RealDataSelectorWidget.cpp
index a23572c551b..86ee88d5d3b 100644
--- a/GUI/View/Import/RealDataSelectorWidget.cpp
+++ b/GUI/View/Import/RealDataSelectorWidget.cpp
@@ -29,12 +29,10 @@
 #include "GUI/View/Info/MessageBox.h"
 #include "GUI/View/Project/ProjectManager.h"
 #include <QFileDialog>
-#include <QItemSelectionModel>
 #include <QLineEdit>
 #include <QListView>
 #include <QMenu>
 #include <QSplitter>
-#include <QTreeView>
 #include <QVBoxLayout>
 
 RealDataSelectorWidget::RealDataSelectorWidget(QWidget* parent, ProjectDocument* document)
diff --git a/GUI/View/Import/RealDataSelectorWidget.h b/GUI/View/Import/RealDataSelectorWidget.h
index 14498cd84a7..c99343cabb6 100644
--- a/GUI/View/Import/RealDataSelectorWidget.h
+++ b/GUI/View/Import/RealDataSelectorWidget.h
@@ -15,7 +15,9 @@
 #ifndef BORNAGAIN_GUI_VIEW_IMPORT_REALDATASELECTORWIDGET_H
 #define BORNAGAIN_GUI_VIEW_IMPORT_REALDATASELECTORWIDGET_H
 
+#include <QItemSelectionModel>
 #include <QModelIndex>
+#include <QTreeView>
 #include <QWidget>
 #include <functional>
 
@@ -23,12 +25,9 @@ class RealDataPropertiesWidget;
 class RealDataItemSelectorWidget;
 class InstrumentCollection;
 class RealModel;
-class SessionItem;
 class RealDataSelectorActions;
 class RealItem;
 class RealDataTreeModel;
-class QItemSelection;
-class QTreeView;
 class ProjectDocument;
 
 //! The RealDataSelectorWidget represents left panel of ImportDataView. Contains a tree to
diff --git a/GUI/View/Instrument/DistributionPlot.cpp b/GUI/View/Instrument/DistributionPlot.cpp
index 03c7b7886d9..c3dca8dfd25 100644
--- a/GUI/View/Instrument/DistributionPlot.cpp
+++ b/GUI/View/Instrument/DistributionPlot.cpp
@@ -19,7 +19,6 @@
 #include "GUI/View/Info/CautionSign.h"
 #include "Param/Distrib/Distributions.h"
 #include "qcustomplot.h"
-#include <QLabel>
 #include <QVBoxLayout>
 #include <algorithm>
 
diff --git a/GUI/View/Instrument/DistributionPlot.h b/GUI/View/Instrument/DistributionPlot.h
index 80f5b02821e..c83d325f749 100644
--- a/GUI/View/Instrument/DistributionPlot.h
+++ b/GUI/View/Instrument/DistributionPlot.h
@@ -16,15 +16,14 @@
 #define BORNAGAIN_GUI_VIEW_INSTRUMENT_DISTRIBUTIONPLOT_H
 
 #include "qcustomplot.h"
+#include <QAction>
+#include <QLabel>
 #include <QWidget>
 
-class SessionItem;
-class QLabel;
-class QCustomPlot;
+class CautionSign;
 class DistributionItem;
-class QAction;
+class QCustomPlot;
 class RealLimits;
-class CautionSign;
 
 //! The DistributionPlot class plots 1d functions corresponding to domain's Distribution1D
 class DistributionPlot : public QWidget {
diff --git a/GUI/View/Mask/IShape2DView.cpp b/GUI/View/Mask/IShape2DView.cpp
index ea54f9ea723..334a44381be 100644
--- a/GUI/View/Mask/IShape2DView.cpp
+++ b/GUI/View/Mask/IShape2DView.cpp
@@ -19,7 +19,6 @@
 #include <QGraphicsScene>
 #include <QGraphicsSceneContextMenuEvent>
 #include <QMenu>
-#include <QPainter>
 
 namespace {
 
diff --git a/GUI/View/Mask/IShape2DView.h b/GUI/View/Mask/IShape2DView.h
index 2f39d4bc4c2..6e7987c6d0a 100644
--- a/GUI/View/Mask/IShape2DView.h
+++ b/GUI/View/Mask/IShape2DView.h
@@ -17,11 +17,11 @@
 
 #include "GUI/View/Mask/MaskEditorHelper.h"
 #include <QGraphicsObject>
+#include <QPainter>
 
-class SessionItem;
 class MaskItemObject;
 class ISceneAdaptor;
-class QPainter;
+class SessionItem;
 
 //! Main interface class for views representing MaskItems, Projections on graphics scene.
 
diff --git a/GUI/View/Plot2D/IntensityDataWidget.h b/GUI/View/Plot2D/IntensityDataWidget.h
index 5e923bdd5cf..051bf2f5c3b 100644
--- a/GUI/View/Plot2D/IntensityDataWidget.h
+++ b/GUI/View/Plot2D/IntensityDataWidget.h
@@ -16,11 +16,10 @@
 #define BORNAGAIN_GUI_VIEW_PLOT2D_INTENSITYDATAWIDGET_H
 
 #include "GUI/View/Common/DataAccessWidget.h"
+#include <QAction>
 
-class SessionItem;
 class IntensityDataCanvas;
 class IntensityDataPropertyWidget;
-class QAction;
 class IntensityDataFFTPresenter;
 
 //! A common widget to display color map (IntensityDataCanvas) and properties
diff --git a/GUI/View/SampleDesigner/LayerOrientedSampleEditor.cpp b/GUI/View/SampleDesigner/LayerOrientedSampleEditor.cpp
index 143a7581cce..0ede4c9a74e 100644
--- a/GUI/View/SampleDesigner/LayerOrientedSampleEditor.cpp
+++ b/GUI/View/SampleDesigner/LayerOrientedSampleEditor.cpp
@@ -24,7 +24,6 @@
 #include <QActionGroup>
 #include <QBoxLayout>
 #include <QPushButton>
-#include <QScrollArea>
 
 LayerOrientedSampleEditor::LayerOrientedSampleEditor(QWidget* parent, ProjectDocument* document)
     : QWidget(parent)
diff --git a/GUI/View/SampleDesigner/LayerOrientedSampleEditor.h b/GUI/View/SampleDesigner/LayerOrientedSampleEditor.h
index d638da032bc..e27213afb6d 100644
--- a/GUI/View/SampleDesigner/LayerOrientedSampleEditor.h
+++ b/GUI/View/SampleDesigner/LayerOrientedSampleEditor.h
@@ -16,16 +16,15 @@
 #define BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_LAYERORIENTEDSAMPLEEDITOR_H
 
 #include <QMap>
+#include <QScrollArea>
+#include <QToolBar>
 #include <QWidget>
 
 class Item3D;
 class MultiLayerForm;
 class MultiLayerItem;
 class ProjectDocument;
-class QScrollArea;
-class QToolBar;
 class SampleEditorController;
-class SessionItem;
 
 //! Sample editor with layer oriented presentation of a sample
 class LayerOrientedSampleEditor : public QWidget {
diff --git a/GUI/View/SampleDesigner/SampleEditorController.h b/GUI/View/SampleDesigner/SampleEditorController.h
index 1bb4d920748..fd437528a2c 100644
--- a/GUI/View/SampleDesigner/SampleEditorController.h
+++ b/GUI/View/SampleDesigner/SampleEditorController.h
@@ -39,7 +39,6 @@ class MultiLayerItem;
 class ParticleLayoutItem;
 class ProjectDocument;
 class SelectionContainerForm;
-class SessionItem;
 class UIntDescriptor;
 
 //! Class to modify a sample from the layer oriented sample editor.
diff --git a/GUI/View/SampleDesigner/SampleView.h b/GUI/View/SampleDesigner/SampleView.h
index b633211985e..fefe91d12e0 100644
--- a/GUI/View/SampleDesigner/SampleView.h
+++ b/GUI/View/SampleDesigner/SampleView.h
@@ -19,11 +19,9 @@
 
 class DocksController;
 class Item3D;
-class MultiLayerItem;
 class ProjectDocument;
 class RealspacePanel;
 class SampleListView;
-class SessionItem;
 
 class SampleView : public QMainWindow {
     Q_OBJECT
diff --git a/GUI/View/Toplevel/SessionDecorationModel.h b/GUI/View/Toplevel/SessionDecorationModel.h
index 32cc160cfcb..156c444e858 100644
--- a/GUI/View/Toplevel/SessionDecorationModel.h
+++ b/GUI/View/Toplevel/SessionDecorationModel.h
@@ -18,7 +18,6 @@
 #include <QIdentityProxyModel>
 
 class SessionModel;
-class SessionItem;
 
 //! Provides decorations (text color, icons, etc) for SessionModel in SessionModelView context.
 //! It is implemented as identity proxy model, so it has one-to-one data structure as in
-- 
GitLab