diff --git a/GUI/Model/Data/DataItem.h b/GUI/Model/Data/DataItem.h
index e25f3bc9dfaac2db321fd9fe6a56eeea5cc82a87..29dbda2aea81712aaf1a16db6187557526fa5344 100644
--- a/GUI/Model/Data/DataItem.h
+++ b/GUI/Model/Data/DataItem.h
@@ -34,7 +34,6 @@ class MessageService;
 
 class DataItem : public QObject {
     Q_OBJECT
-
 protected:
     explicit DataItem(const QString& modelType);
 
diff --git a/GUI/Model/Data/SpecularDataItem.h b/GUI/Model/Data/SpecularDataItem.h
index 8541c106383f834c47920acd0a9b8ef3948eb323..75f578b08df869e8ddb974a538c2c9882707a977 100644
--- a/GUI/Model/Data/SpecularDataItem.h
+++ b/GUI/Model/Data/SpecularDataItem.h
@@ -19,6 +19,7 @@
 #include <qcustomplot.h>
 
 class SpecularDataItem : public DataItem {
+    Q_OBJECT
 public:
     static constexpr auto M_TYPE{"SpecularData"};
 
diff --git a/GUI/Model/Device/InstrumentNotifier.h b/GUI/Model/Device/InstrumentNotifier.h
index b2c28b080b97381458e339aa220fd5584a836000..a2d39edebab2065502c3e18ba2719a199b3b2cab 100644
--- a/GUI/Model/Device/InstrumentNotifier.h
+++ b/GUI/Model/Device/InstrumentNotifier.h
@@ -31,6 +31,7 @@ class DoubleProperty;
 //! Calling notification methods or change methods also take care of dependent data, like in
 //! notifyWavelengthDistributionChanged().
 class InstrumentNotifier : public QObject {
+    Q_OBJECT
 public:
     InstrumentNotifier(MultiInstrumentNotifier* ec, InstrumentItem* instrument);
 
diff --git a/GUI/Model/Device/PointwiseAxisItem.h b/GUI/Model/Device/PointwiseAxisItem.h
index dd921d996fa62db93e23fc00f313260a35812170..b4063312cb499679b8d005728d7b2aec67bdac17 100644
--- a/GUI/Model/Device/PointwiseAxisItem.h
+++ b/GUI/Model/Device/PointwiseAxisItem.h
@@ -22,6 +22,7 @@ class SpecularInstrumentItem;
 
 //! Item for non-uniform axis with specified coordinates.
 class PointwiseAxisItem : public BasicAxisItem {
+    Q_OBJECT
 public:
     explicit PointwiseAxisItem(QObject* parent = nullptr);
     ~PointwiseAxisItem() override;
diff --git a/GUI/Model/Model/ParameterTuningModel.h b/GUI/Model/Model/ParameterTuningModel.h
index a3b5633f1ec9ad719197c881f3b38410e47f6bdc..1117e0f8a3c6916a9e9d1f925fff363c6d1d13f3 100644
--- a/GUI/Model/Model/ParameterTuningModel.h
+++ b/GUI/Model/Model/ParameterTuningModel.h
@@ -24,6 +24,7 @@ class ParameterLabelItem;
 //! In the fitting activity context handles dragging of ParameterItem's to the FitParametersWidget.
 
 class ParameterTuningModel : public QAbstractItemModel {
+    Q_OBJECT
 public:
     ParameterTuningModel(QObject* rootObject, QObject* parent = nullptr);
 
diff --git a/GUI/View/Common/DataAccessWidget.h b/GUI/View/Common/DataAccessWidget.h
index 70204b4873e8b9d949d15264cf7bbfee667d6c8e..e1ad70c3a4be96001a6af36a7dfe7f29c603670e 100644
--- a/GUI/View/Common/DataAccessWidget.h
+++ b/GUI/View/Common/DataAccessWidget.h
@@ -25,6 +25,7 @@
 //! changing their properties.
 
 class DataAccessWidget : public QWidget {
+    Q_OBJECT
 public:
     explicit DataAccessWidget(QWidget* parent = nullptr);
     ~DataAccessWidget() override;
@@ -39,7 +40,7 @@ public:
     RealItem* realItem() const;
     QObject* jobRealBase() const;
 
-    // Access to concrete items:
+    //... Access to concrete items:
 
     // Specular
 
@@ -63,7 +64,7 @@ public:
     //! Difference as IntensityDataItem
     IntensityDataItem* diffIntensityDataItem() const;
 
-    // Access to lists of items:
+    //... Access to lists of items:
 
     // Specular
 
diff --git a/GUI/View/Common/IntensityDataPropertyWidget.h b/GUI/View/Common/IntensityDataPropertyWidget.h
index f93e6ab463da2910763b0ef83eb70e1140e9ee6c..ffb3dd50822831c66bc24c3666be3bde225c92e3 100644
--- a/GUI/View/Common/IntensityDataPropertyWidget.h
+++ b/GUI/View/Common/IntensityDataPropertyWidget.h
@@ -20,6 +20,7 @@
 //! Widget to edit properties of an IntensityDataItem.
 
 class IntensityDataPropertyWidget : public DataPropertyWidget {
+    Q_OBJECT
 public:
     explicit IntensityDataPropertyWidget(QWidget* parent = nullptr);
 
diff --git a/GUI/View/Fit/FitSessionManager.h b/GUI/View/Fit/FitSessionManager.h
index 7ee7c1ad802f880f0fa793ed24c7453c3a4d8306..da5eccea19eeff51e5c6b2bbc6188372cb662962 100644
--- a/GUI/View/Fit/FitSessionManager.h
+++ b/GUI/View/Fit/FitSessionManager.h
@@ -24,6 +24,7 @@ class FitSessionController;
 //! Handles all activity related to the simultaneous running of fitting jobs.
 
 class FitSessionManager : public QObject {
+    Q_OBJECT
 public:
     FitSessionManager(QObject* parent = nullptr);
     ~FitSessionManager();
diff --git a/GUI/View/Fit/FitSessionWidget.h b/GUI/View/Fit/FitSessionWidget.h
index 1aa619faa26c6bfd5c574e219621eb227aabb2e2..c2f4b4e2e7ab01d745cdda6803ba96c95c634585 100644
--- a/GUI/View/Fit/FitSessionWidget.h
+++ b/GUI/View/Fit/FitSessionWidget.h
@@ -29,6 +29,7 @@ class RunFitControlWidget;
 //! minimizer settings). Controlled by FitActivityPanel.
 
 class FitSessionWidget : public QWidget {
+    Q_OBJECT
 public:
     FitSessionWidget(QWidget* parent = nullptr);
     ~FitSessionWidget();
diff --git a/GUI/View/Fit/JobMessagePanel.h b/GUI/View/Fit/JobMessagePanel.h
index eb2f631e2dcee75074f848cee43add847fb8e540..36cc3c09f589a405859a7e91d8822a245c9dc6da 100644
--- a/GUI/View/Fit/JobMessagePanel.h
+++ b/GUI/View/Fit/JobMessagePanel.h
@@ -21,6 +21,7 @@
 //! Shows log messages from FitActivityPanel at the bottom part of JobView.
 
 class JobMessagePanel : public QTextEdit {
+    Q_OBJECT
 public:
     JobMessagePanel(QWidget* parent = nullptr);
     ~JobMessagePanel();
diff --git a/GUI/View/Import/RealDataMaskWidget.h b/GUI/View/Import/RealDataMaskWidget.h
index f8a791cf7d665e2a9f35fa5b9fb56acc26bf63e8..93671bb15fa783cc44df94dd0365179439234c4a 100644
--- a/GUI/View/Import/RealDataMaskWidget.h
+++ b/GUI/View/Import/RealDataMaskWidget.h
@@ -25,6 +25,7 @@ class MaskEditorToolbar;
 //! Mask editing for RealItem on ImportDataView.
 
 class RealDataMaskWidget : public DataAccessWidget {
+    Q_OBJECT
 public:
     RealDataMaskWidget(QWidget* parent = nullptr);
 
diff --git a/GUI/View/Import/RealDataPresenter.h b/GUI/View/Import/RealDataPresenter.h
index 6c6120f51668b6533b03f942dcec787e0405145c..9f5804244e6ea614a0450497ca08c4eaf2bd9df4 100644
--- a/GUI/View/Import/RealDataPresenter.h
+++ b/GUI/View/Import/RealDataPresenter.h
@@ -21,6 +21,7 @@
 //! right top corner of ImportDataView, to switch between widgets.
 
 class RealDataPresenter : public ItemComboWidget {
+    Q_OBJECT
 public:
     explicit RealDataPresenter(QWidget* parent = nullptr);
 
diff --git a/GUI/View/Info/ComboSelectorDialog.h b/GUI/View/Info/ComboSelectorDialog.h
index eba0474ba04edc578d2cab8fc1390e8a96e1f601..6943135d35326676a07a5d7ebbf4fc490e1007cc 100644
--- a/GUI/View/Info/ComboSelectorDialog.h
+++ b/GUI/View/Info/ComboSelectorDialog.h
@@ -25,6 +25,7 @@ class QLabel;
 //! A dialog similar to standard QMessageBox with combo box selector.
 
 class ComboSelectorDialog : public QDialog {
+    Q_OBJECT
 public:
     ComboSelectorDialog(QWidget* parent = nullptr);
 
diff --git a/GUI/View/Info/DetailedMessageBox.h b/GUI/View/Info/DetailedMessageBox.h
index a5b9d6eefc2837af34473057df50e2b5f4e4b6a7..c5a9661622a423fe963741a03b67447310c7d4d8 100644
--- a/GUI/View/Info/DetailedMessageBox.h
+++ b/GUI/View/Info/DetailedMessageBox.h
@@ -26,6 +26,7 @@ class QTextEdit;
 //! On the contrary to QMessageBox, the dialog has size grip and visible text editor.
 
 class DetailedMessageBox : public QDialog {
+    Q_OBJECT
 public:
     DetailedMessageBox(QWidget* parent, const QString& title, const QString& text,
                        const QString& details);
diff --git a/GUI/View/Info/OverlayLabelController.h b/GUI/View/Info/OverlayLabelController.h
index 68ee629ea16b385ae2428dfac5f035973716a1f5..bb54e31c3c01ddb8a5265fa40354baa3d393a1e3 100644
--- a/GUI/View/Info/OverlayLabelController.h
+++ b/GUI/View/Info/OverlayLabelController.h
@@ -24,6 +24,7 @@ class QAbstractScrollArea;
 //! Controlls appearance of InfoLabelWidget (position, show/hide) on top of some scroll area.
 
 class OverlayLabelController : public QObject {
+    Q_OBJECT
 public:
     OverlayLabelController(QObject* parent = nullptr);
 
diff --git a/GUI/View/Info/OverlayLabelWidget.h b/GUI/View/Info/OverlayLabelWidget.h
index 6f278a06096807e46fc9c3eca6d02fcb8a2b7669..3f0196e35c9f436eb477f53c4b756811dd07df34 100644
--- a/GUI/View/Info/OverlayLabelWidget.h
+++ b/GUI/View/Info/OverlayLabelWidget.h
@@ -22,6 +22,7 @@
 //! A semi-transparent overlay label to place on top of other widgets outside of any layout context.
 
 class OverlayLabelWidget : public QWidget {
+    Q_OBJECT
 public:
     OverlayLabelWidget(QWidget* parent = nullptr);
 
diff --git a/GUI/View/Info/PythonSyntaxHighlighter.h b/GUI/View/Info/PythonSyntaxHighlighter.h
index 3cbb40d46f8f9fd705e289303750afdc45df5126..accba0fa3253d52a0af9a19e64837724130cf7a0 100644
--- a/GUI/View/Info/PythonSyntaxHighlighter.h
+++ b/GUI/View/Info/PythonSyntaxHighlighter.h
@@ -62,6 +62,7 @@ public:
 
 //! Implementation of highlighting for Python code.
 class PythonSyntaxHighlighter : public QSyntaxHighlighter {
+    Q_OBJECT
 public:
     PythonSyntaxHighlighter(QTextDocument* parent = nullptr);
 
diff --git a/GUI/View/Instrument/InstrumentLibraryEditor.h b/GUI/View/Instrument/InstrumentLibraryEditor.h
index a7cb65972a51b622a6b2f6fc149f48cee68d517d..018aaf94238e5d4b126c4f817873c3996ea2710c 100644
--- a/GUI/View/Instrument/InstrumentLibraryEditor.h
+++ b/GUI/View/Instrument/InstrumentLibraryEditor.h
@@ -22,7 +22,6 @@ class InstrumentItem;
 class InstrumentLibrary;
 
 namespace Ui {
-
 class InstrumentLibraryEditor;
 }
 
diff --git a/GUI/View/Instrument/InstrumentListModel.h b/GUI/View/Instrument/InstrumentListModel.h
index 0e2d5d2ff2a13a5ebbd7413fefbe0a5ff222be3c..a1f1af683bb2a43c3dd5715150a54c53d26641f1 100644
--- a/GUI/View/Instrument/InstrumentListModel.h
+++ b/GUI/View/Instrument/InstrumentListModel.h
@@ -25,6 +25,7 @@ class MultiInstrumentNotifier;
 //!
 //! Used e.g. to present the instrument list in the instrument view.
 class InstrumentListModel : public QAbstractListModel {
+    Q_OBJECT
 public:
     InstrumentListModel(QObject* parent, MultiInstrumentNotifier* ec);
 
diff --git a/GUI/View/Instrument/InstrumentView.h b/GUI/View/Instrument/InstrumentView.h
index 082bc93b2422e15a3c09aacca572cfa6025b2975..8ef4ae691bc411588104016493c52ec5067edd2b 100644
--- a/GUI/View/Instrument/InstrumentView.h
+++ b/GUI/View/Instrument/InstrumentView.h
@@ -21,13 +21,14 @@
 class InstrumentItem;
 class InstrumentListView;
 class ProjectDocument;
-class QScrollArea;
+class QCheckBox;
 class QLabel;
 class QMenu;
-class QCheckBox;
+class QScrollArea;
 class QWidgetAction;
 
 class InstrumentView : public QWidget {
+    Q_OBJECT
 public:
     InstrumentView(QWidget* parent, ProjectDocument* document);
     void fillViewMenu(QMenu* menu);
diff --git a/GUI/View/Item/DataItemBundleWidget.h b/GUI/View/Item/DataItemBundleWidget.h
index b51282d0e9b6d3a2f25099ecdc342e9f5f8be202..6e82f9a0a601027bdf8ccc6e70e3431b95b3dd41 100644
--- a/GUI/View/Item/DataItemBundleWidget.h
+++ b/GUI/View/Item/DataItemBundleWidget.h
@@ -25,6 +25,7 @@ class SpecularDataItem;
 //! simultaneous, synchronous work while plotting and changing their properties.
 
 class DataItemBundleWidget : public QWidget {
+    Q_OBJECT
 public:
     explicit DataItemBundleWidget(QWidget* parent = nullptr);
     ~DataItemBundleWidget() override;
diff --git a/GUI/View/Item/ItemStackWidget.h b/GUI/View/Item/ItemStackWidget.h
index 5a38d5a2e363b4401d15f7827540aceb603d0465..4c413b69238775471405376475774b56ef142af5 100644
--- a/GUI/View/Item/ItemStackWidget.h
+++ b/GUI/View/Item/ItemStackWidget.h
@@ -25,6 +25,7 @@
 //! currently selected items.
 
 class ItemStackWidget : public QWidget {
+    Q_OBJECT
 public:
     ItemStackWidget(QWidget* parent = nullptr);
 
diff --git a/GUI/View/Item/ItemViewOverlayButtons.h b/GUI/View/Item/ItemViewOverlayButtons.h
index e64544bd42267a0a17f9ab9933b00c3276e2d4d9..9913a19ad3373f9ca8da76d46c8231d5f61540d4 100644
--- a/GUI/View/Item/ItemViewOverlayButtons.h
+++ b/GUI/View/Item/ItemViewOverlayButtons.h
@@ -18,10 +18,11 @@
 #include <QObject>
 #include <functional>
 
-class QAction;
 class QAbstractItemView;
+class QAction;
 
 class ItemViewOverlayButtons : public QObject {
+    Q_OBJECT
 public:
     using FnGetActions = std::function<QList<QAction*>(const QModelIndex&, bool)>;
 
diff --git a/GUI/View/Job/JobPropertiesTableModel.h b/GUI/View/Job/JobPropertiesTableModel.h
index f11f76230432393561e3042e61172424b622a6f5..8524da0c22425a6c6e517070e8eda43ce4557c32 100644
--- a/GUI/View/Job/JobPropertiesTableModel.h
+++ b/GUI/View/Job/JobPropertiesTableModel.h
@@ -23,6 +23,7 @@ class JobItem;
 //! The name of the job is editable, all other fields are read only.
 
 class JobPropertiesTableModel : public QAbstractTableModel {
+    Q_OBJECT
 public:
     explicit JobPropertiesTableModel(QObject* parent = nullptr);
     ~JobPropertiesTableModel() override;
@@ -38,7 +39,6 @@ public:
 private:
     void notifyJobPropertyChange();
 
-private:
     JobItem* m_item;
 };
 
diff --git a/GUI/View/Job/JobResultsPresenter.h b/GUI/View/Job/JobResultsPresenter.h
index ea3bd76e7044dd9a8feb2cc8e868e979fde5f413..3f155d4005f2d7541e29876849ad0abf63b3d56d 100644
--- a/GUI/View/Job/JobResultsPresenter.h
+++ b/GUI/View/Job/JobResultsPresenter.h
@@ -24,6 +24,7 @@ enum class JobViewActivity;
 //! right top corner of JobView, to switch between widgets.
 
 class JobResultsPresenter : public ItemComboWidget {
+    Q_OBJECT
 public:
     explicit JobResultsPresenter(QWidget* parent = nullptr);
 
diff --git a/GUI/View/Main/AboutDialog.h b/GUI/View/Main/AboutDialog.h
index d93f6738f957e5ca5261255385c42eadc722615f..d20d2273d66f22387ad1c6e07cfa71a5c1464ff9 100644
--- a/GUI/View/Main/AboutDialog.h
+++ b/GUI/View/Main/AboutDialog.h
@@ -20,6 +20,7 @@
 //! About BornAgain dialog.
 
 class AboutDialog : public QDialog {
+    Q_OBJECT
 public:
     AboutDialog(QWidget* parent = nullptr);
 };
diff --git a/GUI/View/Mask/ColorMapSceneAdaptor.h b/GUI/View/Mask/ColorMapSceneAdaptor.h
index d90931815c17ac2607fe618ee7f00af1ef905b2b..20e20f52535b238c6a011c23a1c3b6e68d8a1363 100644
--- a/GUI/View/Mask/ColorMapSceneAdaptor.h
+++ b/GUI/View/Mask/ColorMapSceneAdaptor.h
@@ -22,6 +22,7 @@ class ColorMap;
 //! Performs conversion of MaskItems coordinates between ColorMap and GraphicsScene.
 
 class ColorMapSceneAdaptor : public ISceneAdaptor {
+    Q_OBJECT
 public:
     ColorMapSceneAdaptor();
 
diff --git a/GUI/View/Mask/MaskGraphicsProxy.h b/GUI/View/Mask/MaskGraphicsProxy.h
index a9afd973f89033e9c361f886c6d7b837d807a892..1ad10bfdc354abf8c041ec076f14cb3f13dece12 100644
--- a/GUI/View/Mask/MaskGraphicsProxy.h
+++ b/GUI/View/Mask/MaskGraphicsProxy.h
@@ -26,6 +26,7 @@ class ISceneAdaptor;
 //! Graphics proxy to place QWidget inside QGraphicsScene, used by MaskEditorCanvas.
 
 class MaskGraphicsProxy : public QGraphicsProxyWidget {
+    Q_OBJECT
 public:
     MaskGraphicsProxy();
     ~MaskGraphicsProxy() override;
diff --git a/GUI/View/Numeric/SafeSpinBox.h b/GUI/View/Numeric/SafeSpinBox.h
index ae122b2427ffa74298be5d0dd3d51184b1c6837f..7e76fd152b98227ceb2e9e9fef1d0ee86545eb59 100644
--- a/GUI/View/Numeric/SafeSpinBox.h
+++ b/GUI/View/Numeric/SafeSpinBox.h
@@ -20,6 +20,7 @@
 //! Spinbox that enables scrolling only on focus
 
 class SafeSpinBox : public QSpinBox {
+    Q_OBJECT
 public:
     explicit SafeSpinBox(bool easyScrollable = false, QWidget* parent = nullptr);
 
diff --git a/GUI/View/Plot2D/ColorMapCanvas.h b/GUI/View/Plot2D/ColorMapCanvas.h
index 1969d942162902f6284d55ca558ac8cd1b7830ce..d172e6cc0ec4df118d668f8c226756c412b7c772 100644
--- a/GUI/View/Plot2D/ColorMapCanvas.h
+++ b/GUI/View/Plot2D/ColorMapCanvas.h
@@ -27,6 +27,7 @@ class QCustomPlot;
 //! Controls appearance of the status string.
 
 class ColorMapCanvas : public QWidget {
+    Q_OBJECT
 public:
     explicit ColorMapCanvas(QWidget* parent = nullptr);
 
diff --git a/GUI/View/Plot2D/IntensityDataWidget.h b/GUI/View/Plot2D/IntensityDataWidget.h
index 4e1d014dadcfee9eab3b2bd37581d8ff891c8ff1..10f8c383358c5baa36a3d939d8b5ee6027e535fb 100644
--- a/GUI/View/Plot2D/IntensityDataWidget.h
+++ b/GUI/View/Plot2D/IntensityDataWidget.h
@@ -26,6 +26,7 @@ class IntensityDataFFTPresenter;
 //! (ItemPropertyWidget) of intensity data item.
 
 class IntensityDataWidget : public DataAccessWidget {
+    Q_OBJECT
 public:
     IntensityDataWidget(QWidget* parent = nullptr);
 
diff --git a/GUI/View/PlotComparison/FitComparisonWidget.h b/GUI/View/PlotComparison/FitComparisonWidget.h
index c18ac81b31469c76c2be901c7bfbcf0cbd284c44..dd1797560ea20f63e608fd8d95e2bc67088e65ed 100644
--- a/GUI/View/PlotComparison/FitComparisonWidget.h
+++ b/GUI/View/PlotComparison/FitComparisonWidget.h
@@ -26,6 +26,7 @@ class QAction;
 //! Plots realdata, simulated data and relative difference map during the course of the fit.
 
 class FitComparisonWidget : public DataAccessWidget {
+    Q_OBJECT
 public:
     explicit FitComparisonWidget(QWidget* parent = nullptr);
 
diff --git a/GUI/View/PlotComparison/FitComparisonWidget1D.h b/GUI/View/PlotComparison/FitComparisonWidget1D.h
index e07068b5d2ba45c7aae026777d86af99202d3692..03e592ce94aa145bb71ce65ccdb35cd3072ab442 100644
--- a/GUI/View/PlotComparison/FitComparisonWidget1D.h
+++ b/GUI/View/PlotComparison/FitComparisonWidget1D.h
@@ -29,6 +29,7 @@ class SpecularPlotCanvas;
 //! during the course of the fit.
 
 class FitComparisonWidget1D : public DataAccessWidget {
+    Q_OBJECT
 public:
     explicit FitComparisonWidget1D(QWidget* parent = nullptr);
 
diff --git a/GUI/View/PlotComparison/FitFlowWidget.h b/GUI/View/PlotComparison/FitFlowWidget.h
index d1e2efd874a5fe0940e07b9f815f792cb913cd0d..25bdcd6dfd09125543074b8599cdbc3979a2d106 100644
--- a/GUI/View/PlotComparison/FitFlowWidget.h
+++ b/GUI/View/PlotComparison/FitFlowWidget.h
@@ -24,6 +24,7 @@ class HistogramPlot;
 //! The main goal is to fill vacant place in FitComparisonWidget.
 
 class FitFlowWidget : public DataAccessWidget {
+    Q_OBJECT
 public:
     explicit FitFlowWidget(QWidget* parent = nullptr);
 
diff --git a/GUI/View/PlotSpecular/SpecularDataPropertyWidget.h b/GUI/View/PlotSpecular/SpecularDataPropertyWidget.h
index 778555e63b31caaead1bdbd4b8543cc5d2e55ed8..783344f7c2cf094d305144b8676c0228c48f90ed 100644
--- a/GUI/View/PlotSpecular/SpecularDataPropertyWidget.h
+++ b/GUI/View/PlotSpecular/SpecularDataPropertyWidget.h
@@ -20,6 +20,7 @@
 //! Widget to edit properties of a SpecularDataItem.
 
 class SpecularDataPropertyWidget : public DataPropertyWidget {
+    Q_OBJECT
 public:
     explicit SpecularDataPropertyWidget(QWidget* parent = nullptr);
 
diff --git a/GUI/View/PlotSpecular/SpecularPlot.h b/GUI/View/PlotSpecular/SpecularPlot.h
index 82c9c8de291605f280ca18616a7df61044d6adb9..f54e615819d2a2a24fedb30a7c232abb0d623204 100644
--- a/GUI/View/PlotSpecular/SpecularPlot.h
+++ b/GUI/View/PlotSpecular/SpecularPlot.h
@@ -33,6 +33,7 @@ class UpdateTimer;
 //! for more complicated plotting widgets. Corresponds to ColorMap for 2D intensity data.
 
 class SpecularPlot : public ScientificPlot {
+    Q_OBJECT
 public:
     explicit SpecularPlot(QWidget* parent = nullptr);
 
diff --git a/GUI/View/PlotSpecular/SpecularPlotCanvas.h b/GUI/View/PlotSpecular/SpecularPlotCanvas.h
index 3486e66e282893545f126b821915269bc1da917a..4e5ac25a56758946c61ca3c56717e92992fa8431 100644
--- a/GUI/View/PlotSpecular/SpecularPlotCanvas.h
+++ b/GUI/View/PlotSpecular/SpecularPlotCanvas.h
@@ -27,6 +27,7 @@ class SpecularPlot;
 //! Contains SpecularPlot for specular data presentation, and provides status string appearance.
 
 class SpecularPlotCanvas : public QWidget {
+    Q_OBJECT
 public:
     explicit SpecularPlotCanvas(QWidget* parent = nullptr);
 
diff --git a/GUI/View/PlotUtil/FontScalingEvent.h b/GUI/View/PlotUtil/FontScalingEvent.h
index 6597de89dd0d14be3a512690d7c5a1367ee4609f..cc60e93c6067e025357e020ee6c331f59d18a7e2 100644
--- a/GUI/View/PlotUtil/FontScalingEvent.h
+++ b/GUI/View/PlotUtil/FontScalingEvent.h
@@ -26,6 +26,7 @@ class ScientificPlot;
 //! on resize events.
 
 class FontScalingEvent : public QObject {
+    Q_OBJECT
 public:
     explicit FontScalingEvent(ScientificPlot* plot, QWidget* parent);
 
diff --git a/GUI/View/PlotUtil/StatusLabel.h b/GUI/View/PlotUtil/StatusLabel.h
index 9fadf1dca7ee63fc0ab5bffad1254042f4fdc4b0..b0684aaa7e416f0494f47b664b438f4e21025ff0 100644
--- a/GUI/View/PlotUtil/StatusLabel.h
+++ b/GUI/View/PlotUtil/StatusLabel.h
@@ -26,6 +26,7 @@ class QPaintEvent;
 //! depending from available space.
 
 class StatusLabel : public QFrame {
+    Q_OBJECT
 public:
     explicit StatusLabel(QWidget* parent = nullptr);
 
diff --git a/GUI/View/SampleDesigner/CoreAndShellForm.h b/GUI/View/SampleDesigner/CoreAndShellForm.h
index 55e100d580c902df0a63b6de4a00466ee3123ec4..4b3771c8b466f080c689a85ab41091b8eed5000d 100644
--- a/GUI/View/SampleDesigner/CoreAndShellForm.h
+++ b/GUI/View/SampleDesigner/CoreAndShellForm.h
@@ -26,6 +26,7 @@ class SampleEditorController;
 
 //! Form for editing a core/shell particle
 class CoreAndShellForm : public QGroupBox {
+    Q_OBJECT
 public:
     CoreAndShellForm(QWidget* parent, CoreAndShellItem* item, SampleEditorController* ec,
                      bool allowRemove = true);
diff --git a/GUI/View/SampleDesigner/InterferenceForm.h b/GUI/View/SampleDesigner/InterferenceForm.h
index ae96618693c72ea690519f798ea7a45ef88466ee..201053631e59c8c29c1c2da8f46e8a208906b3f7 100644
--- a/GUI/View/SampleDesigner/InterferenceForm.h
+++ b/GUI/View/SampleDesigner/InterferenceForm.h
@@ -24,6 +24,7 @@ class SampleEditorController;
 
 //! Form for editing interference functions
 class InterferenceForm : public QGroupBox {
+    Q_OBJECT
 public:
     InterferenceForm(QWidget* parent, ParticleLayoutItem* layoutItem, SampleEditorController* ec);
 
diff --git a/GUI/View/SampleDesigner/LayerForm.h b/GUI/View/SampleDesigner/LayerForm.h
index 5ec3ec215842d6f84a63697131d933176af426f1..8b0169bcec74dbef4ecf3f4a20729d8fce63d598 100644
--- a/GUI/View/SampleDesigner/LayerForm.h
+++ b/GUI/View/SampleDesigner/LayerForm.h
@@ -24,8 +24,8 @@ class WidgetMoverButton;
 
 //! Form for editing a layer
 class LayerForm : public QGroupBox {
-    Q_OBJECT // critically important ... even if we don't understand why
-        public : LayerForm(QWidget* parent, LayerItem* layer, SampleEditorController* ec);
+    Q_OBJECT
+public : LayerForm(QWidget* parent, LayerItem* layer, SampleEditorController* ec);
 
     void enableStructureEditing(bool b);
     void updateLayerPositionDependentElements();
diff --git a/GUI/View/SampleDesigner/MaterialInplaceForm.h b/GUI/View/SampleDesigner/MaterialInplaceForm.h
index e18074cadc17a86d11581fd22ba878eb2ab4625d..068ff3756beacb0ec8e55abdc42fe8da22b67995 100644
--- a/GUI/View/SampleDesigner/MaterialInplaceForm.h
+++ b/GUI/View/SampleDesigner/MaterialInplaceForm.h
@@ -23,6 +23,7 @@ class SampleEditorController;
 
 //! Form to select a material and to edit it in-place
 class MaterialInplaceForm : public QWidget {
+    Q_OBJECT
 public:
     MaterialInplaceForm(QWidget* parent, ItemWithMaterial* item, SampleEditorController* ec);
 
diff --git a/GUI/View/SampleDesigner/ScriptPanel.h b/GUI/View/SampleDesigner/ScriptPanel.h
index 15f676492e9947a7f07a2efff5c79086d11ee7e7..4269616f041f71247b668ddc10572af2273b3714 100644
--- a/GUI/View/SampleDesigner/ScriptPanel.h
+++ b/GUI/View/SampleDesigner/ScriptPanel.h
@@ -29,6 +29,7 @@ class UpdateTimer;
 //! Resides at the bottom of SampleView and displays a Python script.
 
 class ScriptPanel : public QWidget {
+    Q_OBJECT
 public:
     explicit ScriptPanel(QWidget* parent);
 
diff --git a/GUI/View/SampleView/RealspacePanel.h b/GUI/View/SampleView/RealspacePanel.h
index 8ca6d75e6d6c43cd0cc01e8560733880eceff37e..31f5493124a08487f79b3d45f11d621462b520e8 100644
--- a/GUI/View/SampleView/RealspacePanel.h
+++ b/GUI/View/SampleView/RealspacePanel.h
@@ -22,6 +22,7 @@ class RealspaceWidget;
 //! Panel to show 3D view of sample. Contains toolbar and RealspaceWidget
 
 class RealspacePanel : public QWidget {
+    Q_OBJECT
 public:
     RealspacePanel(QWidget* parent);
 
diff --git a/Img3D/View/Canvas.h b/Img3D/View/Canvas.h
index 5cd545b2012843b42451ee13fb2d5a01cafa9fc5..adf576950a9f7d8dec60fbbe65b2ed27bcf7ad47 100644
--- a/Img3D/View/Canvas.h
+++ b/Img3D/View/Canvas.h
@@ -31,6 +31,7 @@ class PlottableBody;
 class Shader;
 
 class Canvas : public QOpenGLWidget, protected QOpenGLFunctions {
+    Q_OBJECT
 public:
     Canvas();
     ~Canvas() override;