diff --git a/MantidPlot/CMakeLists.txt b/MantidPlot/CMakeLists.txt
index 7d198a78cc35f1409e627f52f0d62591e976823e..1073fef7c288ed47e50b6481963fc1341de57ce0 100644
--- a/MantidPlot/CMakeLists.txt
+++ b/MantidPlot/CMakeLists.txt
@@ -816,7 +816,7 @@ target_link_libraries(MantidPlot
                       ${CORE_MANTIDLIBS}
                       PythonInterfaceCore
                       MantidQtWidgetsCommonQt4
-                      MantidQtWidgetsLegacyQwtQt4
+                      MantidQtWidgetsPlottingQt4
                       MantidQtWidgetsFactoryQt4
                       MantidQtWidgetsInstrumentViewQt4
                       MantidQtWidgetsSliceViewerQt4
diff --git a/MantidPlot/src/ApplicationWindow.cpp b/MantidPlot/src/ApplicationWindow.cpp
index c0edcdb8ef8ba3a542875353b984a66d134e4985..b86fdc299b242fa110af92948e4000e46c08e60e 100644
--- a/MantidPlot/src/ApplicationWindow.cpp
+++ b/MantidPlot/src/ApplicationWindow.cpp
@@ -73,7 +73,7 @@
 #include "LineDialog.h"
 #include "LogisticFit.h"
 #include "MantidQtWidgets/Common/TSVSerialiser.h"
-#include "MantidQtWidgets/LegacyQwt/ScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/ScaleEngine.h"
 #include "MatrixCommand.h"
 #include "MatrixDialog.h"
 #include "MatrixModel.h"
diff --git a/MantidPlot/src/AxesDialog.cpp b/MantidPlot/src/AxesDialog.cpp
index f904ae0dc2c4044efb35fed40e96c8c2bdb26fe8..8548910e0720d35d931f9177eeefb32704387316 100644
--- a/MantidPlot/src/AxesDialog.cpp
+++ b/MantidPlot/src/AxesDialog.cpp
@@ -33,7 +33,7 @@ Description          : General plot options dialog
 #include "Graph.h"
 #include "Grid.h"
 #include "MantidQtWidgets/Common/DoubleSpinBox.h"
-#include "MantidQtWidgets/LegacyQwt/qwt_compat.h"
+#include "MantidQtWidgets/Plotting/Qwt/qwt_compat.h"
 #include "MyParser.h"
 #include "Plot.h"
 #include "ScaleDraw.h"
@@ -63,7 +63,7 @@ Description          : General plot options dialog
 #include <QTimeEdit>
 #include <QVector>
 
-#include "MantidQtWidgets/LegacyQwt/ScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/ScaleEngine.h"
 #include <qwt_plot.h>
 #include <qwt_scale_widget.h>
 
diff --git a/MantidPlot/src/AxisDetails.cpp b/MantidPlot/src/AxisDetails.cpp
index 0135941411166c4c5ede781fd03ae063eb95b3f1..a4f20dc0234562b45ec9006f6951cc9bd77e2fb5 100644
--- a/MantidPlot/src/AxisDetails.cpp
+++ b/MantidPlot/src/AxisDetails.cpp
@@ -11,8 +11,8 @@
 #include "AxisDetails.h"
 #include "ApplicationWindow.h"
 #include "MantidQtWidgets/Common/DoubleSpinBox.h"
-#include "MantidQtWidgets/LegacyQwt/ScaleEngine.h"
-#include "MantidQtWidgets/LegacyQwt/qwt_compat.h"
+#include "MantidQtWidgets/Plotting/Qwt/ScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/qwt_compat.h"
 #include "MyParser.h"
 #include "Plot.h"
 #include <qwt_scale_widget.h>
diff --git a/MantidPlot/src/Graph.cpp b/MantidPlot/src/Graph.cpp
index e08d3d805207ac09dc9ea0703ebfdce58357a4f8..9ceaaef53e7b0df94c981ba05fb363cab8c6539c 100644
--- a/MantidPlot/src/Graph.cpp
+++ b/MantidPlot/src/Graph.cpp
@@ -28,8 +28,8 @@
  *                                                                         *
  ***************************************************************************/
 
-#include "MantidQtWidgets/LegacyQwt/ScaleEngine.h"
-#include "MantidQtWidgets/LegacyQwt/qwt_compat.h"
+#include "MantidQtWidgets/Plotting/Qwt/ScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/qwt_compat.h"
 #include <QVarLengthArray>
 
 #include "ApplicationWindow.h"
@@ -65,8 +65,8 @@
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidKernel/Strings.h"
 #include "MantidQtWidgets/Common/PlotAxis.h"
-#include "MantidQtWidgets/LegacyQwt/QwtRasterDataMD.h"
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtRasterDataMD.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtWorkspaceSpectrumData.h"
 
 #include "MantidQtWidgets/Common/TSVSerialiser.h"
 
diff --git a/MantidPlot/src/Graph.h b/MantidPlot/src/Graph.h
index b93f8f45805e7d6328719006981661ac58cc2c23..160293e199c49eb74a78aa902513c806c0c25701 100644
--- a/MantidPlot/src/Graph.h
+++ b/MantidPlot/src/Graph.h
@@ -49,7 +49,7 @@
 #endif
 #include "AxesDialog.h"
 #include "MantidQtWidgets/Common/GraphOptions.h"
-#include "MantidQtWidgets/LegacyQwt/ScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/ScaleEngine.h"
 #include "MultiLayer.h"
 #include "Plot.h"
 #include "PlotToolInterface.h"
diff --git a/MantidPlot/src/GridDetails.cpp b/MantidPlot/src/GridDetails.cpp
index 0c8545378e62b615ccdba9a1e04b39393fc433bf..24999f7286050662ce0df13b99dbe29dc49d19ac 100644
--- a/MantidPlot/src/GridDetails.cpp
+++ b/MantidPlot/src/GridDetails.cpp
@@ -13,8 +13,8 @@
 #include <qwt_scale_widget.h>
 //#include <qwt_plot.h>
 #include "MantidQtWidgets/Common/DoubleSpinBox.h"
-#include "MantidQtWidgets/LegacyQwt/ScaleEngine.h"
-#include "MantidQtWidgets/LegacyQwt/qwt_compat.h"
+#include "MantidQtWidgets/Plotting/Qwt/ScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/qwt_compat.h"
 #include "Plot.h"
 
 #include <ColorBox.h>
diff --git a/MantidPlot/src/Mantid/MantidCurve.cpp b/MantidPlot/src/Mantid/MantidCurve.cpp
index 3fee2e4262f7a6590211dbf5d98ccaef751c125a..de736b265a469c831ebe7c4de4d74e87b05e7179 100644
--- a/MantidPlot/src/Mantid/MantidCurve.cpp
+++ b/MantidPlot/src/Mantid/MantidCurve.cpp
@@ -10,7 +10,7 @@
 #include <qwt_symbol.h>
 
 #include "MantidAPI/AnalysisDataService.h"
-#include "MantidQtWidgets/LegacyQwt/MantidQwtWorkspaceData.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidQwtWorkspaceData.h"
 
 #include "../ApplicationWindow.h"
 #include "../Graph.h"
diff --git a/MantidPlot/src/Mantid/MantidCurve.h b/MantidPlot/src/Mantid/MantidCurve.h
index 8d79c4ae2895de8f3c97a9d7a4e491c74896ad26..d3324a20aa95d19a74e35bf3973094f610ba8d68 100644
--- a/MantidPlot/src/Mantid/MantidCurve.h
+++ b/MantidPlot/src/Mantid/MantidCurve.h
@@ -10,7 +10,7 @@
 #include "../PlotCurve.h"
 #include "MantidAPI/Workspace_fwd.h"
 #include "MantidQtWidgets/Common/WorkspaceObserver.h"
-#include "MantidQtWidgets/LegacyQwt/MantidQwtWorkspaceData.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidQwtWorkspaceData.h"
 
 class Graph;
 class ErrorBarSettings;
diff --git a/MantidPlot/src/Mantid/MantidMDCurve.h b/MantidPlot/src/Mantid/MantidMDCurve.h
index 0bc5c6d3d3bfc463f57f52639362f4ba836eb9ed..d3d1cbcd399492745bb272cdf40f829690861331 100644
--- a/MantidPlot/src/Mantid/MantidMDCurve.h
+++ b/MantidPlot/src/Mantid/MantidMDCurve.h
@@ -9,7 +9,7 @@
 
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidCurve.h"
-#include "MantidQtWidgets/LegacyQwt/MantidQwtIMDWorkspaceData.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidQwtIMDWorkspaceData.h"
 #include <boost/shared_ptr.hpp>
 
 // Forward definitions
diff --git a/MantidPlot/src/Mantid/MantidMatrixCurve.cpp b/MantidPlot/src/Mantid/MantidMatrixCurve.cpp
index 4280e398c0fde842ba01e0b56232527bafef9719..7d0aa76c673b12bcaddd37fc597301927260f8a7 100644
--- a/MantidPlot/src/Mantid/MantidMatrixCurve.cpp
+++ b/MantidPlot/src/Mantid/MantidMatrixCurve.cpp
@@ -13,8 +13,8 @@
 #include "MantidAPI/Axis.h"
 #include "MantidAPI/MatrixWorkspace.h"
 
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceBinData.h"
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtWorkspaceBinData.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtWorkspaceSpectrumData.h"
 
 #include "../ApplicationWindow.h"
 #include "../Graph.h"
diff --git a/MantidPlot/src/Mantid/MantidUI.h b/MantidPlot/src/Mantid/MantidUI.h
index e874cd3eb9be33bac510e099eb37012986c39942..93f5ce9ddb631ecc8dfdfb70712c131368ccada8 100644
--- a/MantidPlot/src/Mantid/MantidUI.h
+++ b/MantidPlot/src/Mantid/MantidUI.h
@@ -28,7 +28,7 @@
 
 #include "MantidQtWidgets/Common/AlgorithmDialog.h"
 #include "MantidQtWidgets/Common/MantidAlgorithmMetatype.h"
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtWorkspaceSpectrumData.h"
 
 #include "MantidPlotUtilities.h"
 
diff --git a/MantidPlot/src/Plot.cpp b/MantidPlot/src/Plot.cpp
index a5847175b1ffa643d253606bd2f85fa9b88b3272..7af1aa6c26532a0606d3f135aca2af23369c5c4f 100644
--- a/MantidPlot/src/Plot.cpp
+++ b/MantidPlot/src/Plot.cpp
@@ -31,8 +31,8 @@
 #include "Graph.h"
 #include "Grid.h"
 #include "LegendWidget.h"
-#include "MantidQtWidgets/LegacyQwt/ScaleEngine.h"
-#include "MantidQtWidgets/LegacyQwt/qwt_compat.h"
+#include "MantidQtWidgets/Plotting/Qwt/ScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/qwt_compat.h"
 #include "PlotCurve.h"
 #include "ScaleDraw.h"
 #include "Spectrogram.h"
diff --git a/MantidPlot/src/Plot3DDialog.cpp b/MantidPlot/src/Plot3DDialog.cpp
index fc28c236dd633d0e3411649add773f108bc53793..44e1cac3bebf76e46848d581412bdd93bf062754 100644
--- a/MantidPlot/src/Plot3DDialog.cpp
+++ b/MantidPlot/src/Plot3DDialog.cpp
@@ -41,7 +41,7 @@
 #include <QWidgetList>
 
 #include "MantidKernel/ConfigService.h"
-#include "MantidQtWidgets/LegacyQwt/MantidColorMap.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidColorMap.h"
 #include <qwt3d_color.h>
 
 using Mantid::Kernel::ConfigService;
diff --git a/MantidPlot/src/PlotCurve.cpp b/MantidPlot/src/PlotCurve.cpp
index bcae3c9eb1b443833525bc6785b3202b17039714..a18fdce95ee37f9a082b101d840c99a68a412f15 100644
--- a/MantidPlot/src/PlotCurve.cpp
+++ b/MantidPlot/src/PlotCurve.cpp
@@ -32,9 +32,9 @@
 #include "Mantid/ErrorBarSettings.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/MatrixWorkspace.h"
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceBinData.h"
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h"
-#include "MantidQtWidgets/LegacyQwt/ScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtWorkspaceBinData.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtWorkspaceSpectrumData.h"
+#include "MantidQtWidgets/Plotting/Qwt/ScaleEngine.h"
 #include "PatternBox.h"
 #include "ScaleDraw.h"
 #include "SymbolBox.h"
diff --git a/MantidPlot/src/PlotDialog.cpp b/MantidPlot/src/PlotDialog.cpp
index aa78aa019dc26e3412a17da93c6ed9caa237d41b..e67d27b1de40399f0bd15f23ea4ba1e65cc6d0cc 100644
--- a/MantidPlot/src/PlotDialog.cpp
+++ b/MantidPlot/src/PlotDialog.cpp
@@ -49,7 +49,7 @@
 #include <MantidQtWidgets/Common/pixmaps.h>
 
 #include "MantidKernel/ConfigService.h"
-#include "MantidQtWidgets/LegacyQwt/MantidColorMap.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidColorMap.h"
 #include <QCheckBox>
 #include <QComboBox>
 #include <QDateTime>
diff --git a/MantidPlot/src/ScaleDetails.cpp b/MantidPlot/src/ScaleDetails.cpp
index b5e3889c4abb1996da831bf259aab05eca6e4f46..a8646fb5210e234ba1a932d4e042265e0a7d3f8b 100644
--- a/MantidPlot/src/ScaleDetails.cpp
+++ b/MantidPlot/src/ScaleDetails.cpp
@@ -12,8 +12,8 @@
 #include "ApplicationWindow.h"
 #include "MantidQtWidgets/Common/DoubleSpinBox.h"
 
-#include "MantidQtWidgets/LegacyQwt/ScaleEngine.h"
-#include "MantidQtWidgets/LegacyQwt/qwt_compat.h"
+#include "MantidQtWidgets/Plotting/Qwt/ScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/qwt_compat.h"
 #include "Plot.h"
 
 #include "MantidKernel/Logger.h"
diff --git a/MantidPlot/src/ScaleDraw.cpp b/MantidPlot/src/ScaleDraw.cpp
index 3ddc53b4f183dd7c8e3ffc50fbac3a2b04e71f91..66a2ded13104697c42dee8fc3ca722d0af729a9e 100644
--- a/MantidPlot/src/ScaleDraw.cpp
+++ b/MantidPlot/src/ScaleDraw.cpp
@@ -17,7 +17,7 @@
  ***************************************************************************/
 #include "ScaleDraw.h"
 #include "Graph.h"
-#include "MantidQtWidgets/LegacyQwt/ScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/ScaleEngine.h"
 #include "MyParser.h"
 
 #include <QPainter>
diff --git a/MantidPlot/src/Spectrogram.cpp b/MantidPlot/src/Spectrogram.cpp
index c97cf47309ff577ce26b7bb5799b848ca2c681ad..161ac1242d4fa673db1406b2fc7e78c1cba1a6f0 100644
--- a/MantidPlot/src/Spectrogram.cpp
+++ b/MantidPlot/src/Spectrogram.cpp
@@ -26,7 +26,7 @@
  *                                                                         *
  ***************************************************************************/
 #include "Spectrogram.h"
-#include "MantidQtWidgets/LegacyQwt/qwt_compat.h"
+#include "MantidQtWidgets/Plotting/Qwt/qwt_compat.h"
 #include <QColor>
 #include <QPainter>
 #include <QPen>
@@ -43,8 +43,8 @@
 #include "MantidKernel/Strings.h"
 #include "MantidKernel/make_unique.h"
 #include "MantidQtWidgets/Common/PlotAxis.h"
-#include "MantidQtWidgets/LegacyQwt/QwtRasterDataMD.h"
-#include "MantidQtWidgets/LegacyQwt/SignalRange.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtRasterDataMD.h"
+#include "MantidQtWidgets/Plotting/Qwt/SignalRange.h"
 
 #include "MantidQtWidgets/Common/TSVSerialiser.h"
 
diff --git a/MantidPlot/src/Spectrogram.h b/MantidPlot/src/Spectrogram.h
index a3ef8acc9f0bc8fc74282b774baca6e369ed9e49..fee08702411e0eca97c16d1c6491db9ccb58ed41 100644
--- a/MantidPlot/src/Spectrogram.h
+++ b/MantidPlot/src/Spectrogram.h
@@ -42,7 +42,7 @@
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidQtWidgets/Common/WorkspaceObserver.h"
 #include "MantidQtWidgets/InstrumentView/InstrumentWidget.h"
-#include "MantidQtWidgets/LegacyQwt/MantidColorMap.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidColorMap.h"
 
 #include <QPainter>
 #include <boost/shared_ptr.hpp>
diff --git a/buildconfig/CMake/QtTargetFunctions.cmake b/buildconfig/CMake/QtTargetFunctions.cmake
index e34bce07227836453b981a430c8af0062d047ff3..3b8cdcf195eb7a3722d9fe9c59e7c167dc58565e 100644
--- a/buildconfig/CMake/QtTargetFunctions.cmake
+++ b/buildconfig/CMake/QtTargetFunctions.cmake
@@ -159,9 +159,11 @@ function (mtd_add_qt_target)
   endif()
 
   if (PARSED_LIBRARY)
-    add_library (${_target} ${_target_exclude_from_all} ${ALL_SRC} ${UI_HEADERS} ${PARSED_NOMOC} ${RES_FILES})
+    add_library (${_target} ${_target_exclude_from_all} ${ALL_SRC} ${UI_HEADERS}
+      ${PARSED_MOC} ${PARSED_NOMOC} ${RES_FILES})
   elseif (PARSED_EXECUTABLE)
-    add_executable (${_target} ${_target_exclude_from_all} ${ALL_SRC} ${UI_HEADERS} ${PARSED_NOMOC} ${RES_FILES})
+    add_executable (${_target} ${_target_exclude_from_all} ${ALL_SRC} ${UI_HEADERS}
+      ${PARSED_NOMOC} ${PARSED_NOMOC} ${RES_FILES})
   else ()
     message (FATAL_ERROR "Unknown target type. Options=LIBRARY,EXECUTABLE")
   endif()
diff --git a/qt/paraview_ext/VatesSimpleGui/ViewWidgets/CMakeLists.txt b/qt/paraview_ext/VatesSimpleGui/ViewWidgets/CMakeLists.txt
index 7bfcd02b630762a70f10385ba2b4d98bbcebb72d..30a1361721e5aa959e929e264582008d681f2d4f 100644
--- a/qt/paraview_ext/VatesSimpleGui/ViewWidgets/CMakeLists.txt
+++ b/qt/paraview_ext/VatesSimpleGui/ViewWidgets/CMakeLists.txt
@@ -121,7 +121,7 @@ mtd_add_qt_library(
 	Qwt5
   MTD_QT_LINK_LIBS
 	MantidQtWidgetsCommon
-	MantidQtWidgetsLegacyQwt
+	MantidQtWidgetsPlotting
 	VatesSimpleGuiQtWidgets
 	MantidQtWidgetsFactory
 	MantidQtWidgetsSliceViewer
diff --git a/qt/python/mantidqtpython/CMakeLists.txt b/qt/python/mantidqtpython/CMakeLists.txt
index ca1c9d89ed8485d4bab383cef3345cb40e56e4c7..6422f10fe9ed89a02b799ee40d74a4a612a91f7b 100644
--- a/qt/python/mantidqtpython/CMakeLists.txt
+++ b/qt/python/mantidqtpython/CMakeLists.txt
@@ -95,7 +95,7 @@ mtd_add_sip_module(MODULE_NAME mantidqtpython
                    LINK_LIBS
                      ${TCMALLOC_LIBRARIES_LINKTIME}
                      MantidQtWidgetsCommonQt4
-                     MantidQtWidgetsLegacyQwtQt4
+                     MantidQtWidgetsPlottingQt4
                      MantidQtWidgetsSliceViewerQt4
                      MantidQtWidgetsFactoryQt4
                      MantidQtWidgetsRefDetectorViewQt4
diff --git a/qt/scientific_interfaces/CMakeLists.txt b/qt/scientific_interfaces/CMakeLists.txt
index bf24f52fec668c8bbc187f113b405fe7db0d0865..c2fa584c50f3d70f50487b65f06958a8f7da105f 100644
--- a/qt/scientific_interfaces/CMakeLists.txt
+++ b/qt/scientific_interfaces/CMakeLists.txt
@@ -58,7 +58,6 @@ set ( TEST_FILES
   test/ReflSettingsPresenterTest.h
   test/ReflSettingsTabPresenterTest.h
   test/RunMapTest.h
-  test/UserInputValidatorTest.h
 )
 
 mtd_add_qt_tests (TARGET_NAME MantidQtScientificInterfacesTest
diff --git a/qt/scientific_interfaces/DynamicPDF/CMakeLists.txt b/qt/scientific_interfaces/DynamicPDF/CMakeLists.txt
index b66aa17016bdad998be46e7b24ee21b1e76405a2..152711fe205aa7838d285bd5b3f3629e8ba5bf6d 100644
--- a/qt/scientific_interfaces/DynamicPDF/CMakeLists.txt
+++ b/qt/scientific_interfaces/DynamicPDF/CMakeLists.txt
@@ -61,7 +61,7 @@ mtd_add_qt_library (TARGET_NAME MantidScientificInterfacesDynamicPDF
     Qwt5
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
+    MantidQtWidgetsPlotting
   INSTALL_DIR_BASE
     ${PLUGINS_DIR}
   OSX_INSTALL_RPATH
diff --git a/qt/scientific_interfaces/DynamicPDF/DPDFBackgroundRemover.ui b/qt/scientific_interfaces/DynamicPDF/DPDFBackgroundRemover.ui
index de63f42d2c08dce11458b7df231579596eced478..a5eb9cb9093118f90dfce2ea7c590280d5c25ff4 100644
--- a/qt/scientific_interfaces/DynamicPDF/DPDFBackgroundRemover.ui
+++ b/qt/scientific_interfaces/DynamicPDF/DPDFBackgroundRemover.ui
@@ -245,7 +245,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::DisplayCurveFit</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/DisplayCurveFit.h</header>
+   <header>MantidQtWidgets/Plotting/Qwt/DisplayCurveFit.h</header>
    <container>1</container>
   </customwidget>
   <customwidget>
diff --git a/qt/scientific_interfaces/DynamicPDF/DPDFDisplayControl.cpp b/qt/scientific_interfaces/DynamicPDF/DPDFDisplayControl.cpp
index a31163d0f089d8a6c44cfc72e39dd9f29e76ed5f..2886ccb8e43714eb17003f5c5642d2824c03a3b8 100644
--- a/qt/scientific_interfaces/DynamicPDF/DPDFDisplayControl.cpp
+++ b/qt/scientific_interfaces/DynamicPDF/DPDFDisplayControl.cpp
@@ -14,7 +14,7 @@
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidKernel/Exception.h"
-#include "MantidQtWidgets/LegacyQwt/DisplayCurveFit.h"
+#include "MantidQtWidgets/Plotting/Qwt/DisplayCurveFit.h"
 
 namespace {
 Mantid::Kernel::Logger g_log("DynamicPDF");
diff --git a/qt/scientific_interfaces/DynamicPDF/DPDFFourierTransform.cpp b/qt/scientific_interfaces/DynamicPDF/DPDFFourierTransform.cpp
index 23aa5febbcc7bf1eaf52465c45360bd84eaa13f7..154d07a9b6f1b2f52d657263e084a8e69fc97bf8 100644
--- a/qt/scientific_interfaces/DynamicPDF/DPDFFourierTransform.cpp
+++ b/qt/scientific_interfaces/DynamicPDF/DPDFFourierTransform.cpp
@@ -17,7 +17,7 @@
 #include "MantidQtWidgets/Common/AlgorithmRunner.h"
 #include "MantidQtWidgets/Common/QtPropertyBrowser/qtpropertymanager.h"
 #include "MantidQtWidgets/Common/QtPropertyBrowser/qttreepropertybrowser.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/RangeSelector.h"
 // 3rd party library headers
 #include <QMessageBox>
 
diff --git a/qt/scientific_interfaces/DynamicPDF/DPDFFourierTransform.ui b/qt/scientific_interfaces/DynamicPDF/DPDFFourierTransform.ui
index 31c4dc6aad93efb99477a6fc5a3352aee1b2a7e1..2fb13927155c91e1296075b737bfeb5118aa8e1d 100644
--- a/qt/scientific_interfaces/DynamicPDF/DPDFFourierTransform.ui
+++ b/qt/scientific_interfaces/DynamicPDF/DPDFFourierTransform.ui
@@ -61,7 +61,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/scientific_interfaces/DynamicPDF/SliceSelector.ui b/qt/scientific_interfaces/DynamicPDF/SliceSelector.ui
index 87bee7b41bec781bfb18b5c7349e75085b326769..b97b2bd2205a9acdee4aa7b56ceb3e7659d14732 100644
--- a/qt/scientific_interfaces/DynamicPDF/SliceSelector.ui
+++ b/qt/scientific_interfaces/DynamicPDF/SliceSelector.ui
@@ -229,7 +229,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::MWView</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/MWView.h</header>
+   <header>MantidQtWidgets/Plotting/Qwt/MWView.h</header>
   </customwidget>
   <customwidget>
    <class>MantidQt::MantidWidgets::DataSelector</class>
@@ -239,7 +239,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/scientific_interfaces/EnggDiffraction/CMakeLists.txt b/qt/scientific_interfaces/EnggDiffraction/CMakeLists.txt
index 39ba2c283bcc7b70ab5a61fbddd053990bd46603..75bba736011ba74e378f954e899bb521e29c363e 100644
--- a/qt/scientific_interfaces/EnggDiffraction/CMakeLists.txt
+++ b/qt/scientific_interfaces/EnggDiffraction/CMakeLists.txt
@@ -104,7 +104,7 @@ mtd_add_qt_library (TARGET_NAME MantidScientificInterfacesEnggDiffraction
       Qwt5
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
+    MantidQtWidgetsPlotting
     MantidScientificInterfacesMuon
   INSTALL_DIR_BASE
     ${PLUGINS_DIR}
diff --git a/qt/scientific_interfaces/EnggDiffraction/EnggDiffFittingPresenter.cpp b/qt/scientific_interfaces/EnggDiffraction/EnggDiffFittingPresenter.cpp
index 1ea63ad837fb6fa03c12cfd0f2595afc4bdea139..9320841a0c35e935c90196fe304eff3cd2bfbeaf 100644
--- a/qt/scientific_interfaces/EnggDiffraction/EnggDiffFittingPresenter.cpp
+++ b/qt/scientific_interfaces/EnggDiffraction/EnggDiffFittingPresenter.cpp
@@ -12,7 +12,7 @@
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/Run.h"
 #include "MantidAPI/WorkspaceFactory.h"
-#include "MantidQtWidgets/LegacyQwt/QwtHelper.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtHelper.h"
 
 #include <boost/algorithm/string.hpp>
 #include <boost/lexical_cast.hpp>
diff --git a/qt/scientific_interfaces/EnggDiffraction/EnggDiffFittingViewQtWidget.cpp b/qt/scientific_interfaces/EnggDiffraction/EnggDiffFittingViewQtWidget.cpp
index 3709f359c1d0a866f5eaf0c28efa22100d6ec813..cc5fe1a6c298d27c15d11e8a1f64014b8e80ef12 100644
--- a/qt/scientific_interfaces/EnggDiffraction/EnggDiffFittingViewQtWidget.cpp
+++ b/qt/scientific_interfaces/EnggDiffraction/EnggDiffFittingViewQtWidget.cpp
@@ -11,7 +11,7 @@
 #include "MantidAPI/IPeakFunction.h"
 #include "MantidKernel/make_unique.h"
 #include "MantidQtWidgets/Common/AlgorithmInputHistory.h"
-#include "MantidQtWidgets/LegacyQwt/PeakPicker.h"
+#include "MantidQtWidgets/Plotting/Qwt/PeakPicker.h"
 
 #include <array>
 #include <iomanip>
diff --git a/qt/scientific_interfaces/EnggDiffraction/EnggDiffGSASFittingPresenter.cpp b/qt/scientific_interfaces/EnggDiffraction/EnggDiffGSASFittingPresenter.cpp
index b9fb2b7071469e43a264fae36f4ac9e4721ee8c6..068109ab6aadba58276829f60e5cf835aca776ca 100644
--- a/qt/scientific_interfaces/EnggDiffraction/EnggDiffGSASFittingPresenter.cpp
+++ b/qt/scientific_interfaces/EnggDiffraction/EnggDiffGSASFittingPresenter.cpp
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "EnggDiffGSASFittingPresenter.h"
 #include "EnggDiffGSASRefinementMethod.h"
-#include "MantidQtWidgets/LegacyQwt/QwtHelper.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtHelper.h"
 
 namespace {
 
diff --git a/qt/scientific_interfaces/EnggDiffraction/EnggDiffMultiRunFittingWidgetPresenter.cpp b/qt/scientific_interfaces/EnggDiffraction/EnggDiffMultiRunFittingWidgetPresenter.cpp
index 038261a3705e48ffaaccef9023bc79867016a643..577fb20026b3b9370f89afa4bae931a71a75087e 100644
--- a/qt/scientific_interfaces/EnggDiffraction/EnggDiffMultiRunFittingWidgetPresenter.cpp
+++ b/qt/scientific_interfaces/EnggDiffraction/EnggDiffMultiRunFittingWidgetPresenter.cpp
@@ -10,7 +10,7 @@
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/Run.h"
 #include "MantidKernel/make_unique.h"
-#include "MantidQtWidgets/LegacyQwt/QwtHelper.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtHelper.h"
 
 #include <boost/algorithm/string.hpp>
 #include <cctype>
diff --git a/qt/scientific_interfaces/EnggDiffraction/EnggDiffractionViewQtGUI.h b/qt/scientific_interfaces/EnggDiffraction/EnggDiffractionViewQtGUI.h
index 7ca837efc5df6e2310c3f4f6293f551acd327231..e9b0aeee81022ef6ccae356b92ca56f9f3d1d32b 100644
--- a/qt/scientific_interfaces/EnggDiffraction/EnggDiffractionViewQtGUI.h
+++ b/qt/scientific_interfaces/EnggDiffraction/EnggDiffractionViewQtGUI.h
@@ -14,7 +14,7 @@
 #include "IEnggDiffractionView.h"
 #include "MantidAPI/IPeakFunction.h"
 #include "MantidQtWidgets/Common/UserSubWindow.h"
-#include "MantidQtWidgets/LegacyQwt/PeakPicker.h"
+#include "MantidQtWidgets/Plotting/Qwt/PeakPicker.h"
 
 #include "ui_EnggDiffractionQtGUI.h"
 #include "ui_EnggDiffractionQtTabCalib.h"
diff --git a/qt/scientific_interfaces/General/CMakeLists.txt b/qt/scientific_interfaces/General/CMakeLists.txt
index df77fbd9394c9f7ca014a79bc7b179e5fb429dda..a631657e0f6af27e012a30fe7270b3992fe1e0d4 100644
--- a/qt/scientific_interfaces/General/CMakeLists.txt
+++ b/qt/scientific_interfaces/General/CMakeLists.txt
@@ -4,7 +4,6 @@ set ( SRC_FILES
 	MantidEVWorker.cpp
 	SampleTransmission.cpp
 	StepScan.cpp
-	UserInputValidator.cpp
 )
 
 # Include files aren't required, but this makes them appear in Visual Studio
@@ -17,7 +16,6 @@ set ( INC_FILES
 	SampleTransmission.h
 	StepScan.h
 	Updateable.h
-	UserInputValidator.h
 )
 
 set ( MOC_FILES
@@ -56,7 +54,7 @@ mtd_add_qt_library (TARGET_NAME MantidScientificInterfacesGeneral
     Qwt5
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
+    MantidQtWidgetsPlotting
   INSTALL_DIR_BASE
       ${PLUGINS_DIR}
   OSX_INSTALL_RPATH
diff --git a/qt/scientific_interfaces/General/DataComparison.cpp b/qt/scientific_interfaces/General/DataComparison.cpp
index 876389fdda002da26ecd5b4ff100e7e6480ddb0e..6fd6137e6508182764005b61faf6d7cf83f53741 100644
--- a/qt/scientific_interfaces/General/DataComparison.cpp
+++ b/qt/scientific_interfaces/General/DataComparison.cpp
@@ -9,7 +9,7 @@
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/WorkspaceGroup.h"
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtWorkspaceSpectrumData.h"
 
 namespace {
 Mantid::Kernel::Logger g_log("DataComparison");
diff --git a/qt/scientific_interfaces/General/SampleTransmission.cpp b/qt/scientific_interfaces/General/SampleTransmission.cpp
index f9bfe5f2b757c09397172e8c308f5eba5c34746e..514131225f2b5d40f155dbacc8cbf00529c0017d 100644
--- a/qt/scientific_interfaces/General/SampleTransmission.cpp
+++ b/qt/scientific_interfaces/General/SampleTransmission.cpp
@@ -12,7 +12,7 @@
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidKernel/Statistics.h"
 #include "MantidQtWidgets/Common/HelpWindow.h"
-#include "UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 namespace {
 Mantid::Kernel::Logger g_log("SampleTransmission");
diff --git a/qt/scientific_interfaces/General/SampleTransmission.ui b/qt/scientific_interfaces/General/SampleTransmission.ui
index 9dc007df491bfc4605ff0985ad6c58deb793049c..e3e98f1868555fb3630bce74c661e5d1abbad565 100644
--- a/qt/scientific_interfaces/General/SampleTransmission.ui
+++ b/qt/scientific_interfaces/General/SampleTransmission.ui
@@ -352,7 +352,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/scientific_interfaces/ISISSANS/CMakeLists.txt b/qt/scientific_interfaces/ISISSANS/CMakeLists.txt
index a8642d5c3d85f1a6ad98e16a42374b724f92aa38..38c25a1b18604aaa0c03aefce8ed7ae20b6d5b7a 100644
--- a/qt/scientific_interfaces/ISISSANS/CMakeLists.txt
+++ b/qt/scientific_interfaces/ISISSANS/CMakeLists.txt
@@ -61,7 +61,7 @@ mtd_add_qt_library (TARGET_NAME MantidScientificInterfacesISISSANS
     Qwt5
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
+    MantidQtWidgetsPlotting
     MantidScientificInterfacesMuon
   INSTALL_DIR_BASE
     ${PLUGINS_DIR}
diff --git a/qt/scientific_interfaces/ISISSANS/SANSPlotSpecial.cpp b/qt/scientific_interfaces/ISISSANS/SANSPlotSpecial.cpp
index 6f2881b508591c4f0ac6763088340f6482abb528..500d87fc294c4fbf4d49a78941f735d636de4c0d 100644
--- a/qt/scientific_interfaces/ISISSANS/SANSPlotSpecial.cpp
+++ b/qt/scientific_interfaces/ISISSANS/SANSPlotSpecial.cpp
@@ -11,7 +11,7 @@
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidKernel/PhysicalConstants.h"
 
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/RangeSelector.h"
 
 #include "qwt_plot_curve.h"
 #include <QLineEdit>
diff --git a/qt/scientific_interfaces/Indirect/AbsorptionCorrections.h b/qt/scientific_interfaces/Indirect/AbsorptionCorrections.h
index ee7f258616406cb7c05a85ca58da3b0543b65c01..deddecf4f1908e54de7c598ee464b85820893260 100644
--- a/qt/scientific_interfaces/Indirect/AbsorptionCorrections.h
+++ b/qt/scientific_interfaces/Indirect/AbsorptionCorrections.h
@@ -13,7 +13,7 @@
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/WorkspaceGroup.h"
 
-#include "../General/UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 namespace MantidQt {
 namespace CustomInterfaces {
diff --git a/qt/scientific_interfaces/Indirect/ApplyAbsorptionCorrections.cpp b/qt/scientific_interfaces/Indirect/ApplyAbsorptionCorrections.cpp
index 81e32c3bee30b9fe6b630cc5c7460651dce1059d..17d6293176c0b158ce5ff41254bc767723f3e859 100644
--- a/qt/scientific_interfaces/Indirect/ApplyAbsorptionCorrections.cpp
+++ b/qt/scientific_interfaces/Indirect/ApplyAbsorptionCorrections.cpp
@@ -5,12 +5,12 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "ApplyAbsorptionCorrections.h"
-#include "../General/UserInputValidator.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/Run.h"
 #include "MantidAPI/TextAxis.h"
 #include "MantidAPI/WorkspaceGroup.h"
 #include "MantidQtWidgets/Common/SignalBlocker.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <QStringList>
 
diff --git a/qt/scientific_interfaces/Indirect/ApplyAbsorptionCorrections.ui b/qt/scientific_interfaces/Indirect/ApplyAbsorptionCorrections.ui
index f5bd49501f9f45c19624ca31d5f9c33f78ba8d6e..0dce7834d8ae384dacd106c39d35155d83b01a79 100644
--- a/qt/scientific_interfaces/Indirect/ApplyAbsorptionCorrections.ui
+++ b/qt/scientific_interfaces/Indirect/ApplyAbsorptionCorrections.ui
@@ -430,7 +430,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/scientific_interfaces/Indirect/CMakeLists.txt b/qt/scientific_interfaces/Indirect/CMakeLists.txt
index 519fb99c6ed4920e8ad91647c6d63b3dd628b840..b5e79a393b6aa00e50f3092122e8b3917730bf75 100644
--- a/qt/scientific_interfaces/Indirect/CMakeLists.txt
+++ b/qt/scientific_interfaces/Indirect/CMakeLists.txt
@@ -183,6 +183,7 @@ set ( MOC_FILES
     IndirectFitOutputOptionsView.h
     IndirectFitPlotPresenter.h
     IndirectFitPlotView.h
+    IndirectInstrumentConfig.h
     IndirectLoadILL.h
     IndirectMolDyn.h
     IndirectMoments.h
@@ -234,6 +235,7 @@ set ( UI_FILES
    IndirectFitDataView.ui
    IndirectFitOutputOptions.ui
    IndirectFitPreviewPlot.ui
+   IndirectInstrumentConfig.ui
    IndirectLoadILL.ui
    IndirectMolDyn.ui
    IndirectMoments.ui
@@ -280,7 +282,7 @@ mtd_add_qt_library (TARGET_NAME MantidScientificInterfacesIndirect
     Qwt5
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
+    MantidQtWidgetsPlotting
     MantidScientificInterfacesGeneral
   INSTALL_DIR_BASE
     ${PLUGINS_DIR}
diff --git a/qt/scientific_interfaces/Indirect/CalculatePaalmanPings.cpp b/qt/scientific_interfaces/Indirect/CalculatePaalmanPings.cpp
index 681b15be90c67068e78784b281d7d7b3db71bebd..aacf0a435b267f8fbd0d28948b5ee047b11bde8d 100644
--- a/qt/scientific_interfaces/Indirect/CalculatePaalmanPings.cpp
+++ b/qt/scientific_interfaces/Indirect/CalculatePaalmanPings.cpp
@@ -5,7 +5,6 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "CalculatePaalmanPings.h"
-#include "../General/UserInputValidator.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/Axis.h"
 #include "MantidAPI/MatrixWorkspace.h"
@@ -14,6 +13,7 @@
 #include "MantidKernel/Material.h"
 #include "MantidKernel/Unit.h"
 #include "MantidQtWidgets/Common/SignalBlocker.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 #include "MantidQtWidgets/Common/WorkspaceSelector.h"
 
 #include <QDoubleValidator>
diff --git a/qt/scientific_interfaces/Indirect/ContainerSubtraction.cpp b/qt/scientific_interfaces/Indirect/ContainerSubtraction.cpp
index fe3c2de77867891fccbca00070577931e8ae3458..dd19b34e4254adbc3d92060dc0889c53818462dc 100644
--- a/qt/scientific_interfaces/Indirect/ContainerSubtraction.cpp
+++ b/qt/scientific_interfaces/Indirect/ContainerSubtraction.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "ContainerSubtraction.h"
-#include "../General/UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include "MantidAPI/Axis.h"
 #include "MantidAPI/Run.h"
diff --git a/qt/scientific_interfaces/Indirect/ContainerSubtraction.ui b/qt/scientific_interfaces/Indirect/ContainerSubtraction.ui
index c5d27fbd3e25a7e5e43f238e90171b73ac31c5cb..ec5528118dcf2d58075fcf3161c03155a9eebf1c 100644
--- a/qt/scientific_interfaces/Indirect/ContainerSubtraction.ui
+++ b/qt/scientific_interfaces/Indirect/ContainerSubtraction.ui
@@ -390,7 +390,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/scientific_interfaces/Indirect/ConvFit.cpp b/qt/scientific_interfaces/Indirect/ConvFit.cpp
index 64fc0a7359eefb5d57674a074e74bf40ab906857..f556c0b4e2da93a8c6832ddde9e122a4d1a5cceb 100644
--- a/qt/scientific_interfaces/Indirect/ConvFit.cpp
+++ b/qt/scientific_interfaces/Indirect/ConvFit.cpp
@@ -7,10 +7,10 @@
 #include "ConvFit.h"
 #include "ConvFitDataPresenter.h"
 
-#include "../General/UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include "MantidQtWidgets/Common/SignalBlocker.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/RangeSelector.h"
 
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/FunctionFactory.h"
diff --git a/qt/scientific_interfaces/Indirect/DensityOfStates.cpp b/qt/scientific_interfaces/Indirect/DensityOfStates.cpp
index 1a9f8b9f4939548fa7571a1e02edb8465751718f..1439db11eba6f116ec22b8ed9fa3ccad49f7ea4a 100644
--- a/qt/scientific_interfaces/Indirect/DensityOfStates.cpp
+++ b/qt/scientific_interfaces/Indirect/DensityOfStates.cpp
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "DensityOfStates.h"
 
-#include "../General/UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/TableRow.h"
diff --git a/qt/scientific_interfaces/Indirect/Elwin.cpp b/qt/scientific_interfaces/Indirect/Elwin.cpp
index 79ba0def1ef86d184d18edd2a6a26eb860796b1c..238b69983649dbfaf84c508b4ee797057d1b736d 100644
--- a/qt/scientific_interfaces/Indirect/Elwin.cpp
+++ b/qt/scientific_interfaces/Indirect/Elwin.cpp
@@ -5,11 +5,11 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "Elwin.h"
-#include "../General/UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include "MantidGeometry/Instrument.h"
 #include "MantidQtWidgets/Common/SignalBlocker.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/RangeSelector.h"
 
 #include <QFileInfo>
 
diff --git a/qt/scientific_interfaces/Indirect/Elwin.ui b/qt/scientific_interfaces/Indirect/Elwin.ui
index f5b32112c1de3d8db9e5ec9412e383c5b3464ecb..2da67cd02619728e2b57817041bdeadf5f362f7e 100644
--- a/qt/scientific_interfaces/Indirect/Elwin.ui
+++ b/qt/scientific_interfaces/Indirect/Elwin.ui
@@ -371,7 +371,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
   <customwidget>
diff --git a/qt/scientific_interfaces/Indirect/IIndirectFitDataView.h b/qt/scientific_interfaces/Indirect/IIndirectFitDataView.h
index a133532bf16ad644ef18b361965eb2b53b66369c..ebb26b6e0e6ded9f81b574de1d4fa864edf21a25 100644
--- a/qt/scientific_interfaces/Indirect/IIndirectFitDataView.h
+++ b/qt/scientific_interfaces/Indirect/IIndirectFitDataView.h
@@ -7,8 +7,8 @@
 #ifndef MANTIDQTCUSTOMINTERFACESIDA_IINDIRECTFITDATAVIEW_H_
 #define MANTIDQTCUSTOMINTERFACESIDA_IINDIRECTFITDATAVIEW_H_
 
-#include "../General/UserInputValidator.h"
 #include "DllConfig.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <QObject>
 #include <QTabWidget>
@@ -62,4 +62,4 @@ signals:
 } // namespace CustomInterfaces
 } // namespace MantidQt
 
-#endif
\ No newline at end of file
+#endif
diff --git a/qt/scientific_interfaces/Indirect/ILLEnergyTransfer.cpp b/qt/scientific_interfaces/Indirect/ILLEnergyTransfer.cpp
index 1275939d7cdf73be8af6a2df291c80d44b6c2398..099f8a3fa79bef20241467b4b0f3da5563aaf42f 100644
--- a/qt/scientific_interfaces/Indirect/ILLEnergyTransfer.cpp
+++ b/qt/scientific_interfaces/Indirect/ILLEnergyTransfer.cpp
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "ILLEnergyTransfer.h"
 
-#include "../General/UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <QFileInfo>
 #include <QInputDialog>
diff --git a/qt/scientific_interfaces/Indirect/ISISCalibration.h b/qt/scientific_interfaces/Indirect/ISISCalibration.h
index 645460218139f46dcbfc77791c4748e0e3abf312..a7260fbabe2274c1e78875e60ebd430bd426c084 100644
--- a/qt/scientific_interfaces/Indirect/ISISCalibration.h
+++ b/qt/scientific_interfaces/Indirect/ISISCalibration.h
@@ -7,9 +7,9 @@
 #ifndef MANTIDQTCUSTOMINTERFACES_ISISCALIBRATION_H_
 #define MANTIDQTCUSTOMINTERFACES_ISISCALIBRATION_H_
 
-#include "../General/UserInputValidator.h"
 #include "IndirectDataReductionTab.h"
 #include "MantidKernel/System.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 #include "ui_ISISCalibration.h"
 
 namespace MantidQt {
diff --git a/qt/scientific_interfaces/Indirect/ISISCalibration.ui b/qt/scientific_interfaces/Indirect/ISISCalibration.ui
index 31d197a5daf61dfa35d74b3e0a348ef27d7d7b67..dcffb19d037bc84dcafe2bacb30011e083103395 100644
--- a/qt/scientific_interfaces/Indirect/ISISCalibration.ui
+++ b/qt/scientific_interfaces/Indirect/ISISCalibration.ui
@@ -350,7 +350,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/scientific_interfaces/Indirect/ISISDiagnostics.cpp b/qt/scientific_interfaces/Indirect/ISISDiagnostics.cpp
index f0ec6cb954b5bf6dbd6a96c60ade7fa064b5dac6..c17c217a177a7da336ea27aac86fc710f064107e 100644
--- a/qt/scientific_interfaces/Indirect/ISISDiagnostics.cpp
+++ b/qt/scientific_interfaces/Indirect/ISISDiagnostics.cpp
@@ -6,10 +6,10 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "ISISDiagnostics.h"
 
-#include "../General/UserInputValidator.h"
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/WorkspaceGroup.h"
 #include "MantidKernel/Logger.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <QFileInfo>
 
diff --git a/qt/scientific_interfaces/Indirect/ISISDiagnostics.ui b/qt/scientific_interfaces/Indirect/ISISDiagnostics.ui
index e3d7e441779ac23131c4108a1230541975d0a536..552c5bcb2c61fc5ebd66d0777a31189f51880380 100644
--- a/qt/scientific_interfaces/Indirect/ISISDiagnostics.ui
+++ b/qt/scientific_interfaces/Indirect/ISISDiagnostics.ui
@@ -271,7 +271,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/scientific_interfaces/Indirect/ISISEnergyTransfer.cpp b/qt/scientific_interfaces/Indirect/ISISEnergyTransfer.cpp
index 437e5aafce27565a1fdd2be62afe44d474a0933c..2cada32ab36e27af6d35b2c1a0cd0d3f6f9527c9 100644
--- a/qt/scientific_interfaces/Indirect/ISISEnergyTransfer.cpp
+++ b/qt/scientific_interfaces/Indirect/ISISEnergyTransfer.cpp
@@ -6,10 +6,10 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "ISISEnergyTransfer.h"
 
-#include "../General/UserInputValidator.h"
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidAPI/WorkspaceGroup.h"
 #include "MantidAPI/WorkspaceHistory.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <QFileInfo>
 
diff --git a/qt/scientific_interfaces/Indirect/IndirectBayesTab.cpp b/qt/scientific_interfaces/Indirect/IndirectBayesTab.cpp
index 91442e6ba5d95911845d27a520594cd43b367466..69c3650ad11105b637cc4216fb3d03c1ca0c8f86 100644
--- a/qt/scientific_interfaces/Indirect/IndirectBayesTab.cpp
+++ b/qt/scientific_interfaces/Indirect/IndirectBayesTab.cpp
@@ -5,10 +5,6 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "IndirectBayesTab.h"
-#include "MantidAPI/AlgorithmManager.h"
-#include "MantidAPI/AnalysisDataService.h"
-#include "MantidQtWidgets/Common/UserSubWindow.h"
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h"
 
 namespace MantidQt {
 namespace CustomInterfaces {
diff --git a/qt/scientific_interfaces/Indirect/IndirectBayesTab.h b/qt/scientific_interfaces/Indirect/IndirectBayesTab.h
index ff9162e5c6c0fb83b49dd21e9b71ab985f17f62d..712b94f5d5603cb16213a27a1212c4a899999715 100644
--- a/qt/scientific_interfaces/Indirect/IndirectBayesTab.h
+++ b/qt/scientific_interfaces/Indirect/IndirectBayesTab.h
@@ -8,21 +8,7 @@
 #define MANTID_CUSTOMINTERFACES_INDIRECTBAYESTAB_H_
 
 #include "IndirectTab.h"
-#include "MantidAPI/MatrixWorkspace_fwd.h"
-#include "MantidQtWidgets/Common/AlgorithmRunner.h"
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
-#include <MantidQtWidgets/Common/QtPropertyBrowser/QtDoublePropertyManager>
-#include <MantidQtWidgets/Common/QtPropertyBrowser/QtIntPropertyManager>
-#include <MantidQtWidgets/Common/QtPropertyBrowser/QtTreePropertyBrowser>
-
-#include <QDoubleValidator>
-#include <QMap>
 #include <QSettings>
-#include <QWidget>
-
-#include <qwt_plot.h>
-#include <qwt_plot_curve.h>
 
 // Suppress a warning coming out of code that isn't ours
 #if defined(__INTEL_COMPILER)
diff --git a/qt/scientific_interfaces/Indirect/IndirectDataReduction.ui b/qt/scientific_interfaces/Indirect/IndirectDataReduction.ui
index d377616ef679a08fc0a7cadded16ff430a828e90..469a8a542d5030b680b074a5fde9e9b72b0fc314 100644
--- a/qt/scientific_interfaces/Indirect/IndirectDataReduction.ui
+++ b/qt/scientific_interfaces/Indirect/IndirectDataReduction.ui
@@ -145,7 +145,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::IndirectInstrumentConfig</class>
    <extends>QComboBox</extends>
-   <header>MantidQtWidgets/Common/IndirectInstrumentConfig.h</header>
+   <header>IndirectInstrumentConfig.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
diff --git a/qt/scientific_interfaces/Indirect/IndirectDataReductionTab.h b/qt/scientific_interfaces/Indirect/IndirectDataReductionTab.h
index 519f3879a302e570de7ce86aabd2eccec96d5c71..1878bbccd03e1deb4ee78fac04b421b12ead3aa2 100644
--- a/qt/scientific_interfaces/Indirect/IndirectDataReductionTab.h
+++ b/qt/scientific_interfaces/Indirect/IndirectDataReductionTab.h
@@ -7,24 +7,8 @@
 #ifndef MANTID_CUSTOMINTERFACES_INDIRECTDATAREDUCTIONTAB_H_
 #define MANTID_CUSTOMINTERFACES_INDIRECTDATAREDUCTIONTAB_H_
 
+#include "IndirectInstrumentConfig.h"
 #include "IndirectTab.h"
-#include "MantidAPI/AlgorithmManager.h"
-#include "MantidAPI/AnalysisDataService.h"
-#include "MantidKernel/System.h"
-#include "MantidQtWidgets/Common/AlgorithmRunner.h"
-#include "MantidQtWidgets/Common/BatchAlgorithmRunner.h"
-#include "MantidQtWidgets/Common/IndirectInstrumentConfig.h"
-#include "MantidQtWidgets/Common/PythonRunner.h"
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
-
-#include <MantidQtWidgets/Common/QtPropertyBrowser/QtIntPropertyManager>
-#include <MantidQtWidgets/Common/QtPropertyBrowser/QtTreePropertyBrowser>
-#include <QDoubleValidator>
-#include <QMap>
-
-#include <qwt_plot.h>
-#include <qwt_plot_curve.h>
 
 // Suppress a warning coming out of code that isn't ours
 #if defined(__INTEL_COMPILER)
diff --git a/qt/scientific_interfaces/Indirect/IndirectDiffractionReduction.ui b/qt/scientific_interfaces/Indirect/IndirectDiffractionReduction.ui
index 9177d3a29d1932d04b82bd408daee016a19579f0..73d313f6b226bb9d8ed9004aa62f9ec560072f20 100644
--- a/qt/scientific_interfaces/Indirect/IndirectDiffractionReduction.ui
+++ b/qt/scientific_interfaces/Indirect/IndirectDiffractionReduction.ui
@@ -906,7 +906,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::IndirectInstrumentConfig</class>
    <extends>QComboBox</extends>
-   <header>MantidQtWidgets/Common/IndirectInstrumentConfig.h</header>
+   <header>IndirectInstrumentConfig.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
diff --git a/qt/scientific_interfaces/Indirect/IndirectFitDataView.h b/qt/scientific_interfaces/Indirect/IndirectFitDataView.h
index 7f24863b9f1693962f4242e54c37749302237490..bc48c48f4ec597ce735ed87f36ed2d457501a7b7 100644
--- a/qt/scientific_interfaces/Indirect/IndirectFitDataView.h
+++ b/qt/scientific_interfaces/Indirect/IndirectFitDataView.h
@@ -11,8 +11,8 @@
 
 #include "IIndirectFitDataView.h"
 
-#include "../General/UserInputValidator.h"
 #include "DllConfig.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <QTabWidget>
 
diff --git a/qt/scientific_interfaces/Indirect/IndirectFitPreviewPlot.ui b/qt/scientific_interfaces/Indirect/IndirectFitPreviewPlot.ui
index 91658db41ed2afbd5055b5b4cf88928355409c0e..dd30cc80ef784a68edd6718c2bd689ec216d0740 100644
--- a/qt/scientific_interfaces/Indirect/IndirectFitPreviewPlot.ui
+++ b/qt/scientific_interfaces/Indirect/IndirectFitPreviewPlot.ui
@@ -213,7 +213,7 @@ background: transparent;
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/widgets/common/src/IndirectInstrumentConfig.cpp b/qt/scientific_interfaces/Indirect/IndirectInstrumentConfig.cpp
similarity index 99%
rename from qt/widgets/common/src/IndirectInstrumentConfig.cpp
rename to qt/scientific_interfaces/Indirect/IndirectInstrumentConfig.cpp
index 888d083a1b52d119839dcc564b3881933b089d8a..1fe7965fc9fb0a018a49c031b1815e11411c9c1f 100644
--- a/qt/widgets/common/src/IndirectInstrumentConfig.cpp
+++ b/qt/scientific_interfaces/Indirect/IndirectInstrumentConfig.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/Common/IndirectInstrumentConfig.h"
+#include "IndirectInstrumentConfig.h"
 
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/ExperimentInfo.h"
diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/IndirectInstrumentConfig.h b/qt/scientific_interfaces/Indirect/IndirectInstrumentConfig.h
similarity index 98%
rename from qt/widgets/common/inc/MantidQtWidgets/Common/IndirectInstrumentConfig.h
rename to qt/scientific_interfaces/Indirect/IndirectInstrumentConfig.h
index 44fb55a49c786773059f88378f6b5df69fac3488..c069e1c6a696c613e7ebd71c72fea6d7961ff986 100644
--- a/qt/widgets/common/inc/MantidQtWidgets/Common/IndirectInstrumentConfig.h
+++ b/qt/scientific_interfaces/Indirect/IndirectInstrumentConfig.h
@@ -7,7 +7,7 @@
 #ifndef MANTIDQTMANTIDWIDGETS_INDIRECTINSTRUMENTCONFIG_H_
 #define MANTIDQTMANTIDWIDGETS_INDIRECTINSTRUMENTCONFIG_H_
 
-#include "DllOption.h"
+#include "DllConfig.h"
 #include "ui_IndirectInstrumentConfig.h"
 
 #include "MantidQtWidgets/Common/AlgorithmRunner.h"
@@ -30,7 +30,7 @@ are populated by loading an empty instrument.
 @author Dan Nixon
 */
 
-class EXPORT_OPT_MANTIDQT_COMMON IndirectInstrumentConfig
+class MANTIDQT_INDIRECT_DLL IndirectInstrumentConfig
     : public API::MantidWidget {
   Q_OBJECT
 
diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/IndirectInstrumentConfig.ui b/qt/scientific_interfaces/Indirect/IndirectInstrumentConfig.ui
similarity index 100%
rename from qt/widgets/common/inc/MantidQtWidgets/Common/IndirectInstrumentConfig.ui
rename to qt/scientific_interfaces/Indirect/IndirectInstrumentConfig.ui
diff --git a/qt/scientific_interfaces/Indirect/IndirectLoadILL.ui b/qt/scientific_interfaces/Indirect/IndirectLoadILL.ui
index f719f3cd323e68ecd2d835eabe3e89bf3e31729d..ee3a57c486ec71a9a330a29f17b6a7fa92aa6d4e 100644
--- a/qt/scientific_interfaces/Indirect/IndirectLoadILL.ui
+++ b/qt/scientific_interfaces/Indirect/IndirectLoadILL.ui
@@ -250,7 +250,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::IndirectInstrumentConfig</class>
    <extends>QComboBox</extends>
-   <header>MantidQtWidgets/Common/IndirectInstrumentConfig.h</header>
+   <header>IndirectInstrumentConfig.h</header>
   </customwidget>
  </customwidgets>
  <resources/>
diff --git a/qt/scientific_interfaces/Indirect/IndirectMolDyn.cpp b/qt/scientific_interfaces/Indirect/IndirectMolDyn.cpp
index 3d7bfa55c183b67b892c745f8f3fda267a7cf013..90eeddafcd295016c2566189dda7879c5ffac5a1 100644
--- a/qt/scientific_interfaces/Indirect/IndirectMolDyn.cpp
+++ b/qt/scientific_interfaces/Indirect/IndirectMolDyn.cpp
@@ -6,8 +6,8 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "IndirectMolDyn.h"
 
-#include "../General/UserInputValidator.h"
 #include "MantidAPI/WorkspaceGroup.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <QFileInfo>
 #include <QString>
diff --git a/qt/scientific_interfaces/Indirect/IndirectMoments.cpp b/qt/scientific_interfaces/Indirect/IndirectMoments.cpp
index 2686fba0ab2dcee23ce451d345885873a27e203a..922263ed02902e969e62ebdcfc8657812cf084cd 100644
--- a/qt/scientific_interfaces/Indirect/IndirectMoments.cpp
+++ b/qt/scientific_interfaces/Indirect/IndirectMoments.cpp
@@ -6,8 +6,8 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "IndirectMoments.h"
 
-#include "../General/UserInputValidator.h"
 #include "MantidAPI/WorkspaceGroup.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <QDoubleValidator>
 #include <QFileInfo>
diff --git a/qt/scientific_interfaces/Indirect/IndirectMoments.ui b/qt/scientific_interfaces/Indirect/IndirectMoments.ui
index cbebc1e394907bc527575b187101b2a658f41b64..05fcf2b01391a8db01a49c8ce8ee998b6b1fd728 100644
--- a/qt/scientific_interfaces/Indirect/IndirectMoments.ui
+++ b/qt/scientific_interfaces/Indirect/IndirectMoments.ui
@@ -278,7 +278,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/scientific_interfaces/Indirect/IndirectSassena.cpp b/qt/scientific_interfaces/Indirect/IndirectSassena.cpp
index 0f645c472e9f86de99f314be5238421a78c1a217..09848915ad4c8eb533860553e45aad8f066d45ad 100644
--- a/qt/scientific_interfaces/Indirect/IndirectSassena.cpp
+++ b/qt/scientific_interfaces/Indirect/IndirectSassena.cpp
@@ -6,7 +6,7 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "IndirectSassena.h"
 
-#include "../General/UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <QFileInfo>
 #include <QString>
diff --git a/qt/scientific_interfaces/Indirect/IndirectSpectrumSelectionPresenter.h b/qt/scientific_interfaces/Indirect/IndirectSpectrumSelectionPresenter.h
index b90d6d2fac3e6d1b9e46a2e27be4257d9f3f5327..a9ec7fbb579568d7725bee4933f7d1b6c1ba9394 100644
--- a/qt/scientific_interfaces/Indirect/IndirectSpectrumSelectionPresenter.h
+++ b/qt/scientific_interfaces/Indirect/IndirectSpectrumSelectionPresenter.h
@@ -10,8 +10,8 @@
 #include "IndirectFittingModel.h"
 #include "IndirectSpectrumSelectionView.h"
 
-#include "../General/UserInputValidator.h"
 #include "DllConfig.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <boost/optional.hpp>
 #include <boost/variant.hpp>
diff --git a/qt/scientific_interfaces/Indirect/IndirectSpectrumSelectionView.h b/qt/scientific_interfaces/Indirect/IndirectSpectrumSelectionView.h
index 552350943d0f178ab2161e789d32c502dfc3248b..949f2e2786c0da652a7e5c90c6b8050a683ecd4d 100644
--- a/qt/scientific_interfaces/Indirect/IndirectSpectrumSelectionView.h
+++ b/qt/scientific_interfaces/Indirect/IndirectSpectrumSelectionView.h
@@ -9,10 +9,10 @@
 
 #include "ui_IndirectSpectrumSelector.h"
 
-#include "../General/UserInputValidator.h"
 #include "DllConfig.h"
 #include "MantidKernel/System.h"
 #include "MantidQtWidgets/Common/MantidWidget.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <cstddef>
 
diff --git a/qt/scientific_interfaces/Indirect/IndirectSqw.cpp b/qt/scientific_interfaces/Indirect/IndirectSqw.cpp
index 1a1e5811b86dfddc30710f4503593578843bc5f1..9f1b8dbac9e5640c8a46ba47fb02ddf675cf3fcc 100644
--- a/qt/scientific_interfaces/Indirect/IndirectSqw.cpp
+++ b/qt/scientific_interfaces/Indirect/IndirectSqw.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "IndirectSqw.h"
-#include "../General/UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidQtWidgets/Common/SignalBlocker.h"
diff --git a/qt/scientific_interfaces/Indirect/IndirectSqw.ui b/qt/scientific_interfaces/Indirect/IndirectSqw.ui
index a95068485584d1262129a90f13f2c45fed5e9307..b4a2c2988be8ba0e1bca679992e15f3e42602d11 100644
--- a/qt/scientific_interfaces/Indirect/IndirectSqw.ui
+++ b/qt/scientific_interfaces/Indirect/IndirectSqw.ui
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>602</width>
-    <height>475</height>
+    <height>525</height>
    </rect>
   </property>
   <property name="minimumSize">
@@ -560,7 +560,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::ContourPreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/ContourPreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/Qwt/ContourPreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/scientific_interfaces/Indirect/IndirectSymmetrise.ui b/qt/scientific_interfaces/Indirect/IndirectSymmetrise.ui
index e852648f04a57ee270599f114d7d0efeae915e9f..31f8c03b3beeadcb47c46a7e38a22112b9e4e489 100644
--- a/qt/scientific_interfaces/Indirect/IndirectSymmetrise.ui
+++ b/qt/scientific_interfaces/Indirect/IndirectSymmetrise.ui
@@ -233,7 +233,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/scientific_interfaces/Indirect/IndirectTab.cpp b/qt/scientific_interfaces/Indirect/IndirectTab.cpp
index 8098863abda605621364d89434833e44039b622e..81bff2bc5dbdfff15a83a1829e985e973dcb2159 100644
--- a/qt/scientific_interfaces/Indirect/IndirectTab.cpp
+++ b/qt/scientific_interfaces/Indirect/IndirectTab.cpp
@@ -15,7 +15,7 @@
 #include "MantidKernel/Unit.h"
 #include "MantidQtWidgets/Common/AlgorithmDialog.h"
 #include "MantidQtWidgets/Common/InterfaceManager.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/RangeSelector.h"
 
 #include <QMessageBox>
 
diff --git a/qt/scientific_interfaces/Indirect/IndirectTab.h b/qt/scientific_interfaces/Indirect/IndirectTab.h
index bbcdedd571edfa27b833a82cbeb54c98ba3db535..1203f132e4c60e60d6e2ce240ad9a640ef4ffa44 100644
--- a/qt/scientific_interfaces/Indirect/IndirectTab.h
+++ b/qt/scientific_interfaces/Indirect/IndirectTab.h
@@ -11,24 +11,23 @@
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/ITableWorkspace.h"
 #include "MantidKernel/DateAndTime.h"
-#include "MantidKernel/System.h"
 #include "MantidQtWidgets/Common/AlgorithmRunner.h"
 #include "MantidQtWidgets/Common/BatchAlgorithmRunner.h"
 #include "MantidQtWidgets/Common/PythonRunner.h"
 #include "MantidQtWidgets/Common/QtPropertyBrowser/QtIntPropertyManager"
 #include "MantidQtWidgets/Common/QtPropertyBrowser/QtTreePropertyBrowser"
-#include "MantidQtWidgets/LegacyQwt/PreviewPlot.h"
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+
+#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
+#include "MantidQtWidgets/Plotting/PreviewPlot.h"
+#include "MantidQtWidgets/Plotting/RangeSelector.h"
+#endif
 
 #include <QDoubleValidator>
 #include <QMap>
 #include <QPair>
 
-#include <qwt_plot.h>
-#include <qwt_plot_curve.h>
-
 #include <algorithm>
+#include <map>
 
 // Suppress a warning coming out of code that isn't ours
 #if defined(__INTEL_COMPILER)
diff --git a/qt/scientific_interfaces/Indirect/IndirectTransmission.ui b/qt/scientific_interfaces/Indirect/IndirectTransmission.ui
index 0cf2636f037752ad5ee8bcdca0c1f91cfae04779..5cd5635e7d9572c93467b8c272eec41dd1730528 100644
--- a/qt/scientific_interfaces/Indirect/IndirectTransmission.ui
+++ b/qt/scientific_interfaces/Indirect/IndirectTransmission.ui
@@ -239,7 +239,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/scientific_interfaces/Indirect/IndirectTransmissionCalc.cpp b/qt/scientific_interfaces/Indirect/IndirectTransmissionCalc.cpp
index b143cd9f4aa9f0cccfb0f5ded761930f8f0c781e..e034fa16f589ca84560ca286423f791f17f29360 100644
--- a/qt/scientific_interfaces/Indirect/IndirectTransmissionCalc.cpp
+++ b/qt/scientific_interfaces/Indirect/IndirectTransmissionCalc.cpp
@@ -5,11 +5,11 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "IndirectTransmissionCalc.h"
-#include "../General/UserInputValidator.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/ExperimentInfo.h"
 #include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/MatrixWorkspace.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <QTreeWidgetItem>
 
diff --git a/qt/scientific_interfaces/Indirect/IndirectTransmissionCalc.ui b/qt/scientific_interfaces/Indirect/IndirectTransmissionCalc.ui
index cbc9e8dbd50ac178979e705eeee1c678610f40b2..3b681233eaee040efdef6d70cf2ed544fddaa132 100644
--- a/qt/scientific_interfaces/Indirect/IndirectTransmissionCalc.ui
+++ b/qt/scientific_interfaces/Indirect/IndirectTransmissionCalc.ui
@@ -245,7 +245,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::IndirectInstrumentConfig</class>
    <extends>QComboBox</extends>
-   <header>MantidQtWidgets/Common/IndirectInstrumentConfig.h</header>
+   <header>IndirectInstrumentConfig.h</header>
   </customwidget>
  </customwidgets>
  <resources/>
diff --git a/qt/scientific_interfaces/Indirect/Iqt.cpp b/qt/scientific_interfaces/Indirect/Iqt.cpp
index 15e4fe45dc2fdd2d3b84375a03f56a0e605daa74..0cd68c1c28dd1509200f8e3df06e8635c338b9c7 100644
--- a/qt/scientific_interfaces/Indirect/Iqt.cpp
+++ b/qt/scientific_interfaces/Indirect/Iqt.cpp
@@ -10,9 +10,9 @@
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidGeometry/Instrument.h"
 #include "MantidQtWidgets/Common/SignalBlocker.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/RangeSelector.h"
 
-#include "../General/UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <qwt_plot.h>
 
diff --git a/qt/scientific_interfaces/Indirect/Iqt.ui b/qt/scientific_interfaces/Indirect/Iqt.ui
index 4c245b8f9908d6f7a2c1bae0644edea805302f68..4188d0de2113bec0df26f58a677d1bbbfd7ac540 100644
--- a/qt/scientific_interfaces/Indirect/Iqt.ui
+++ b/qt/scientific_interfaces/Indirect/Iqt.ui
@@ -470,7 +470,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
   <customwidget>
diff --git a/qt/scientific_interfaces/Indirect/IqtFit.cpp b/qt/scientific_interfaces/Indirect/IqtFit.cpp
index 35609c4ab4d45136955a6abe6280d1f864084e78..06db240f4b5c832bf124053fa3343e4f2c4a195a 100644
--- a/qt/scientific_interfaces/Indirect/IqtFit.cpp
+++ b/qt/scientific_interfaces/Indirect/IqtFit.cpp
@@ -6,10 +6,10 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "IqtFit.h"
 
-#include "../General/UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include "MantidQtWidgets/Common/SignalBlocker.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/RangeSelector.h"
 
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/AnalysisDataService.h"
diff --git a/qt/scientific_interfaces/Indirect/JumpFit.cpp b/qt/scientific_interfaces/Indirect/JumpFit.cpp
index d3b421b9859aef6d208b8ad163f0813597e3d1d8..44ea7036a5d3ae1dcb0aff4a0762f2246b4fdec4 100644
--- a/qt/scientific_interfaces/Indirect/JumpFit.cpp
+++ b/qt/scientific_interfaces/Indirect/JumpFit.cpp
@@ -7,13 +7,13 @@
 #include "JumpFit.h"
 #include "JumpFitDataPresenter.h"
 
-#include "../General/UserInputValidator.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/IFunction.h"
 #include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/Run.h"
 #include "MantidAPI/WorkspaceGroup.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include "MantidQtWidgets/Common/SignalBlocker.h"
 
diff --git a/qt/scientific_interfaces/Indirect/MSDFit.cpp b/qt/scientific_interfaces/Indirect/MSDFit.cpp
index 2e1faad367987c7b0f5d2540daffe6a30383761e..1ed15cbadf0e214e40b0776e08c106029d3ad414 100644
--- a/qt/scientific_interfaces/Indirect/MSDFit.cpp
+++ b/qt/scientific_interfaces/Indirect/MSDFit.cpp
@@ -5,14 +5,14 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "MSDFit.h"
-#include "../General/UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/WorkspaceGroup.h"
 
 #include "MantidQtWidgets/Common/SignalBlocker.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/RangeSelector.h"
 
 #include <QFileInfo>
 
diff --git a/qt/scientific_interfaces/Indirect/Quasi.cpp b/qt/scientific_interfaces/Indirect/Quasi.cpp
index 13de4ff2a34a89ed168f0c2f41c05dbe4cdd9892..3bd17bae7d77e2fea2d30879ed8bfcdf1739d842 100644
--- a/qt/scientific_interfaces/Indirect/Quasi.cpp
+++ b/qt/scientific_interfaces/Indirect/Quasi.cpp
@@ -5,8 +5,8 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "Quasi.h"
-#include "../General/UserInputValidator.h"
 #include "MantidAPI/TextAxis.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 using namespace Mantid::API;
 
diff --git a/qt/scientific_interfaces/Indirect/Quasi.ui b/qt/scientific_interfaces/Indirect/Quasi.ui
index d87faf9a12ce1f53bd86fd2459723a2315f8ac05..c160f190abed5e9e7c5680cb17674b8ad9d40efb 100644
--- a/qt/scientific_interfaces/Indirect/Quasi.ui
+++ b/qt/scientific_interfaces/Indirect/Quasi.ui
@@ -498,7 +498,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
   <customwidget>
diff --git a/qt/scientific_interfaces/Indirect/ResNorm.cpp b/qt/scientific_interfaces/Indirect/ResNorm.cpp
index 4636470d276d0b542c4abb47cafe6deaab39cb82..4f4f0c7eaabc4c2e149090dd5ca36cc67c0d78da 100644
--- a/qt/scientific_interfaces/Indirect/ResNorm.cpp
+++ b/qt/scientific_interfaces/Indirect/ResNorm.cpp
@@ -6,9 +6,9 @@
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "ResNorm.h"
 
-#include "../General/UserInputValidator.h"
 #include "MantidAPI/ITableWorkspace.h"
 #include "MantidAPI/WorkspaceFactory.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include <map>
 #include <string>
diff --git a/qt/scientific_interfaces/Indirect/ResNorm.ui b/qt/scientific_interfaces/Indirect/ResNorm.ui
index 8108ee7ad6eea4cd30e8eb45da4ba6c305d6c582..822d035a93f6373b71077f6a0cf2a7b0b216b483 100644
--- a/qt/scientific_interfaces/Indirect/ResNorm.ui
+++ b/qt/scientific_interfaces/Indirect/ResNorm.ui
@@ -322,7 +322,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/scientific_interfaces/Indirect/Stretch.cpp b/qt/scientific_interfaces/Indirect/Stretch.cpp
index 9da7c9402c8b2e76616ddc9cd877a8e2a23fc24d..af0a3440bc8a1303c8bc84782135a6072abe9e20 100644
--- a/qt/scientific_interfaces/Indirect/Stretch.cpp
+++ b/qt/scientific_interfaces/Indirect/Stretch.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "Stretch.h"
-#include "../General/UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/WorkspaceGroup.h"
diff --git a/qt/scientific_interfaces/Indirect/Stretch.ui b/qt/scientific_interfaces/Indirect/Stretch.ui
index a0e9a9c25ebb12b1373becf7ecdefb68ce415105..6a162d953fc00dd5ad2a2fed41a12b6912ba200e 100644
--- a/qt/scientific_interfaces/Indirect/Stretch.ui
+++ b/qt/scientific_interfaces/Indirect/Stretch.ui
@@ -422,7 +422,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/scientific_interfaces/Indirect/test/CMakeLists.txt b/qt/scientific_interfaces/Indirect/test/CMakeLists.txt
index 5a9215e41d99ae3a64fcb5be8696c3a7ce8a70d4..0411497165ab2d750d00aafb550f1c193b008ab0 100644
--- a/qt/scientific_interfaces/Indirect/test/CMakeLists.txt
+++ b/qt/scientific_interfaces/Indirect/test/CMakeLists.txt
@@ -48,7 +48,7 @@ mtd_add_qt_tests (TARGET_NAME MantidQtInterfacesIndirectTest
   MTD_QT_LINK_LIBS
     MantidScientificInterfacesIndirect
     MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
+    MantidQtWidgetsPlotting
   PARENT_DEPENDENCIES
     GUITests
 )
diff --git a/qt/scientific_interfaces/MultiDatasetFit/CMakeLists.txt b/qt/scientific_interfaces/MultiDatasetFit/CMakeLists.txt
index a2e0489308c5258b7814d1e50cbee179036f632c..94c749e38eb72dfa2803c6b581091eb7a832880a 100644
--- a/qt/scientific_interfaces/MultiDatasetFit/CMakeLists.txt
+++ b/qt/scientific_interfaces/MultiDatasetFit/CMakeLists.txt
@@ -66,7 +66,7 @@ mtd_add_qt_library (TARGET_NAME MantidScientificInterfacesMultiDatasetFit
       Qwt5
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
+    MantidQtWidgetsPlotting
   INSTALL_DIR_BASE
     ${PLUGINS_DIR}
   OSX_INSTALL_RPATH
diff --git a/qt/scientific_interfaces/MultiDatasetFit/MDFDatasetPlotData.cpp b/qt/scientific_interfaces/MultiDatasetFit/MDFDatasetPlotData.cpp
index 531a600052366514c6cf1dc9b35b3da621a8e8e8..e6d4e903a010e91da448947a22b093433ae41d1b 100644
--- a/qt/scientific_interfaces/MultiDatasetFit/MDFDatasetPlotData.cpp
+++ b/qt/scientific_interfaces/MultiDatasetFit/MDFDatasetPlotData.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "MDFDatasetPlotData.h"
-#include "MantidQtWidgets/LegacyQwt/ErrorCurve.h"
+#include "MantidQtWidgets/Plotting/Qwt/ErrorCurve.h"
 
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/MatrixWorkspace.h"
diff --git a/qt/scientific_interfaces/MultiDatasetFit/MDFFunctionPlotData.cpp b/qt/scientific_interfaces/MultiDatasetFit/MDFFunctionPlotData.cpp
index 0fd65f6f69fa3e05ffd4990ee1aa89637a990f0b..b7e0db3da25a05ec377af063bb758d8029facfb9 100644
--- a/qt/scientific_interfaces/MultiDatasetFit/MDFFunctionPlotData.cpp
+++ b/qt/scientific_interfaces/MultiDatasetFit/MDFFunctionPlotData.cpp
@@ -5,7 +5,7 @@
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
 #include "MDFFunctionPlotData.h"
-#include "MantidQtWidgets/LegacyQwt/ErrorCurve.h"
+#include "MantidQtWidgets/Plotting/Qwt/ErrorCurve.h"
 #include "MultiDatasetFit.h"
 
 #include "MantidAPI/AnalysisDataService.h"
diff --git a/qt/scientific_interfaces/MultiDatasetFit/MDFPlotController.cpp b/qt/scientific_interfaces/MultiDatasetFit/MDFPlotController.cpp
index cdcaa0cc8eec3db85341fbc0efbc8676c2701fb7..d89d37f3dc6433719fe2caeceb00955f7433fc5c 100644
--- a/qt/scientific_interfaces/MultiDatasetFit/MDFPlotController.cpp
+++ b/qt/scientific_interfaces/MultiDatasetFit/MDFPlotController.cpp
@@ -15,7 +15,7 @@
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/WorkspaceGroup.h"
 #include "MantidQtWidgets/Common/PythonRunner.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/RangeSelector.h"
 
 #include <boost/make_shared.hpp>
 
diff --git a/qt/scientific_interfaces/Muon/ALCBaselineModellingPresenter.cpp b/qt/scientific_interfaces/Muon/ALCBaselineModellingPresenter.cpp
index ee09d3b7efbab7680773d07ab283c1ab43c86baf..434d0df9eafb2fdb91e6c43604e8ac31ac5e5dcc 100644
--- a/qt/scientific_interfaces/Muon/ALCBaselineModellingPresenter.cpp
+++ b/qt/scientific_interfaces/Muon/ALCBaselineModellingPresenter.cpp
@@ -10,7 +10,7 @@
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/MatrixWorkspace.h"
 
-#include "MantidQtWidgets/LegacyQwt/QwtHelper.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtHelper.h"
 
 using namespace Mantid::API;
 
diff --git a/qt/scientific_interfaces/Muon/ALCBaselineModellingView.cpp b/qt/scientific_interfaces/Muon/ALCBaselineModellingView.cpp
index 5f172568b4805b6c44762808542b3bbe74cc0ad6..30efea77c9f327a978a45a339a6db8f9e83e464a 100644
--- a/qt/scientific_interfaces/Muon/ALCBaselineModellingView.cpp
+++ b/qt/scientific_interfaces/Muon/ALCBaselineModellingView.cpp
@@ -10,7 +10,7 @@
 #include "MantidAPI/FunctionDomain1D.h"
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidQtWidgets/Common/HelpWindow.h"
-#include "MantidQtWidgets/LegacyQwt/ErrorCurve.h"
+#include "MantidQtWidgets/Plotting/Qwt/ErrorCurve.h"
 
 #include <boost/scoped_array.hpp>
 
diff --git a/qt/scientific_interfaces/Muon/ALCBaselineModellingView.h b/qt/scientific_interfaces/Muon/ALCBaselineModellingView.h
index 24b51743098cd588114d0ce778d2e1f6a8bceb89..015df8078745eab447ad4f08d5b872833403bf57 100644
--- a/qt/scientific_interfaces/Muon/ALCBaselineModellingView.h
+++ b/qt/scientific_interfaces/Muon/ALCBaselineModellingView.h
@@ -11,7 +11,7 @@
 
 #include "DllConfig.h"
 #include "IALCBaselineModellingView.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/RangeSelector.h"
 
 #include "ui_ALCBaselineModellingView.h"
 
diff --git a/qt/scientific_interfaces/Muon/ALCDataLoadingPresenter.cpp b/qt/scientific_interfaces/Muon/ALCDataLoadingPresenter.cpp
index 9b9a8171e1de88fbc7de830810f895eeb9c170e9..0ae7b9e0bd912d11491298bd412bfd968e8ca6f9 100644
--- a/qt/scientific_interfaces/Muon/ALCDataLoadingPresenter.cpp
+++ b/qt/scientific_interfaces/Muon/ALCDataLoadingPresenter.cpp
@@ -14,7 +14,7 @@
 
 #include "ALCLatestFileFinder.h"
 #include "MantidQtWidgets/Common/AlgorithmInputHistory.h"
-#include "MantidQtWidgets/LegacyQwt/QwtHelper.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtHelper.h"
 #include "MuonAnalysisHelper.h"
 
 #include <Poco/ActiveResult.h>
diff --git a/qt/scientific_interfaces/Muon/ALCDataLoadingView.cpp b/qt/scientific_interfaces/Muon/ALCDataLoadingView.cpp
index 793e82ff41b7de084b42ccec15dadd36da9e6eaf..d1acf05ed7768326d60d4a7bf09e0ba5edca8a71 100644
--- a/qt/scientific_interfaces/Muon/ALCDataLoadingView.cpp
+++ b/qt/scientific_interfaces/Muon/ALCDataLoadingView.cpp
@@ -8,7 +8,7 @@
 
 #include "MantidQtWidgets/Common/HelpWindow.h"
 #include "MantidQtWidgets/Common/LogValueSelector.h"
-#include "MantidQtWidgets/LegacyQwt/ErrorCurve.h"
+#include "MantidQtWidgets/Plotting/Qwt/ErrorCurve.h"
 
 #include <QMessageBox>
 
diff --git a/qt/scientific_interfaces/Muon/ALCPeakFittingPresenter.cpp b/qt/scientific_interfaces/Muon/ALCPeakFittingPresenter.cpp
index 7a8443e3d05fa817acc794ff88331d9a7b404658..18b4f75021299a500d6d8ae492412aa8fa8a92bd 100644
--- a/qt/scientific_interfaces/Muon/ALCPeakFittingPresenter.cpp
+++ b/qt/scientific_interfaces/Muon/ALCPeakFittingPresenter.cpp
@@ -10,7 +10,7 @@
 #include "MantidAPI/FunctionFactory.h"
 #include "MantidAPI/MatrixWorkspace.h"
 
-#include "MantidQtWidgets/LegacyQwt/QwtHelper.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtHelper.h"
 
 using namespace Mantid::API;
 
diff --git a/qt/scientific_interfaces/Muon/ALCPeakFittingView.cpp b/qt/scientific_interfaces/Muon/ALCPeakFittingView.cpp
index faabc639935c11f7e47a95767060c3a3afa891e7..afaa137f8daac87585cbd818d263796d35dc48ff 100644
--- a/qt/scientific_interfaces/Muon/ALCPeakFittingView.cpp
+++ b/qt/scientific_interfaces/Muon/ALCPeakFittingView.cpp
@@ -7,7 +7,7 @@
 #include "ALCPeakFittingView.h"
 
 #include "MantidQtWidgets/Common/HelpWindow.h"
-#include "MantidQtWidgets/LegacyQwt/ErrorCurve.h"
+#include "MantidQtWidgets/Plotting/Qwt/ErrorCurve.h"
 
 #include <QMessageBox>
 
diff --git a/qt/scientific_interfaces/Muon/ALCPeakFittingView.h b/qt/scientific_interfaces/Muon/ALCPeakFittingView.h
index 0e32d5ca14407206d2e8c0f3cc3a272ee1700132..e985a372b66361d0d408485299df7eb8213bc8ef 100644
--- a/qt/scientific_interfaces/Muon/ALCPeakFittingView.h
+++ b/qt/scientific_interfaces/Muon/ALCPeakFittingView.h
@@ -11,7 +11,7 @@
 
 #include "DllConfig.h"
 #include "IALCPeakFittingView.h"
-#include "MantidQtWidgets/LegacyQwt/PeakPicker.h"
+#include "MantidQtWidgets/Plotting/Qwt/PeakPicker.h"
 
 #include "ui_ALCPeakFittingView.h"
 
diff --git a/qt/scientific_interfaces/Muon/CMakeLists.txt b/qt/scientific_interfaces/Muon/CMakeLists.txt
index 669f63374ab97a4a0d9b74a33373fc0d278e0bb2..6b3a0656318138713f02e480c4fc9373df6ce757 100644
--- a/qt/scientific_interfaces/Muon/CMakeLists.txt
+++ b/qt/scientific_interfaces/Muon/CMakeLists.txt
@@ -104,7 +104,7 @@ mtd_add_qt_library (TARGET_NAME MantidScientificInterfacesMuon
       Qwt5
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
+    MantidQtWidgetsPlotting
     MantidScientificInterfacesMultiDatasetFit
   INSTALL_DIR_BASE
     ${PLUGINS_DIR}
diff --git a/qt/widgets/CMakeLists.txt b/qt/widgets/CMakeLists.txt
index 24c152049e7130a52febac3623747fe2dd3aae3b..7a98d120a659b1ba935030372bf2c03574636475 100644
--- a/qt/widgets/CMakeLists.txt
+++ b/qt/widgets/CMakeLists.txt
@@ -3,11 +3,11 @@
 ###########################################################################
 add_subdirectory ( common )
 add_subdirectory ( mplcpp )
+add_subdirectory ( plotting )
 add_subdirectory ( instrumentview )
 add_subdirectory ( plugins )
 
 if ( ENABLE_MANTIDPLOT ) 
-  add_subdirectory ( legacyqwt )
   add_subdirectory ( sliceviewer )
   add_subdirectory ( spectrumviewer )
   add_subdirectory ( refdetectorview)
diff --git a/qt/widgets/common/CMakeLists.txt b/qt/widgets/common/CMakeLists.txt
index 20f559e4e92df2173810b7eafdad3709d4ddf2cc..5f2bae45eececeffa2c37af5bd6df88cc1bde2c3 100644
--- a/qt/widgets/common/CMakeLists.txt
+++ b/qt/widgets/common/CMakeLists.txt
@@ -58,6 +58,7 @@ set ( QT5_SRC_FILES
   src/TextPropertyWidget.cpp
   src/TSVSerialiser.cpp
   src/UserFunctionDialog.cpp
+  src/UserInputValidator.cpp
   src/UserSubWindow.cpp
   src/VatesViewerInterface.cpp
   src/WidgetScrollbarDecorator.cpp
@@ -163,7 +164,7 @@ set ( QT5_MOC_FILES
   inc/MantidQtWidgets/Common/WorkspacePresenter/WorkspaceTreeWidget.h
   inc/MantidQtWidgets/Common/WorkspacePresenter/WorkspaceTreeWidgetSimple.h
   inc/MantidQtWidgets/Common/WorkspaceSelector.h
-
+  
   inc/MantidQtWidgets/Common/AlgorithmProgress/AlgorithmProgressDialogPresenter.h
   inc/MantidQtWidgets/Common/AlgorithmProgress/AlgorithmProgressDialogWidget.h
   inc/MantidQtWidgets/Common/AlgorithmProgress/AlgorithmProgressPresenter.h
@@ -211,6 +212,7 @@ set ( QT5_INC_FILES
   inc/MantidQtWidgets/Common/pixmaps.h
   inc/MantidQtWidgets/Common/PropertyWidgetFactory.h
   inc/MantidQtWidgets/Common/SequentialFitDialog.h
+  inc/MantidQtWidgets/Common/UserInputValidator.h
   inc/MantidQtWidgets/Common/WidgetScrollbarDecorator.h
   inc/MantidQtWidgets/Common/Batch/QtStandardItemTreeAdapter.h
   inc/MantidQtWidgets/Common/Batch/QtBasicNavigation.h
@@ -295,6 +297,7 @@ set ( SRC_FILES
   src/SyncedCheckboxes.cpp
   src/TextPropertyWidget.cpp
   src/TSVSerialiser.cpp
+  src/UserInputValidator.cpp
   src/UserSubWindow.cpp
   src/VatesViewerInterface.cpp
   src/WidgetScrollbarDecorator.cpp
@@ -359,7 +362,6 @@ set ( SRC_FILES
   src/FunctionBrowser.cpp
   src/HintingLineEdit.cpp
   src/IndirectFitPropertyBrowser.cpp
-  src/IndirectInstrumentConfig.cpp
   src/InputController.cpp
   src/InstrumentSelector.cpp
   src/LineEditWithClear.cpp
@@ -470,7 +472,6 @@ set ( MOC_FILES
   inc/MantidQtWidgets/Common/CatalogSelector.h
   inc/MantidQtWidgets/Common/InstrumentSelector.h
   inc/MantidQtWidgets/Common/IndirectFitPropertyBrowser.h
-  inc/MantidQtWidgets/Common/IndirectInstrumentConfig.h
   inc/MantidQtWidgets/Common/InputController.h
   inc/MantidQtWidgets/Common/MantidWSIndexDialog.h
   inc/MantidQtWidgets/Common/MantidTreeModel.h
@@ -523,7 +524,7 @@ set ( MOC_FILES
 
 # Include files aren't required, but this makes them appear in Visual Studio
 set ( INC_FILES
-	${MOC_FILES}
+  ${MOC_FILES}
   inc/MantidQtWidgets/Common/AlgorithmHistoryWindow.h
   inc/MantidQtWidgets/Common/AlgorithmInputHistory.h
   inc/MantidQtWidgets/Common/AlgorithmRunner.h
@@ -556,6 +557,7 @@ set ( INC_FILES
   inc/MantidQtWidgets/Common/SelectionNotificationService.h
   inc/MantidQtWidgets/Common/SignalBlocker.h
   inc/MantidQtWidgets/Common/TSVSerialiser.h
+  inc/MantidQtWidgets/Common/UserInputValidator.h
   inc/MantidQtWidgets/Common/WidgetScrollbarDecorator.h
   inc/MantidQtWidgets/Common/WindowIcons.h
   inc/MantidQtWidgets/Common/WorkspaceIcons.h
@@ -677,7 +679,6 @@ set ( UI_FILES
   inc/MantidQtWidgets/Common/DataSelector.ui
   inc/MantidQtWidgets/Common/CatalogSearch.ui
   inc/MantidQtWidgets/Common/CatalogSelector.ui
-  inc/MantidQtWidgets/Common/IndirectInstrumentConfig.ui
   inc/MantidQtWidgets/Common/LogValueSelector.ui
   inc/MantidQtWidgets/Common/MultifitSetupDialog.ui
   inc/MantidQtWidgets/Common/MuonFitDataSelector.ui
@@ -824,6 +825,7 @@ set( TEST_FILES
   test/SignalBlockerTest.h
   test/AlgorithmHintStrategyTest.h
   test/TrackedActionTest.h
+  test/UserInputValidatorTest.h
   test/DataProcessorUI/CommandsTest.h
   test/DataProcessorUI/GenerateNotebookTest.h
   test/DataProcessorUI/OneLevelTreeManagerTest.h
@@ -882,6 +884,7 @@ set( QT5_TEST_FILES
   test/FindFilesThreadPoolManagerTest.h
   test/FindFilesWorkerTest.h
   test/InterfaceManagerTest.h
+  test/UserInputValidatorTest.h
   test/WorkspacePresenter/ADSAdapterTest.h
   test/WorkspacePresenter/WorkspacePresenterTest.h
 )
diff --git a/qt/scientific_interfaces/General/UserInputValidator.h b/qt/widgets/common/inc/MantidQtWidgets/Common/UserInputValidator.h
similarity index 100%
rename from qt/scientific_interfaces/General/UserInputValidator.h
rename to qt/widgets/common/inc/MantidQtWidgets/Common/UserInputValidator.h
diff --git a/qt/scientific_interfaces/General/UserInputValidator.cpp b/qt/widgets/common/src/UserInputValidator.cpp
similarity index 99%
rename from qt/scientific_interfaces/General/UserInputValidator.cpp
rename to qt/widgets/common/src/UserInputValidator.cpp
index f40b69b20c168a6d2dc5ad6bec7461a0fc03ced5..4d354f7d1a6ec85e044068a9c5693a2d2e315d8c 100644
--- a/qt/scientific_interfaces/General/UserInputValidator.cpp
+++ b/qt/widgets/common/src/UserInputValidator.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 #include <QLabel>
 #include <QLineEdit>
 #include <QString>
diff --git a/qt/scientific_interfaces/test/UserInputValidatorTest.h b/qt/widgets/common/test/UserInputValidatorTest.h
similarity index 98%
rename from qt/scientific_interfaces/test/UserInputValidatorTest.h
rename to qt/widgets/common/test/UserInputValidatorTest.h
index 757dcbe3f8ffafd7db7382107312ef86a5de1303..ab2af23b11c6e6526429ebbe086d06bf1610a280 100644
--- a/qt/scientific_interfaces/test/UserInputValidatorTest.h
+++ b/qt/widgets/common/test/UserInputValidatorTest.h
@@ -10,7 +10,7 @@
 #include <cxxtest/TestSuite.h>
 #include <string>
 
-#include "../General/UserInputValidator.h"
+#include "MantidQtWidgets/Common/UserInputValidator.h"
 
 using namespace MantidQt::CustomInterfaces;
 
diff --git a/qt/widgets/factory/CMakeLists.txt b/qt/widgets/factory/CMakeLists.txt
index f5df842bd8a67a6c97beed2ff05d3d7f64bfa941..dc97e138fafe73b1cf72626759c79910a2dbf238 100644
--- a/qt/widgets/factory/CMakeLists.txt
+++ b/qt/widgets/factory/CMakeLists.txt
@@ -37,7 +37,7 @@ mtd_add_qt_library (TARGET_NAME MantidQtWidgetsFactory
     Qwt5
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
+    MantidQtWidgetsPlotting
     MantidQtWidgetsSliceViewer
   INSTALL_DIR
     ${LIB_DIR}
diff --git a/qt/widgets/instrumentview/CMakeLists.txt b/qt/widgets/instrumentview/CMakeLists.txt
index f0339ba4770f1261ecca7c39e2a52c7be7c03de5..947307278e712d92407df3846af87536282b4222 100644
--- a/qt/widgets/instrumentview/CMakeLists.txt
+++ b/qt/widgets/instrumentview/CMakeLists.txt
@@ -163,7 +163,7 @@ mtd_add_qt_library (TARGET_NAME MantidQtWidgetsInstrumentView
     Qwt5
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
+    MantidQtWidgetsPlotting
   INSTALL_DIR
     ${LIB_DIR}
   OSX_INSTALL_RPATH
diff --git a/qt/widgets/instrumentview/inc/MantidQtWidgets/InstrumentView/ColorBar.h b/qt/widgets/instrumentview/inc/MantidQtWidgets/InstrumentView/ColorBar.h
index 988d35a72903ff664c98e3bec9d1454a6e563230..a1b041738afb564824229c5fd135256abb1a671c 100644
--- a/qt/widgets/instrumentview/inc/MantidQtWidgets/InstrumentView/ColorBar.h
+++ b/qt/widgets/instrumentview/inc/MantidQtWidgets/InstrumentView/ColorBar.h
@@ -10,7 +10,7 @@
 #include <QtGlobal>
 
 #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
-#include "MantidQtWidgets/LegacyQwt/DraggableColorBarWidget.h"
+#include "MantidQtWidgets/Plotting/Qwt/DraggableColorBarWidget.h"
 #elif QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
 #include "MantidQtWidgets/MplCpp/ColorbarWidget.h"
 #endif
diff --git a/qt/widgets/instrumentview/inc/MantidQtWidgets/InstrumentView/ColorMap.h b/qt/widgets/instrumentview/inc/MantidQtWidgets/InstrumentView/ColorMap.h
index b8e464e9a8e1a9d82ab8a8121a1e5cf596e30720..d06df31b6e2d0d2e05b147cd44588a1f2acbdd6d 100644
--- a/qt/widgets/instrumentview/inc/MantidQtWidgets/InstrumentView/ColorMap.h
+++ b/qt/widgets/instrumentview/inc/MantidQtWidgets/InstrumentView/ColorMap.h
@@ -10,7 +10,7 @@
 #include <QtGlobal>
 
 #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
-#include "MantidQtWidgets/LegacyQwt/MantidColorMap.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidColorMap.h"
 #elif QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
 #include "MantidQtWidgets/MplCpp/MantidColorMap.h"
 #endif
diff --git a/qt/widgets/instrumentview/src/MiniPlotQwt.cpp b/qt/widgets/instrumentview/src/MiniPlotQwt.cpp
index dd0f9fa6b5e3b3a31f492b6e0865f4d51a97c2a1..a3c4127695075bdd5c71d4da885e042be68cb5ba 100644
--- a/qt/widgets/instrumentview/src/MiniPlotQwt.cpp
+++ b/qt/widgets/instrumentview/src/MiniPlotQwt.cpp
@@ -8,7 +8,7 @@
 #include "MantidKernel/Logger.h"
 #include "MantidQtWidgets/InstrumentView/PeakMarker2D.h"
 
-#include <MantidQtWidgets/LegacyQwt/qwt_compat.h>
+#include <MantidQtWidgets/Plotting/Qwt/qwt_compat.h>
 #include <qwt_plot_canvas.h>
 #include <qwt_plot_curve.h>
 #include <qwt_plot_zoomer.h>
diff --git a/qt/widgets/legacyqwt/CMakeLists.txt b/qt/widgets/legacyqwt/CMakeLists.txt
deleted file mode 100644
index 8dee1e3953b3857f39ff95a6c4480388b92144d3..0000000000000000000000000000000000000000
--- a/qt/widgets/legacyqwt/CMakeLists.txt
+++ /dev/null
@@ -1,131 +0,0 @@
- set ( SRC_FILES
-  src/ContourPreviewPlot.cpp
-  src/DraggableColorBarWidget.cpp
-  src/MantidColorMap.cpp
-  src/MantidQwtIMDWorkspaceData.cpp
-  src/MantidQwtWorkspaceData.cpp
-  src/MWView.cpp
-  src/PowerScaleEngine.cpp
-  src/QwtHelper.cpp
-  src/QwtRasterDataMD.cpp
-  src/QwtRasterDataMDNonOrthogonal.cpp
-  src/QwtWorkspaceBinData.cpp
-  src/QwtWorkspaceSpectrumData.cpp
-  src/ScaleEngine.cpp
-  src/ColorBarWidget.cpp
-  src/DisplayCurveFit.cpp
-  src/ErrorCurve.cpp
-  src/PeakPicker.cpp
-  src/PreviewPlot.cpp
-  src/RangeSelector.cpp
-  src/SafeQwtPlot.cpp
-  src/SignalRange.cpp
-)
-
-set ( MOC_FILES
-  inc/MantidQtWidgets/LegacyQwt/ContourPreviewPlot.h
-  inc/MantidQtWidgets/LegacyQwt/DraggableColorBarWidget.h
-  inc/MantidQtWidgets/LegacyQwt/ColorBarWidget.h
-  inc/MantidQtWidgets/LegacyQwt/MWView.h
-  inc/MantidQtWidgets/LegacyQwt/RangeSelector.h
-  inc/MantidQtWidgets/LegacyQwt/PeakPicker.h
-  inc/MantidQtWidgets/LegacyQwt/DisplayCurveFit.h
-  inc/MantidQtWidgets/LegacyQwt/PreviewPlot.h
-  inc/MantidQtWidgets/LegacyQwt/SafeQwtPlot.h
-)
-
-# Include files aren't required, but this makes them appear in Visual Studio
-set ( INC_FILES
-  inc/MantidQtWidgets/LegacyQwt/ContourPreviewPlot.h
-  inc/MantidQtWidgets/LegacyQwt/MantidQwtWorkspaceData.h
-  inc/MantidQtWidgets/LegacyQwt/QwtRasterDataMD.h
-  inc/MantidQtWidgets/LegacyQwt/QwtRasterDataMDNonOrthogonal.h
-  inc/MantidQtWidgets/LegacyQwt/QwtWorkspaceBinData.h
-  inc/MantidQtWidgets/LegacyQwt/PowerScaleEngine.h
-  inc/MantidQtWidgets/LegacyQwt/ScaleEngine.h
-  inc/MantidQtWidgets/LegacyQwt/MantidQwtIMDWorkspaceData.h
-  inc/MantidQtWidgets/LegacyQwt/SafeQwtPlot.h
-  inc/MantidQtWidgets/LegacyQwt/MantidColorMap.h
-  inc/MantidQtWidgets/LegacyQwt/ErrorCurve.h
-  inc/MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h
-  inc/MantidQtWidgets/LegacyQwt/QwtHelper.h
-  inc/MantidQtWidgets/LegacyQwt/qwt_compat.h
-  inc/MantidQtWidgets/LegacyQwt/SignalRange.h
-)
-
-set ( UI_FILES
-  inc/MantidQtWidgets/LegacyQwt/ColorBarWidget.ui
-  inc/MantidQtWidgets/LegacyQwt/ContourPreviewPlot.ui
-  inc/MantidQtWidgets/LegacyQwt/DisplayCurveFit.ui
-  inc/MantidQtWidgets/LegacyQwt/MWView.ui
-  inc/MantidQtWidgets/LegacyQwt/PreviewPlot.ui
-)
-
-###########################################################################
-# Target
-###########################################################################
-mtd_add_qt_library (TARGET_NAME MantidQtWidgetsLegacyQwt
-  QT_VERSION 4
-  SRC ${SRC_FILES}
-  MOC ${MOC_FILES}
-  NOMOC ${INC_FILES}
-  UI ${UI_FILES}
-  DEFS
-    IN_MANTIDQT_LEGACYQWT
-  INCLUDE_DIRS
-    inc
-  SYSTEM_INCLUDE_DIRS
-    ${Boost_INCLUDE_DIRS}
-  LINK_LIBS
-    ${TCMALLOC_LIBRARIES_LINKTIME}
-    ${CORE_MANTIDLIBS}
-    ${POCO_LIBRARIES}
-    ${Boost_LIBRARIES}
-  QT4_LINK_LIBS
-    Qwt5
-  MTD_QT_LINK_LIBS
-    MantidQtWidgetsCommon
-  INSTALL_DIR
-    ${LIB_DIR}
-  OSX_INSTALL_RPATH
-    @loader_path/../MacOS
-  LINUX_INSTALL_RPATH
-    "\$ORIGIN/../${LIB_DIR}"
-)
-
-###########################################################################
-# Testing
-###########################################################################
-set( TEST_FILES
-  test/ContourPreviewPlotTest.h
-  test/MantidColorMapTest.h
-  test/QwtWorkspaceBinDataTest.h
-  test/QwtWorkspaceSpectrumDataTest.h
-)
-
-mtd_add_qt_tests (TARGET_NAME MantidQtWidgetsLegacyQwtTest
-  QT_VERSION 4
-  SRC ${TEST_FILES}
-  INCLUDE_DIRS
-    ../../../Framework/DataObjects/inc
-    ../../../Framework/TestHelpers/inc
-  TEST_HELPER_SRCS
-    ../../../Framework/TestHelpers/src/TearDownWorld.cpp
-    ../../../Framework/TestHelpers/src/ComponentCreationHelper.cpp
-    ../../../Framework/TestHelpers/src/InstrumentCreationHelper.cpp
-    ../../../Framework/TestHelpers/src/WorkspaceCreationHelper.cpp
-  LINK_LIBS
-    ${CORE_MANTIDLIBS}
-    DataObjects
-    ${POCO_LIBRARIES}
-    ${Boost_LIBRARIES}
-    ${GMOCK_LIBRARIES}
-    ${GTEST_LIBRARIES}
-  QT4_LINK_LIBS
-    Qwt5
-  MTD_QT_LINK_LIBS
-    MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
-  PARENT_DEPENDENCIES
-    GUITests
-)
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/DllOption.h b/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/DllOption.h
deleted file mode 100644
index 4893bacc9b79a8c4838572e1d98f83d292bdbc2a..0000000000000000000000000000000000000000
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/DllOption.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Mantid Repository : https://github.com/mantidproject/mantid
-//
-// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
-//     NScD Oak Ridge National Laboratory, European Spallation Source
-//     & Institut Laue - Langevin
-// SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTIDQT_LEGACYQWT_DLLOPTION_H_
-#define MANTIDQT_LEGACYQWT_DLLOPTION_H_
-
-#include "MantidKernel/System.h"
-
-#ifdef IN_MANTIDQT_LEGACYQWT
-#define EXPORT_OPT_MANTIDQT_LEGACYQWT DLLExport
-#define EXTERN_MANTIDQT_LEGACYQWT
-#else
-#define EXPORT_OPT_MANTIDQT_LEGACYQWT DLLImport
-#define EXTERN_MANTIDQT_LEGACYQWT extern
-#endif /* IN_MANTIDQT_LEGACYQWT */
-
-#endif // MANTIDQT_LEGACYQWT_DLLOPTION_H_
diff --git a/qt/widgets/mplcpp/inc/MantidQtWidgets/MplCpp/MantidColorMap.h b/qt/widgets/mplcpp/inc/MantidQtWidgets/MplCpp/MantidColorMap.h
index 53f273000941d1d4a079284d8fca9c9c31067625..053a89148668b6a2052396b91c1aee529b618c5c 100644
--- a/qt/widgets/mplcpp/inc/MantidQtWidgets/MplCpp/MantidColorMap.h
+++ b/qt/widgets/mplcpp/inc/MantidQtWidgets/MplCpp/MantidColorMap.h
@@ -23,7 +23,7 @@ namespace MplCpp {
 /**
  * @brief The MantidColormap exists to provide an matplotlib-based
  * implementation that satisfies the same colormap interface used by the Qt4
- * Qwt-based version in the LegacyQwt library.
+ * Qwt-based version in the Plotting library.
  */
 class MANTID_MPLCPP_DLL MantidColorMap {
 public:
diff --git a/qt/widgets/mplcpp/src/MantidColorMap.cpp b/qt/widgets/mplcpp/src/MantidColorMap.cpp
index 23769fc6cef9d1d804ac206400002ac40962abfb..c8170b47211ad93451c72e27189ba39378c50b5d 100644
--- a/qt/widgets/mplcpp/src/MantidColorMap.cpp
+++ b/qt/widgets/mplcpp/src/MantidColorMap.cpp
@@ -46,7 +46,7 @@ QString MantidColorMap::defaultColorMap() { return defaultCMapName(); }
 
 /**
  * @brief Check if a given color map exists. This interface has to
- * match the existing interface in LegacyQwt.
+ * match the existing interface in Plotting.
  * @param name The name of a colormap
  * @return The same name passed to the function if it exists
  * @throws std::runtime_error if the colomap does not exist
diff --git a/qt/widgets/plotting/CMakeLists.txt b/qt/widgets/plotting/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..80cb95a5304f677188a253b04bb58e349f3310d7
--- /dev/null
+++ b/qt/widgets/plotting/CMakeLists.txt
@@ -0,0 +1,133 @@
+# Plotting support library
+#  For Qt4 this is Qwt based and
+
+###########################################################################
+# Qwt5-based implementation
+###########################################################################
+set ( QWT_SRC_FILES
+  src/Qwt/ContourPreviewPlot.cpp
+  src/Qwt/DraggableColorBarWidget.cpp
+  src/Qwt/MantidColorMap.cpp
+  src/Qwt/MantidQwtIMDWorkspaceData.cpp
+  src/Qwt/MantidQwtWorkspaceData.cpp
+  src/Qwt/MWView.cpp
+  src/Qwt/PowerScaleEngine.cpp
+  src/Qwt/QwtHelper.cpp
+  src/Qwt/QwtRasterDataMD.cpp
+  src/Qwt/QwtRasterDataMDNonOrthogonal.cpp
+  src/Qwt/QwtWorkspaceBinData.cpp
+  src/Qwt/QwtWorkspaceSpectrumData.cpp
+  src/Qwt/ScaleEngine.cpp
+  src/Qwt/ColorBarWidget.cpp
+  src/Qwt/DisplayCurveFit.cpp
+  src/Qwt/ErrorCurve.cpp
+  src/Qwt/PeakPicker.cpp
+  src/Qwt/PreviewPlot.cpp
+  src/Qwt/RangeSelector.cpp
+  src/Qwt/SafeQwtPlot.cpp
+  src/Qwt/SignalRange.cpp
+)
+
+set ( QWT_MOC_FILES
+  inc/MantidQtWidgets/Plotting/Qwt/ContourPreviewPlot.h
+  inc/MantidQtWidgets/Plotting/Qwt/DraggableColorBarWidget.h
+  inc/MantidQtWidgets/Plotting/Qwt/ColorBarWidget.h
+  inc/MantidQtWidgets/Plotting/Qwt/MWView.h
+  inc/MantidQtWidgets/Plotting/Qwt/RangeSelector.h
+  inc/MantidQtWidgets/Plotting/Qwt/PeakPicker.h
+  inc/MantidQtWidgets/Plotting/Qwt/DisplayCurveFit.h
+  inc/MantidQtWidgets/Plotting/Qwt/PreviewPlot.h
+  inc/MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h
+)
+
+# Include files aren't required, but this makes them appear in Visual Studio
+set ( QWT_INC_FILES
+  inc/MantidQtWidgets/Plotting/DllOption.h
+  inc/MantidQtWidgets/Plotting/PreviewPlot.h
+  inc/MantidQtWidgets/Plotting/Qwt/MantidQwtWorkspaceData.h
+  inc/MantidQtWidgets/Plotting/Qwt/QwtRasterDataMD.h
+  inc/MantidQtWidgets/Plotting/Qwt/QwtRasterDataMDNonOrthogonal.h
+  inc/MantidQtWidgets/Plotting/Qwt/QwtWorkspaceBinData.h
+  inc/MantidQtWidgets/Plotting/Qwt/PowerScaleEngine.h
+  inc/MantidQtWidgets/Plotting/Qwt/ScaleEngine.h
+  inc/MantidQtWidgets/Plotting/Qwt/MantidQwtIMDWorkspaceData.h
+  inc/MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h
+  inc/MantidQtWidgets/Plotting/Qwt/MantidColorMap.h
+  inc/MantidQtWidgets/Plotting/Qwt/ErrorCurve.h
+  inc/MantidQtWidgets/Plotting/Qwt/QwtWorkspaceSpectrumData.h
+  inc/MantidQtWidgets/Plotting/Qwt/QwtHelper.h
+  inc/MantidQtWidgets/Plotting/Qwt/qwt_compat.h
+  inc/MantidQtWidgets/Plotting/Qwt/SignalRange.h
+)
+
+set ( QWT_UI_FILES
+  inc/MantidQtWidgets/Plotting/Qwt/ContourPreviewPlot.ui
+  inc/MantidQtWidgets/Plotting/Qwt/ColorBarWidget.ui
+  inc/MantidQtWidgets/Plotting/Qwt/DisplayCurveFit.ui
+  inc/MantidQtWidgets/Plotting/Qwt/MWView.ui
+  inc/MantidQtWidgets/Plotting/Qwt/PreviewPlot.ui
+)
+
+mtd_add_qt_library (TARGET_NAME MantidQtWidgetsPlotting
+  QT_VERSION 4
+  SRC ${QWT_SRC_FILES}
+  MOC ${QWT_MOC_FILES}
+  NOMOC ${QWT_INC_FILES}
+  UI ${QWT_UI_FILES}
+  DEFS
+    IN_MANTIDQT_PLOTTING
+  INCLUDE_DIRS
+    inc
+  SYSTEM_INCLUDE_DIRS
+    ${Boost_INCLUDE_DIRS}
+  LINK_LIBS
+    ${TCMALLOC_LIBRARIES_LINKTIME}
+    ${CORE_MANTIDLIBS}
+    ${POCO_LIBRARIES}
+    ${Boost_LIBRARIES}
+  QT4_LINK_LIBS
+    Qwt5
+  MTD_QT_LINK_LIBS
+    MantidQtWidgetsCommon
+  INSTALL_DIR
+    ${LIB_DIR}
+  OSX_INSTALL_RPATH
+    @loader_path/../MacOS
+  LINUX_INSTALL_RPATH
+    "\$ORIGIN/../${LIB_DIR}"
+)
+
+set( TEST_FILES
+  test/ContourPreviewPlotTest.h
+  test/MantidColorMapTest.h
+  test/QwtWorkspaceBinDataTest.h
+  test/QwtWorkspaceSpectrumDataTest.h
+  test/SignalRangeTest.h
+)
+
+mtd_add_qt_tests (TARGET_NAME MantidQtWidgetsPlottingTest
+  QT_VERSION 4
+  SRC ${TEST_FILES}
+  INCLUDE_DIRS
+    ../../../Framework/DataObjects/inc
+    ../../../Framework/TestHelpers/inc
+  TEST_HELPER_SRCS
+    ../../../Framework/TestHelpers/src/TearDownWorld.cpp
+    ../../../Framework/TestHelpers/src/ComponentCreationHelper.cpp
+    ../../../Framework/TestHelpers/src/InstrumentCreationHelper.cpp
+    ../../../Framework/TestHelpers/src/WorkspaceCreationHelper.cpp
+  LINK_LIBS
+    ${CORE_MANTIDLIBS}
+    DataObjects
+    ${POCO_LIBRARIES}
+    ${Boost_LIBRARIES}
+    ${GMOCK_LIBRARIES}
+    ${GTEST_LIBRARIES}
+  QT4_LINK_LIBS
+    Qwt5
+  MTD_QT_LINK_LIBS
+    MantidQtWidgetsCommon
+    MantidQtWidgetsPlotting
+  PARENT_DEPENDENCIES
+    GUITests
+)
diff --git a/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/DllOption.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/DllOption.h
new file mode 100644
index 0000000000000000000000000000000000000000..43e4f07d85104bb605021195976bbe24116ee3fb
--- /dev/null
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/DllOption.h
@@ -0,0 +1,20 @@
+// Mantid Repository : https://github.com/mantidproject/mantid
+//
+// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
+//     NScD Oak Ridge National Laboratory, European Spallation Source
+//     & Institut Laue - Langevin
+// SPDX - License - Identifier: GPL - 3.0 +
+#ifndef MANTIDQT_PLOTTING_DLLOPTION_H_
+#define MANTIDQT_PLOTTING_DLLOPTION_H_
+
+#include "MantidKernel/System.h"
+
+#ifdef IN_MANTIDQT_PLOTTING
+#define EXPORT_OPT_MANTIDQT_PLOTTING DLLExport
+#define EXTERN_MANTIDQT_PLOTTING
+#else
+#define EXPORT_OPT_MANTIDQT_PLOTTING DLLImport
+#define EXTERN_MANTIDQT_PLOTTING extern
+#endif /* IN_MANTIDQT_PLOTTING */
+
+#endif // MANTIDQT_PLOTTING_DLLOPTION_H_
diff --git a/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/PreviewPlot.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/PreviewPlot.h
new file mode 100644
index 0000000000000000000000000000000000000000..2d1cae701dcdaae6b1526fd2f9dd83242e57a84d
--- /dev/null
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/PreviewPlot.h
@@ -0,0 +1,18 @@
+// Mantid Repository : https://github.com/mantidproject/mantid
+//
+// Copyright &copy; 2011 ISIS Rutherford Appleton Laboratory UKRI,
+//     NScD Oak Ridge National Laboratory, European Spallation Source
+//     & Institut Laue - Langevin
+// SPDX - License - Identifier: GPL - 3.0 +
+#ifndef MANTIDQTMANTIDWIDGETS_PREVIEWPLOT_H_
+#define MANTIDQTMANTIDWIDGETS_PREVIEWPLOT_H_
+
+#include <QtGlobal>
+
+#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
+#include "MantidQtWidgets/Plotting/Qwt/PreviewPlot.h"
+#else
+#error "PreviewPlot not implemented for Qtglobal >= 5"
+#endif
+
+#endif // MANTIDQTMANTIDWIDGETS_PREVIEWPLOT_H_
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ColorBarWidget.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ColorBarWidget.h
similarity index 96%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ColorBarWidget.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ColorBarWidget.h
index aa7ce8d8760ca29194ba73ba71f71a7cd1ed7105..e5e7da1e22766755bc1cbc442d76d3d00860e2d7 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ColorBarWidget.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ColorBarWidget.h
@@ -7,8 +7,8 @@
 #ifndef MANTID_MANTIDWIDGETS_COLORBARWIDGET_H_
 #define MANTID_MANTIDWIDGETS_COLORBARWIDGET_H_
 
-#include "MantidQtWidgets/LegacyQwt/DllOption.h"
-#include "MantidQtWidgets/LegacyQwt/MantidColorMap.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidColorMap.h"
 #include "ui_ColorBarWidget.h"
 #include <QMouseEvent>
 #include <QWidget>
@@ -43,7 +43,7 @@ signals:
  * @author Janik Zikovsky
  * @date Oct 31, 2011.
  */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT ColorBarWidget : public QWidget {
+class EXPORT_OPT_MANTIDQT_PLOTTING ColorBarWidget : public QWidget {
   Q_OBJECT
   Q_PROPERTY(double minimum READ getMinimum WRITE setMinimum)
   Q_PROPERTY(double maximum READ getMaximum WRITE setMaximum)
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ColorBarWidget.ui b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ColorBarWidget.ui
similarity index 100%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ColorBarWidget.ui
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ColorBarWidget.ui
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ContourPreviewPlot.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ContourPreviewPlot.h
similarity index 97%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ContourPreviewPlot.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ContourPreviewPlot.h
index bf062458cf3560cc08115d1c10e56aad4ebbc9da..17597114466640297fd44dbe885c857d16cf8752 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ContourPreviewPlot.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ContourPreviewPlot.h
@@ -9,12 +9,12 @@
 
 #include "ui_ContourPreviewPlot.h"
 
-#include "DllOption.h"
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidGeometry/MDGeometry/MDHistoDimension.h"
 #include "MantidQtWidgets/Common/MdSettings.h"
 #include "MantidQtWidgets/Common/WorkspaceObserver.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 
 #include <qwt_plot_spectrogram.h>
 
@@ -42,7 +42,7 @@ using MWDimension_const_sptr =
     boost::shared_ptr<Mantid::API::MWDimension const>;
 using DimensionRange = std::pair<Mantid::coord_t, Mantid::coord_t>;
 
-class EXPORT_OPT_MANTIDQT_LEGACYQWT ContourPreviewPlot
+class EXPORT_OPT_MANTIDQT_PLOTTING ContourPreviewPlot
     : public QWidget,
       public MantidQt::API::WorkspaceObserver {
   Q_OBJECT
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ContourPreviewPlot.ui b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ContourPreviewPlot.ui
similarity index 96%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ContourPreviewPlot.ui
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ContourPreviewPlot.ui
index cfac215cf6c33d5a7eeaf9309f080f79b675e89a..37dd43e83bac50113b531591066509ce529a7f6e 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ContourPreviewPlot.ui
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ContourPreviewPlot.ui
@@ -114,12 +114,12 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::ColorBarWidget</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/ColorBarWidget.h</header>
+   <header>MantidQtWidgets/Plotting/Qwt/ColorBarWidget.h</header>
   </customwidget>
   <customwidget>
    <class>MantidQt::MantidWidgets::SafeQwtPlot</class>
    <extends>QwtPlot</extends>
-   <header>MantidQtWidgets/LegacyQwt/SafeQwtPlot.h</header>
+   <header>MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/DisplayCurveFit.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/DisplayCurveFit.h
similarity index 95%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/DisplayCurveFit.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/DisplayCurveFit.h
index e6dd0afaa8edafe7e531f2b4fb61ea018da54e83..caa326b653346f6a313b45eeff0eda49be14dd2c 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/DisplayCurveFit.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/DisplayCurveFit.h
@@ -7,9 +7,9 @@
 #ifndef MANTID_MANTIDWIDGETS_DISPLAYCURVEFIT_H_
 #define MANTID_MANTIDWIDGETS_DISPLAYCURVEFIT_H_
 // includes for interface development
-#include "DllOption.h"
 #include "MantidQtWidgets/Common/MantidWidget.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
+#include "MantidQtWidgets/Plotting/Qwt/RangeSelector.h"
 #include "ui_DisplayCurveFit.h"
 // includes for workspace handling
 #include "MantidAPI/MatrixWorkspace.h"
@@ -39,7 +39,7 @@ class RangeSelector;
 
   @date 2016-02-11
 */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT DisplayCurveFit : public API::MantidWidget {
+class EXPORT_OPT_MANTIDQT_PLOTTING DisplayCurveFit : public API::MantidWidget {
   Q_OBJECT
 
 public:
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/DisplayCurveFit.ui b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/DisplayCurveFit.ui
similarity index 97%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/DisplayCurveFit.ui
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/DisplayCurveFit.ui
index eb41a4d393e445d93402ac8848c67d04b245a681..9780714d6718b02bb9173527a420c7fabca22080 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/DisplayCurveFit.ui
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/DisplayCurveFit.ui
@@ -84,7 +84,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::PreviewPlot</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/PreviewPlot.h</header>
+   <header>MantidQtWidgets/Plotting/Qwt/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/DraggableColorBarWidget.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/DraggableColorBarWidget.h
similarity index 95%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/DraggableColorBarWidget.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/DraggableColorBarWidget.h
index f30d29495341ad876b1c6f75e3eaa71249cdc6a9..f5d99aeb90440ec950f9771dce11e0420df56675 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/DraggableColorBarWidget.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/DraggableColorBarWidget.h
@@ -7,7 +7,7 @@
 #ifndef DRAGGABLECOLORBARWIDGET_H_
 #define DRAGGABLECOLORBARWIDGET_H_
 
-#include "DllOption.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 #include <QFrame>
 
 class MantidColorMap;
@@ -23,7 +23,7 @@ namespace MantidWidgets {
 /**
  * Displays a color map with numeric axis and editable bounds
  */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT DraggableColorBarWidget : public QFrame {
+class EXPORT_OPT_MANTIDQT_PLOTTING DraggableColorBarWidget : public QFrame {
   Q_OBJECT
   enum DragType { Bottom, Top };
 
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ErrorCurve.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ErrorCurve.h
similarity index 91%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ErrorCurve.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ErrorCurve.h
index 93d81de1df89dca9fc63a0f58c3777e8bb11a818..737b50215a27f576706e37f08936e88476d9b830 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ErrorCurve.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ErrorCurve.h
@@ -7,7 +7,7 @@
 #ifndef MANTIDWIDGETS_ERRORCURVE_H
 #define MANTIDWIDGETS_ERRORCURVE_H
 
-#include "DllOption.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 #include <qwt_plot_curve.h>
 #include <qwt_plot_item.h>
 
@@ -15,7 +15,7 @@ namespace MantidQt {
 namespace MantidWidgets {
 
 /// Curve to draw error bars.
-class EXPORT_OPT_MANTIDQT_LEGACYQWT ErrorCurve : public QwtPlotItem {
+class EXPORT_OPT_MANTIDQT_PLOTTING ErrorCurve : public QwtPlotItem {
 
 public:
   ErrorCurve(const QwtPlotCurve *dataCurve,
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MWView.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MWView.h
similarity index 97%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MWView.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MWView.h
index 99bab26b4c2446ae3750547161b94cfdf519a002..84ba598336cec341812274487459f5933d6ad49a 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MWView.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MWView.h
@@ -8,8 +8,8 @@
 #define MANTID_MANTIDWIDGETS_MWVIEW_H_
 
 // includes for interface development
-#include "DllOption.h"
 #include "MantidQtWidgets/Common/MdSettings.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 #include "ui_MWView.h"
 #include <QWidget>
 #include <qwt_plot_spectrogram.h>
@@ -51,7 +51,7 @@ using MWDimension_const_sptr =
 
   @date 2016-02-05
 */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT MWView
+class EXPORT_OPT_MANTIDQT_PLOTTING MWView
     : public QWidget,
       public MantidQt::API::WorkspaceObserver {
   Q_OBJECT
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MWView.ui b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MWView.ui
similarity index 93%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MWView.ui
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MWView.ui
index 220ac58f54556d2c29648aef247b993b6e94a808..585027bced968be01f11c2f6bafb3dc2af421285 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MWView.ui
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MWView.ui
@@ -56,12 +56,12 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::ColorBarWidget</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/ColorBarWidget.h</header>
+   <header>MantidQtWidgets/Plotting/Qwt/ColorBarWidget.h</header>
   </customwidget>
   <customwidget>
    <class>MantidQt::MantidWidgets::SafeQwtPlot</class>
    <extends>QwtPlot</extends>
-   <header>MantidQtWidgets/LegacyQwt/SafeQwtPlot.h</header>
+   <header>MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MantidColorMap.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MantidColorMap.h
similarity index 96%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MantidColorMap.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MantidColorMap.h
index 25da61fcbb65cda730c4f63112699538e6e3ae45..f5390632702132714b165d6cd16a3effb9ef98f6 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MantidColorMap.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MantidColorMap.h
@@ -10,8 +10,8 @@
 //---------------------------------------------
 // Includes
 //---------------------------------------------
-#include "DllOption.h"
 #include "MantidQtWidgets/Common/GraphOptions.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 #include "qwt_color_map.h"
 
 /**
@@ -19,7 +19,7 @@
    from a file.
    There is also a mode which indicates the scale type.
 */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT MantidColorMap : public QwtColorMap {
+class EXPORT_OPT_MANTIDQT_PLOTTING MantidColorMap : public QwtColorMap {
 
 public:
   /// Define the possible scale types
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MantidQwtIMDWorkspaceData.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MantidQwtIMDWorkspaceData.h
similarity index 95%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MantidQwtIMDWorkspaceData.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MantidQwtIMDWorkspaceData.h
index 4f196d7fdbb501c78db04670b67e96fa08a3a187..da531a52ea2caf78e8819f7e819fc5e6bcd114ad 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MantidQwtIMDWorkspaceData.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MantidQwtIMDWorkspaceData.h
@@ -9,8 +9,8 @@
 
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidKernel/VMD.h"
-#include "MantidQtWidgets/LegacyQwt/DllOption.h"
-#include "MantidQtWidgets/LegacyQwt/MantidQwtWorkspaceData.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidQwtWorkspaceData.h"
 #include <boost/weak_ptr.hpp>
 
 /** This class is used to plot MDWorkspace line plots.
@@ -19,7 +19,7 @@
  * It implements the QwtData interface.
  *
  */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT MantidQwtIMDWorkspaceData
+class EXPORT_OPT_MANTIDQT_PLOTTING MantidQwtIMDWorkspaceData
     : public MantidQwtWorkspaceData {
 public:
   /// For PlotAxisChoice, auto-determine it
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MantidQwtWorkspaceData.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MantidQwtWorkspaceData.h
similarity index 93%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MantidQwtWorkspaceData.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MantidQwtWorkspaceData.h
index cb0b13da93a800ac72d5fda7be93a533c07f350a..19e6c8c61e06b6e3087bbd3cd55639874415b94a 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/MantidQwtWorkspaceData.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/MantidQwtWorkspaceData.h
@@ -7,7 +7,7 @@
 #ifndef MANTIDQTAPI_MANTIDQWTWORKSPACEDATA_H
 #define MANTIDQTAPI_MANTIDQWTWORKSPACEDATA_H
 
-#include "DllOption.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 #include "qwt_data.h"
 
 //-----------------------------------------------------------------------------
@@ -22,7 +22,7 @@ class MatrixWorkspace;
 /**
  * Base class for Workspace Qwt data types
  */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT MantidQwtWorkspaceData : public QwtData {
+class EXPORT_OPT_MANTIDQT_PLOTTING MantidQwtWorkspaceData : public QwtData {
 public:
   MantidQwtWorkspaceData(bool logScaleY);
   MantidQwtWorkspaceData(const MantidQwtWorkspaceData &data);
@@ -87,7 +87,7 @@ private:
 /**
  * Base class for MatrixWorkspace Qwt data types
  */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT MantidQwtMatrixWorkspaceData
+class EXPORT_OPT_MANTIDQT_PLOTTING MantidQwtMatrixWorkspaceData
     : public MantidQwtWorkspaceData {
 public:
   MantidQwtMatrixWorkspaceData(bool logScaleY);
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/PeakPicker.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/PeakPicker.h
similarity index 91%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/PeakPicker.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/PeakPicker.h
index 2c16bb09730f99c05a12b78c3f5a3c308d013701..f013b14c6919c652cf246fc09791163f1344a351 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/PeakPicker.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/PeakPicker.h
@@ -10,7 +10,7 @@
 #include "MantidKernel/System.h"
 
 #include "MantidAPI/IPeakFunction.h"
-#include "MantidQtWidgets/LegacyQwt/DllOption.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 
 #include <qwt_plot.h>
 #include <qwt_plot_marker.h>
@@ -22,8 +22,8 @@ namespace MantidWidgets {
 /** PeakPicker : A simplified version of PeakPickerTool, available for use on
   general QwtPlots.
 */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT PeakPicker : public QwtPlotPicker,
-                                                 public QwtPlotItem {
+class EXPORT_OPT_MANTIDQT_PLOTTING PeakPicker : public QwtPlotPicker,
+                                                public QwtPlotItem {
   Q_OBJECT
 
 public:
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/PowerScaleEngine.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/PowerScaleEngine.h
similarity index 95%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/PowerScaleEngine.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/PowerScaleEngine.h
index 9a86e61136ee53e1a188b1bc1d6cb72b58092723..52eaf4538b493d8bb08589670dd9c3bebb91c1d9 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/PowerScaleEngine.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/PowerScaleEngine.h
@@ -30,12 +30,12 @@
 #ifndef POWER_SCALE_ENGINE_H
 #define POWER_SCALE_ENGINE_H
 
-#include "MantidQtWidgets/LegacyQwt/DllOption.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 #include "ScaleEngine.h"
 #include <qwt_scale_engine.h>
 #include <qwt_scale_map.h>
 
-class EXPORT_OPT_MANTIDQT_LEGACYQWT PowerScaleTransformation
+class EXPORT_OPT_MANTIDQT_PLOTTING PowerScaleTransformation
     : public ScaleTransformation {
 public:
   PowerScaleTransformation(const ScaleEngine *engine)
@@ -55,7 +55,7 @@ private:
   \brief A scale engine for power (X^n) scales
 */
 
-class EXPORT_OPT_MANTIDQT_LEGACYQWT PowerScaleEngine : public QwtScaleEngine {
+class EXPORT_OPT_MANTIDQT_PLOTTING PowerScaleEngine : public QwtScaleEngine {
 public:
   void autoScale(int maxSteps, double &x1, double &x2,
                  double &stepSize) const override;
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/PreviewPlot.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/PreviewPlot.h
similarity index 92%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/PreviewPlot.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/PreviewPlot.h
index e964f77a0179270176aed43e3284c7cb4a571a4e..a574fb40d3e41a2bbe06ba5c33bc0374a0e11db7 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/PreviewPlot.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/PreviewPlot.h
@@ -4,15 +4,15 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#ifndef MANTIDQTMANTIDWIDGETS_PREVIEWPLOT_H_
-#define MANTIDQTMANTIDWIDGETS_PREVIEWPLOT_H_
+#ifndef MANTIDQTMANTIDWIDGETS_QWT_PREVIEWPLOT_H_
+#define MANTIDQTMANTIDWIDGETS_QWT_PREVIEWPLOT_H_
 
 #include "ui_PreviewPlot.h"
 
-#include "DllOption.h"
 #include "MantidQtWidgets/Common/MantidWidget.h"
-#include "MantidQtWidgets/LegacyQwt/ErrorCurve.h"
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
+#include "MantidQtWidgets/Plotting/Qwt/ErrorCurve.h"
+#include "MantidQtWidgets/Plotting/Qwt/RangeSelector.h"
 
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidAPI/MatrixWorkspace.h"
@@ -44,7 +44,7 @@ Gives option to use pan and zoom options to navigate plot.
 // forward declaration
 class DisplayCurveFit;
 
-class EXPORT_OPT_MANTIDQT_LEGACYQWT PreviewPlot : public API::MantidWidget {
+class EXPORT_OPT_MANTIDQT_PLOTTING PreviewPlot : public API::MantidWidget {
   Q_OBJECT
 
   Q_PROPERTY(QColor canvasColour READ canvasColour WRITE setCanvasColour)
@@ -69,7 +69,7 @@ public:
   QPair<double, double> getCurveRange(const QString &curveName);
 
   void addSpectrum(const QString &curveName,
-                   const Mantid::API::MatrixWorkspace_sptr ws,
+                   const Mantid::API::MatrixWorkspace_sptr &ws,
                    const size_t wsIndex = 0,
                    const QColor &curveColour = QColor());
   void addSpectrum(const QString &curveName, const QString &wsName,
@@ -197,4 +197,4 @@ private:
 } // namespace MantidWidgets
 } // namespace MantidQt
 
-#endif // MANTIDQTMANTIDWIDGETS_PREVIEWPLOT_H_
+#endif // MANTIDQTMANTIDWIDGETS_QWT_PREVIEWPLOT_H_
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/PreviewPlot.ui b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/PreviewPlot.ui
similarity index 100%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/PreviewPlot.ui
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/PreviewPlot.ui
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtHelper.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtHelper.h
similarity index 77%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtHelper.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtHelper.h
index 06880a9017436d9efb34332784e205d8f06fb3aa..02ba028bc8347c6f1ae1dcb12b1d4427f4f7d0b1 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtHelper.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtHelper.h
@@ -7,10 +7,10 @@
 #ifndef MANTID_API_QWTHELPER_H_
 #define MANTID_API_QWTHELPER_H_
 
-#include "DllOption.h"
 #include "MantidAPI/IFunction.h"
 #include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidKernel/System.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 
 #include <qwt_data.h>
 
@@ -18,30 +18,30 @@ namespace MantidQt {
 namespace API {
 namespace QwtHelper {
 /// Create Qwt curve data from a workspace
-EXPORT_OPT_MANTIDQT_LEGACYQWT boost::shared_ptr<QwtData>
+EXPORT_OPT_MANTIDQT_PLOTTING boost::shared_ptr<QwtData>
 curveDataFromWs(Mantid::API::MatrixWorkspace_const_sptr ws, size_t wsIndex);
 
 /// Create vector of Qwt curve data from a workspace, used for EnggDiffraction
 /// GUI
-EXPORT_OPT_MANTIDQT_LEGACYQWT std::vector<boost::shared_ptr<QwtData>>
+EXPORT_OPT_MANTIDQT_PLOTTING std::vector<boost::shared_ptr<QwtData>>
 curveDataFromWs(Mantid::API::MatrixWorkspace_const_sptr ws);
 
 /// Create error vector from a workspace
-EXPORT_OPT_MANTIDQT_LEGACYQWT std::vector<double>
+EXPORT_OPT_MANTIDQT_PLOTTING std::vector<double>
 curveErrorsFromWs(Mantid::API::MatrixWorkspace_const_sptr ws, size_t wsIndex);
 
 /// Create Qwt curve data from a function
-EXPORT_OPT_MANTIDQT_LEGACYQWT boost::shared_ptr<QwtData>
+EXPORT_OPT_MANTIDQT_PLOTTING boost::shared_ptr<QwtData>
 curveDataFromFunction(Mantid::API::IFunction_const_sptr func,
                       const std::vector<double> &xValues);
 
 /// Create workspace filled with function values
-EXPORT_OPT_MANTIDQT_LEGACYQWT Mantid::API::MatrixWorkspace_sptr
+EXPORT_OPT_MANTIDQT_PLOTTING Mantid::API::MatrixWorkspace_sptr
 createWsFromFunction(Mantid::API::IFunction_const_sptr func,
                      const std::vector<double> &xValues);
 
 /// Creates empty Qwt curve data
-EXPORT_OPT_MANTIDQT_LEGACYQWT boost::shared_ptr<QwtData> emptyCurveData();
+EXPORT_OPT_MANTIDQT_PLOTTING boost::shared_ptr<QwtData> emptyCurveData();
 
 } // namespace QwtHelper
 } // namespace API
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtRasterDataMD.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtRasterDataMD.h
similarity index 96%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtRasterDataMD.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtRasterDataMD.h
index f0d4fe273d56529b4b19ddd5a98ce4b3f9bbd959..9de029cd60ebeb6373743d1b6998762e11c4a8cf 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtRasterDataMD.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtRasterDataMD.h
@@ -13,7 +13,7 @@
 #include "MantidGeometry/MDGeometry/IMDDimension.h"
 #include "MantidGeometry/MDGeometry/MDHistoDimension.h"
 #include "MantidGeometry/MDGeometry/MDTypes.h"
-#include "MantidQtWidgets/LegacyQwt/DllOption.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 
 #include <qwt_double_interval.h>
 #include <qwt_raster_data.h>
@@ -33,7 +33,7 @@ namespace API {
  * @date Sep 29, 2011
  */
 
-class EXPORT_OPT_MANTIDQT_LEGACYQWT QwtRasterDataMD : public QwtRasterData {
+class EXPORT_OPT_MANTIDQT_PLOTTING QwtRasterDataMD : public QwtRasterData {
 public:
   QwtRasterDataMD();
   ~QwtRasterDataMD() override;
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtRasterDataMDNonOrthogonal.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtRasterDataMDNonOrthogonal.h
similarity index 88%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtRasterDataMDNonOrthogonal.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtRasterDataMDNonOrthogonal.h
index 26151b2f7eca558ed8bdfab65977dc506bed96e9..be278292905ad044bffa93b498548f5b261f6bef 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtRasterDataMDNonOrthogonal.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtRasterDataMDNonOrthogonal.h
@@ -9,14 +9,14 @@
 
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidKernel/Matrix.h"
-#include "MantidQtWidgets/LegacyQwt/DllOption.h"
-#include "MantidQtWidgets/LegacyQwt/QwtRasterDataMD.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtRasterDataMD.h"
 #include <array>
 
 namespace MantidQt {
 namespace API {
 
-class EXPORT_OPT_MANTIDQT_LEGACYQWT QwtRasterDataMDNonOrthogonal
+class EXPORT_OPT_MANTIDQT_PLOTTING QwtRasterDataMDNonOrthogonal
     : public QwtRasterDataMD {
 public:
   QwtRasterDataMDNonOrthogonal();
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtWorkspaceBinData.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtWorkspaceBinData.h
similarity index 93%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtWorkspaceBinData.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtWorkspaceBinData.h
index 539cf631fa5456f7a82abb859dda0ef885fe86ce..d8e39c4af4db38fe7009aa682f22b29d27a66e12 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtWorkspaceBinData.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtWorkspaceBinData.h
@@ -7,10 +7,10 @@
 #ifndef MANTIDQTAPI_QWTWORKSPACEBINDATA_H
 #define MANTIDQTAPI_QWTWORKSPACEBINDATA_H
 
-#include "DllOption.h"
 #include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidKernel/cow_ptr.h"
-#include "MantidQtWidgets/LegacyQwt/MantidQwtWorkspaceData.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidQwtWorkspaceData.h"
 
 #include <boost/shared_ptr.hpp>
 
@@ -21,7 +21,7 @@
 /**  This class implements QwtData with direct access to a spectrum in a
  * MatrixWorkspace.
  */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT QwtWorkspaceBinData
+class EXPORT_OPT_MANTIDQT_PLOTTING QwtWorkspaceBinData
     : public MantidQwtMatrixWorkspaceData {
 public:
   QwtWorkspaceBinData(const Mantid::API::MatrixWorkspace &workspace,
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtWorkspaceSpectrumData.h
similarity index 95%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtWorkspaceSpectrumData.h
index 796405aef51677fc8b5b44f0964496a1d708b03b..139e92f6e564d194455ce4aeeceadc22ff33c61a 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/QwtWorkspaceSpectrumData.h
@@ -7,11 +7,11 @@
 #ifndef MANTIDQTAPI_QWTWORKSPACESPECTRUMDATA_H
 #define MANTIDQTAPI_QWTWORKSPACESPECTRUMDATA_H
 
-#include "DllOption.h"
 #include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidKernel/cow_ptr.h"
 #include "MantidQtWidgets/Common/DistributionOptions.h"
-#include "MantidQtWidgets/LegacyQwt/MantidQwtWorkspaceData.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidQwtWorkspaceData.h"
 
 #include <QString>
 #include <boost/shared_ptr.hpp>
@@ -21,7 +21,7 @@
 /**  This class implements QwtData with direct access to a spectrum in a
  * MatrixWorkspace.
  */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT QwtWorkspaceSpectrumData
+class EXPORT_OPT_MANTIDQT_PLOTTING QwtWorkspaceSpectrumData
     : public MantidQwtMatrixWorkspaceData {
 public:
   QwtWorkspaceSpectrumData(const Mantid::API::MatrixWorkspace &workspace,
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/RangeSelector.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/RangeSelector.h
similarity index 96%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/RangeSelector.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/RangeSelector.h
index b3057bf0febdca8a71e52199afee6d1e47af8230..a19f22623f95895bd25b1cbc7d36ede7e6343dec 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/RangeSelector.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/RangeSelector.h
@@ -7,7 +7,7 @@
 #ifndef MANTIDQT_MANTIDWIDGET_POSHPLOTTING_H
 #define MANTIDQT_MANTIDWIDGET_POSHPLOTTING_H
 
-#include "DllOption.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 
 #include <qwt_plot.h>
 #include <qwt_plot_marker.h>
@@ -24,7 +24,7 @@ class PreviewPlot;
  * @author Michael Whitty, RAL ISIS
  * @date 11/10/2010
  */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT RangeSelector : public QwtPlotPicker {
+class EXPORT_OPT_MANTIDQT_PLOTTING RangeSelector : public QwtPlotPicker {
   Q_OBJECT
 public:
   enum SelectType { XMINMAX, XSINGLE, YMINMAX, YSINGLE };
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/SafeQwtPlot.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h
similarity index 90%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/SafeQwtPlot.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h
index d6b8fe861b3960b050106dfd0bbd733957586d7e..7b97589cfaa049e45571cbc7d6adc08a982796e5 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/SafeQwtPlot.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h
@@ -7,9 +7,8 @@
 #ifndef MANTID_MANTIDWIDGETS_SAFEQWTPLOT_H_
 #define MANTID_MANTIDWIDGETS_SAFEQWTPLOT_H_
 
-#include "DllOption.h"
 #include "MantidAPI/Workspace_fwd.h"
-#include "MantidQtWidgets/LegacyQwt/DllOption.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 #include "qwt_text.h"
 #include <QPainter>
 #include <qwt_plot.h>
@@ -28,7 +27,7 @@ namespace MantidWidgets {
 
   @date 2012-01-24
 */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT SafeQwtPlot : public QwtPlot {
+class EXPORT_OPT_MANTIDQT_PLOTTING SafeQwtPlot : public QwtPlot {
   Q_OBJECT
 
 public:
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ScaleEngine.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ScaleEngine.h
similarity index 96%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ScaleEngine.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ScaleEngine.h
index 728f915d7141d5e0bb00b0431a477a46f1e3c75a..c17d78b257b8c97de79f0379d10d87eb8f128f9b 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/ScaleEngine.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/ScaleEngine.h
@@ -30,14 +30,14 @@
 #ifndef SCALE_ENGINE_H
 #define SCALE_ENGINE_H
 
-#include "MantidQtWidgets/LegacyQwt/DllOption.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 #include <float.h>
 #include <qwt_scale_engine.h>
 #include <qwt_scale_map.h>
 
 class ScaleEngine;
 
-class EXPORT_OPT_MANTIDQT_LEGACYQWT ScaleTransformation
+class EXPORT_OPT_MANTIDQT_PLOTTING ScaleTransformation
     : public QwtScaleTransformation {
 public:
   enum Type { Linear, Log10, Power };
@@ -57,7 +57,7 @@ protected:
   const ScaleEngine *d_engine;
 };
 
-class EXPORT_OPT_MANTIDQT_LEGACYQWT ScaleEngine : public QwtScaleEngine {
+class EXPORT_OPT_MANTIDQT_PLOTTING ScaleEngine : public QwtScaleEngine {
 public:
   ScaleEngine(ScaleTransformation::Type type = ScaleTransformation::Linear,
               double left_break = -DBL_MAX, double right_break = DBL_MAX);
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/SignalRange.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/SignalRange.h
similarity index 94%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/SignalRange.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/SignalRange.h
index 36b993fe52cb27d2b4352eb4dfae13c62661beb6..50b9954bf5c6d7adef018453dcea8a06e61471e1 100644
--- a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/SignalRange.h
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/SignalRange.h
@@ -8,7 +8,7 @@
 #define MANTIDQT_API_SIGNALRANGE_H_
 
 #include "MantidAPI/IMDWorkspace.h"
-#include "MantidQtWidgets/LegacyQwt/DllOption.h"
+#include "MantidQtWidgets/Plotting/DllOption.h"
 
 #include <qwt_double_interval.h>
 
@@ -17,7 +17,7 @@ namespace API {
 /**
  Calculates the signal range from a given workspace and optional MDFunction
 */
-class EXPORT_OPT_MANTIDQT_LEGACYQWT SignalRange {
+class EXPORT_OPT_MANTIDQT_PLOTTING SignalRange {
 public:
   SignalRange(const Mantid::API::IMDWorkspace &workspace,
               const Mantid::API::MDNormalization normalization =
diff --git a/qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/qwt_compat.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/qwt_compat.h
similarity index 100%
rename from qt/widgets/legacyqwt/inc/MantidQtWidgets/LegacyQwt/qwt_compat.h
rename to qt/widgets/plotting/inc/MantidQtWidgets/Plotting/Qwt/qwt_compat.h
diff --git a/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/RangeSelector.h b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/RangeSelector.h
new file mode 100644
index 0000000000000000000000000000000000000000..6d1392748f84f4401ef28e4dfb3a79d38ade7cee
--- /dev/null
+++ b/qt/widgets/plotting/inc/MantidQtWidgets/Plotting/RangeSelector.h
@@ -0,0 +1,18 @@
+// Mantid Repository : https://github.com/mantidproject/mantid
+//
+// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
+//     NScD Oak Ridge National Laboratory, European Spallation Source
+//     & Institut Laue - Langevin
+// SPDX - License - Identifier: GPL - 3.0 +
+#ifndef MANTIDQT_MANTIDWIDGET_RANGESELECTOR_H
+#define MANTIDQT_MANTIDWIDGET_RANGESELECTOR_H
+
+#include <QtGlobal>
+
+#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
+#include "MantidQtWidgets/Plotting/Qwt/RangeSelector.h"
+#else
+#error "RangeSelector not implemented for Qtglobal >= 5"
+#endif
+
+#endif // MANTIDQT_MANTIDWIDGET_RANGESELECTOR_H
diff --git a/qt/widgets/legacyqwt/src/ColorBarWidget.cpp b/qt/widgets/plotting/src/Qwt/ColorBarWidget.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/ColorBarWidget.cpp
rename to qt/widgets/plotting/src/Qwt/ColorBarWidget.cpp
index ec168263c80cc5d934647468bc64fcefde1946fc..db9affbe3293004b5d86d34f2c323480092421e3 100644
--- a/qt/widgets/legacyqwt/src/ColorBarWidget.cpp
+++ b/qt/widgets/plotting/src/Qwt/ColorBarWidget.cpp
@@ -4,11 +4,11 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/ColorBarWidget.h"
+#include "MantidQtWidgets/Plotting/Qwt/ColorBarWidget.h"
 #include "MantidQtWidgets/Common/QScienceSpinBox.h"
 #include "MantidQtWidgets/Common/TSVSerialiser.h"
-#include "MantidQtWidgets/LegacyQwt/MantidColorMap.h"
-#include "MantidQtWidgets/LegacyQwt/PowerScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidColorMap.h"
+#include "MantidQtWidgets/Plotting/Qwt/PowerScaleEngine.h"
 #include <QKeyEvent>
 #include <QToolTip>
 #include <qwt_scale_engine.h>
diff --git a/qt/widgets/legacyqwt/src/ContourPreviewPlot.cpp b/qt/widgets/plotting/src/Qwt/ContourPreviewPlot.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/ContourPreviewPlot.cpp
rename to qt/widgets/plotting/src/Qwt/ContourPreviewPlot.cpp
index 5e5d1003676dba643c0e007118c6ebac3f075d3b..44d08fcbe1becf66a26e181a6a58a9dfa213dea1 100644
--- a/qt/widgets/legacyqwt/src/ContourPreviewPlot.cpp
+++ b/qt/widgets/plotting/src/Qwt/ContourPreviewPlot.cpp
@@ -4,16 +4,16 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/ContourPreviewPlot.h"
+#include "MantidQtWidgets/Plotting/Qwt/ContourPreviewPlot.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidColorMap.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtRasterDataMD.h"
+#include "MantidQtWidgets/Plotting/Qwt/SignalRange.h"
 
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidGeometry/MDGeometry/IMDDimension.h"
 #include "MantidGeometry/MDGeometry/MDHistoDimension.h"
 #include "MantidGeometry/MDGeometry/MDTypes.h"
 #include "MantidKernel/ReadLock.h"
-#include "MantidQtWidgets/LegacyQwt/MantidColorMap.h"
-#include "MantidQtWidgets/LegacyQwt/QwtRasterDataMD.h"
-#include "MantidQtWidgets/LegacyQwt/SignalRange.h"
 
 #include <boost/pointer_cast.hpp>
 #include <boost/shared_ptr.hpp>
diff --git a/qt/widgets/legacyqwt/src/DisplayCurveFit.cpp b/qt/widgets/plotting/src/Qwt/DisplayCurveFit.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/DisplayCurveFit.cpp
rename to qt/widgets/plotting/src/Qwt/DisplayCurveFit.cpp
index 1d7523477979320348b7d9549802ce630f4e6501..9b9baf6c220eed4d8e370a3b1ba045dea406632a 100644
--- a/qt/widgets/legacyqwt/src/DisplayCurveFit.cpp
+++ b/qt/widgets/plotting/src/Qwt/DisplayCurveFit.cpp
@@ -4,12 +4,12 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/DisplayCurveFit.h"
+#include "MantidQtWidgets/Plotting/Qwt/DisplayCurveFit.h"
 #include "MantidKernel/Logger.h"
 // includes for workspace handling
 
 // includes for interface development
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/Qwt/RangeSelector.h"
 
 namespace {
 Mantid::Kernel::Logger g_log("DisplayCurveFit");
diff --git a/qt/widgets/legacyqwt/src/DraggableColorBarWidget.cpp b/qt/widgets/plotting/src/Qwt/DraggableColorBarWidget.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/DraggableColorBarWidget.cpp
rename to qt/widgets/plotting/src/Qwt/DraggableColorBarWidget.cpp
index 93bd2091c35572666fb586b66b3a39ca328ddc37..4bc80c5c165d36631f31716e7a37e8b0bb524f0e 100644
--- a/qt/widgets/legacyqwt/src/DraggableColorBarWidget.cpp
+++ b/qt/widgets/plotting/src/Qwt/DraggableColorBarWidget.cpp
@@ -4,9 +4,9 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/DraggableColorBarWidget.h"
-#include "MantidQtWidgets/LegacyQwt/MantidColorMap.h"
-#include "MantidQtWidgets/LegacyQwt/PowerScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/DraggableColorBarWidget.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidColorMap.h"
+#include "MantidQtWidgets/Plotting/Qwt/PowerScaleEngine.h"
 
 #include "MantidQtWidgets/Common/DoubleSpinBox.h"
 #include "MantidQtWidgets/Common/GraphOptions.h"
diff --git a/qt/widgets/legacyqwt/src/ErrorCurve.cpp b/qt/widgets/plotting/src/Qwt/ErrorCurve.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/ErrorCurve.cpp
rename to qt/widgets/plotting/src/Qwt/ErrorCurve.cpp
index c53702c684918f4dbb966b3d75185890f1c9c041..2175c7581299ee72f3b27bcb3d0c3e2bf82bc5a8 100644
--- a/qt/widgets/legacyqwt/src/ErrorCurve.cpp
+++ b/qt/widgets/plotting/src/Qwt/ErrorCurve.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/ErrorCurve.h"
+#include "MantidQtWidgets/Plotting/Qwt/ErrorCurve.h"
 
 #include <QPainter>
 #include <qwt_scale_map.h>
diff --git a/qt/widgets/legacyqwt/src/MWView.cpp b/qt/widgets/plotting/src/Qwt/MWView.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/MWView.cpp
rename to qt/widgets/plotting/src/Qwt/MWView.cpp
index 47e15c3d854307bb449992c510e8dea2790b548d..fbddb6130a0cde02d035515198b89970e1d94969 100644
--- a/qt/widgets/legacyqwt/src/MWView.cpp
+++ b/qt/widgets/plotting/src/Qwt/MWView.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/MWView.h"
+#include "MantidQtWidgets/Plotting/Qwt/MWView.h"
 // includes for workspace handling
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/MatrixWorkspace.h"
@@ -12,12 +12,12 @@
 #include "MantidGeometry/MDGeometry/MDHistoDimension.h"
 #include "MantidGeometry/MDGeometry/MDTypes.h"
 #include "MantidKernel/ReadLock.h"
-#include "MantidQtWidgets/LegacyQwt/SignalRange.h"
+#include "MantidQtWidgets/Plotting/Qwt/SignalRange.h"
 #include <boost/pointer_cast.hpp>
 #include <boost/shared_ptr.hpp>
 // includes for interface development
-#include "MantidQtWidgets/LegacyQwt/MantidColorMap.h"
-#include "MantidQtWidgets/LegacyQwt/QwtRasterDataMD.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidColorMap.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtRasterDataMD.h"
 #include <QSettings>
 #include <qwt_color_map.h>
 #include <qwt_double_rect.h>
diff --git a/qt/widgets/legacyqwt/src/MantidColorMap.cpp b/qt/widgets/plotting/src/Qwt/MantidColorMap.cpp
similarity index 99%
rename from qt/widgets/legacyqwt/src/MantidColorMap.cpp
rename to qt/widgets/plotting/src/Qwt/MantidColorMap.cpp
index 44de9157b77f2eea5b0aeaf18ae35d3b7cb4b08a..d98c046b41af3810e748885e1116a069904a2c68 100644
--- a/qt/widgets/legacyqwt/src/MantidColorMap.cpp
+++ b/qt/widgets/plotting/src/Qwt/MantidColorMap.cpp
@@ -7,7 +7,7 @@
 //--------------------------------------
 // Includes
 //--------------------------------------
-#include "MantidQtWidgets/LegacyQwt/MantidColorMap.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidColorMap.h"
 
 // std headers
 #include <cmath>
diff --git a/qt/widgets/legacyqwt/src/MantidQwtIMDWorkspaceData.cpp b/qt/widgets/plotting/src/Qwt/MantidQwtIMDWorkspaceData.cpp
similarity index 99%
rename from qt/widgets/legacyqwt/src/MantidQwtIMDWorkspaceData.cpp
rename to qt/widgets/plotting/src/Qwt/MantidQwtIMDWorkspaceData.cpp
index 5978ab2932eda5f00fb79bf40ea35b4aea499085..59ec00ac677a589c5d6a03754cd195a6c4a626e3 100644
--- a/qt/widgets/legacyqwt/src/MantidQwtIMDWorkspaceData.cpp
+++ b/qt/widgets/plotting/src/Qwt/MantidQwtIMDWorkspaceData.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/MantidQwtIMDWorkspaceData.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidQwtIMDWorkspaceData.h"
 #include "MantidAPI/CoordTransform.h"
 #include "MantidAPI/IMDEventWorkspace.h"
 #include "MantidAPI/IMDHistoWorkspace.h"
diff --git a/qt/widgets/legacyqwt/src/MantidQwtWorkspaceData.cpp b/qt/widgets/plotting/src/Qwt/MantidQwtWorkspaceData.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/MantidQwtWorkspaceData.cpp
rename to qt/widgets/plotting/src/Qwt/MantidQwtWorkspaceData.cpp
index ddf96828bbe399fd4b6bc59c50727a9803b1357c..e776f4c692ac7e2508d1ee5969012db76c983f97 100644
--- a/qt/widgets/legacyqwt/src/MantidQwtWorkspaceData.cpp
+++ b/qt/widgets/plotting/src/Qwt/MantidQwtWorkspaceData.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/MantidQwtWorkspaceData.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidQwtWorkspaceData.h"
 
 #include <cmath>
 
diff --git a/qt/widgets/legacyqwt/src/PeakPicker.cpp b/qt/widgets/plotting/src/Qwt/PeakPicker.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/PeakPicker.cpp
rename to qt/widgets/plotting/src/Qwt/PeakPicker.cpp
index aa401ef4ca8061dfc549c0ba760d32ebccbabee0..6230fba32559dea933d5b17460e8ae7e254a33e9 100644
--- a/qt/widgets/legacyqwt/src/PeakPicker.cpp
+++ b/qt/widgets/plotting/src/Qwt/PeakPicker.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/PeakPicker.h"
+#include "MantidQtWidgets/Plotting/Qwt/PeakPicker.h"
 
 #include <qwt_painter.h>
 #include <qwt_plot_canvas.h>
diff --git a/qt/widgets/legacyqwt/src/PowerScaleEngine.cpp b/qt/widgets/plotting/src/Qwt/PowerScaleEngine.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/PowerScaleEngine.cpp
rename to qt/widgets/plotting/src/Qwt/PowerScaleEngine.cpp
index 08f4472f3ca745f7f5ba1caa644cce360b9baeea..865bc85dd40aefa9edfb88e69df2889cdf3ea74e 100644
--- a/qt/widgets/legacyqwt/src/PowerScaleEngine.cpp
+++ b/qt/widgets/plotting/src/Qwt/PowerScaleEngine.cpp
@@ -27,8 +27,8 @@
  *                                                                         *
  ***************************************************************************/
 
-#include "MantidQtWidgets/LegacyQwt/PowerScaleEngine.h"
-#include "MantidQtWidgets/LegacyQwt/qwt_compat.h"
+#include "MantidQtWidgets/Plotting/Qwt/PowerScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/qwt_compat.h"
 
 /*!
   Return a dummy transformation
diff --git a/qt/widgets/legacyqwt/src/PreviewPlot.cpp b/qt/widgets/plotting/src/Qwt/PreviewPlot.cpp
similarity index 99%
rename from qt/widgets/legacyqwt/src/PreviewPlot.cpp
rename to qt/widgets/plotting/src/Qwt/PreviewPlot.cpp
index a0b197c77c285ab2c88b6f59bf20d57e6abfeded..117c7d35ec382ae3ae6a3edd95284e022075f529 100644
--- a/qt/widgets/legacyqwt/src/PreviewPlot.cpp
+++ b/qt/widgets/plotting/src/Qwt/PreviewPlot.cpp
@@ -7,7 +7,7 @@
 //------------------------------------------------------
 // Includes
 //------------------------------------------------------
-#include "MantidQtWidgets/LegacyQwt/PreviewPlot.h"
+#include "MantidQtWidgets/Plotting/Qwt/PreviewPlot.h"
 
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/AnalysisDataService.h"
@@ -247,7 +247,7 @@ QPair<double, double> PreviewPlot::getCurveRange(const QString &curveName) {
  * @param curveColour Colour of curve to plot
  */
 void PreviewPlot::addSpectrum(const QString &curveName,
-                              const MatrixWorkspace_sptr ws,
+                              const MatrixWorkspace_sptr &ws,
                               const size_t wsIndex, const QColor &curveColour) {
   if (curveName.isEmpty()) {
     g_log.warning("Cannot plot with empty curve name");
diff --git a/qt/widgets/legacyqwt/src/QwtHelper.cpp b/qt/widgets/plotting/src/Qwt/QwtHelper.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/QwtHelper.cpp
rename to qt/widgets/plotting/src/Qwt/QwtHelper.cpp
index 32ff81aef2bc0db3e676a818967f70ad1dfdcc49..fd40f415857353fd6431e284291d41a63615f70a 100644
--- a/qt/widgets/legacyqwt/src/QwtHelper.cpp
+++ b/qt/widgets/plotting/src/Qwt/QwtHelper.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/QwtHelper.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtHelper.h"
 
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/FunctionDomain1D.h"
diff --git a/qt/widgets/legacyqwt/src/QwtRasterDataMD.cpp b/qt/widgets/plotting/src/Qwt/QwtRasterDataMD.cpp
similarity index 99%
rename from qt/widgets/legacyqwt/src/QwtRasterDataMD.cpp
rename to qt/widgets/plotting/src/Qwt/QwtRasterDataMD.cpp
index 54fac47de5dc9fc561c0c15324c0ce7c9964290c..79a7606be54715496e56e168f20690c0051d9863 100644
--- a/qt/widgets/legacyqwt/src/QwtRasterDataMD.cpp
+++ b/qt/widgets/plotting/src/Qwt/QwtRasterDataMD.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/QwtRasterDataMD.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtRasterDataMD.h"
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidGeometry/MDGeometry/IMDDimension.h"
diff --git a/qt/widgets/legacyqwt/src/QwtRasterDataMDNonOrthogonal.cpp b/qt/widgets/plotting/src/Qwt/QwtRasterDataMDNonOrthogonal.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/QwtRasterDataMDNonOrthogonal.cpp
rename to qt/widgets/plotting/src/Qwt/QwtRasterDataMDNonOrthogonal.cpp
index e8f09f64401b7d8a19dade371fb3051c36d78ee0..863a841fd7e51e08107b52fcab93dbad7f23ff8e 100644
--- a/qt/widgets/legacyqwt/src/QwtRasterDataMDNonOrthogonal.cpp
+++ b/qt/widgets/plotting/src/Qwt/QwtRasterDataMDNonOrthogonal.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/QwtRasterDataMDNonOrthogonal.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtRasterDataMDNonOrthogonal.h"
 #include "MantidQtWidgets/Common/NonOrthogonal.h"
 
 namespace MantidQt {
diff --git a/qt/widgets/legacyqwt/src/QwtWorkspaceBinData.cpp b/qt/widgets/plotting/src/Qwt/QwtWorkspaceBinData.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/QwtWorkspaceBinData.cpp
rename to qt/widgets/plotting/src/Qwt/QwtWorkspaceBinData.cpp
index da2b567a071dc9cdbbf1f250fae6743843bffa20..ae789126a625176c4cfa47e1c7ea93ce171b00d4 100644
--- a/qt/widgets/legacyqwt/src/QwtWorkspaceBinData.cpp
+++ b/qt/widgets/plotting/src/Qwt/QwtWorkspaceBinData.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceBinData.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtWorkspaceBinData.h"
 
 #include "MantidAPI/Axis.h"
 #include "MantidAPI/MatrixWorkspace.h"
diff --git a/qt/widgets/legacyqwt/src/QwtWorkspaceSpectrumData.cpp b/qt/widgets/plotting/src/Qwt/QwtWorkspaceSpectrumData.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/QwtWorkspaceSpectrumData.cpp
rename to qt/widgets/plotting/src/Qwt/QwtWorkspaceSpectrumData.cpp
index 00e1142adb74d4880ce561bc5ff591b4addcf26b..b5fcd6c493c9a898902b6274dba17dfc8eb6d2df 100644
--- a/qt/widgets/legacyqwt/src/QwtWorkspaceSpectrumData.cpp
+++ b/qt/widgets/plotting/src/Qwt/QwtWorkspaceSpectrumData.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtWorkspaceSpectrumData.h"
 
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidQtWidgets/Common/PlotAxis.h"
diff --git a/qt/widgets/legacyqwt/src/RangeSelector.cpp b/qt/widgets/plotting/src/Qwt/RangeSelector.cpp
similarity index 99%
rename from qt/widgets/legacyqwt/src/RangeSelector.cpp
rename to qt/widgets/plotting/src/Qwt/RangeSelector.cpp
index 10f2a576b0866db770542c1eb9e37ce95304e07b..ecfa064815e61144cee2253d05fea4e0dab2cbb1 100644
--- a/qt/widgets/legacyqwt/src/RangeSelector.cpp
+++ b/qt/widgets/plotting/src/Qwt/RangeSelector.cpp
@@ -4,14 +4,14 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/RangeSelector.h"
+#include "MantidQtWidgets/Plotting/Qwt/RangeSelector.h"
 
 #include <qwt_plot_picker.h>
 
 #include <QEvent>
 #include <QMouseEvent>
 
-#include "MantidQtWidgets/LegacyQwt/PreviewPlot.h"
+#include "MantidQtWidgets/Plotting/Qwt/PreviewPlot.h"
 
 using namespace MantidQt::MantidWidgets;
 
diff --git a/qt/widgets/legacyqwt/src/SafeQwtPlot.cpp b/qt/widgets/plotting/src/Qwt/SafeQwtPlot.cpp
similarity index 97%
rename from qt/widgets/legacyqwt/src/SafeQwtPlot.cpp
rename to qt/widgets/plotting/src/Qwt/SafeQwtPlot.cpp
index a6811b91e142eb0ab8dfe292d88abfd8b6740e52..4078168a355a443a07eb477a9aae0043d861fb31 100644
--- a/qt/widgets/legacyqwt/src/SafeQwtPlot.cpp
+++ b/qt/widgets/plotting/src/Qwt/SafeQwtPlot.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt/SafeQwtPlot.h"
+#include "MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h"
 #include "MantidAPI/Workspace.h"
 #include "MantidKernel/ReadLock.h"
 #include "MantidKernel/System.h"
diff --git a/qt/widgets/legacyqwt/src/ScaleEngine.cpp b/qt/widgets/plotting/src/Qwt/ScaleEngine.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/ScaleEngine.cpp
rename to qt/widgets/plotting/src/Qwt/ScaleEngine.cpp
index 280bd0e3d0165a3b383a541e6c67d45230a5905f..91ca4bbb2a8c09550df10e4eb2593096b998c310 100644
--- a/qt/widgets/legacyqwt/src/ScaleEngine.cpp
+++ b/qt/widgets/plotting/src/Qwt/ScaleEngine.cpp
@@ -27,9 +27,9 @@
  *   Boston, MA  02110-1301  USA                                           *
  *                                                                         *
  ***************************************************************************/
-#include "MantidQtWidgets/LegacyQwt/ScaleEngine.h"
-#include "MantidQtWidgets/LegacyQwt/PowerScaleEngine.h"
-#include "MantidQtWidgets/LegacyQwt/qwt_compat.h"
+#include "MantidQtWidgets/Plotting/Qwt/ScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/PowerScaleEngine.h"
+#include "MantidQtWidgets/Plotting/Qwt/qwt_compat.h"
 #include <climits>
 
 QwtScaleTransformation *ScaleEngine::transformation() const {
diff --git a/qt/widgets/legacyqwt/src/SignalRange.cpp b/qt/widgets/plotting/src/Qwt/SignalRange.cpp
similarity index 98%
rename from qt/widgets/legacyqwt/src/SignalRange.cpp
rename to qt/widgets/plotting/src/Qwt/SignalRange.cpp
index a7932b42f8bcfdecec3b275a3e562ad6a2eea858..2e5cbf67273965fda80305ca1bb1f925cbe9feb3 100644
--- a/qt/widgets/legacyqwt/src/SignalRange.cpp
+++ b/qt/widgets/plotting/src/Qwt/SignalRange.cpp
@@ -4,7 +4,7 @@
 //     NScD Oak Ridge National Laboratory, European Spallation Source
 //     & Institut Laue - Langevin
 // SPDX - License - Identifier: GPL - 3.0 +
-#include "MantidQtWidgets/LegacyQwt//SignalRange.h"
+#include "MantidQtWidgets/Plotting/Qwt//SignalRange.h"
 #include "MantidAPI/IMDIterator.h"
 #include "MantidKernel/MultiThreaded.h"
 #include <cmath>
diff --git a/qt/widgets/legacyqwt/test/ContourPreviewPlotTest.h b/qt/widgets/plotting/test/ContourPreviewPlotTest.h
similarity index 97%
rename from qt/widgets/legacyqwt/test/ContourPreviewPlotTest.h
rename to qt/widgets/plotting/test/ContourPreviewPlotTest.h
index 146ecb2b8a19e8fa40c6e377a35030fe3bd951db..f77eaf1986cc70b25b5a6b2a89812a346e70ab93 100644
--- a/qt/widgets/legacyqwt/test/ContourPreviewPlotTest.h
+++ b/qt/widgets/plotting/test/ContourPreviewPlotTest.h
@@ -10,7 +10,7 @@
 #include <cxxtest/TestSuite.h>
 
 #include "MantidAPI/MatrixWorkspace.h"
-#include "MantidQtWidgets/LegacyQwt/ContourPreviewPlot.h"
+#include "MantidQtWidgets/Plotting/Qwt/ContourPreviewPlot.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
 
 using namespace Mantid::API;
diff --git a/qt/widgets/legacyqwt/test/MantidColorMapTest.h b/qt/widgets/plotting/test/MantidColorMapTest.h
similarity index 97%
rename from qt/widgets/legacyqwt/test/MantidColorMapTest.h
rename to qt/widgets/plotting/test/MantidColorMapTest.h
index 1cf7fa4ef9b5f4b31b93914f451b4bbc4c06cf32..ff874db975b7ea944fdbba09b89cd84ce09ec438 100644
--- a/qt/widgets/legacyqwt/test/MantidColorMapTest.h
+++ b/qt/widgets/plotting/test/MantidColorMapTest.h
@@ -7,7 +7,7 @@
 #ifndef MANTIDQT_API_MANTIDCOLORMAPTEST_H_
 #define MANTIDQT_API_MANTIDCOLORMAPTEST_H_
 
-#include "MantidQtWidgets/LegacyQwt/MantidColorMap.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidColorMap.h"
 #include <QRgb>
 #include <cxxtest/TestSuite.h>
 #include <limits>
diff --git a/qt/widgets/legacyqwt/test/QwtWorkspaceBinDataTest.h b/qt/widgets/plotting/test/QwtWorkspaceBinDataTest.h
similarity index 97%
rename from qt/widgets/legacyqwt/test/QwtWorkspaceBinDataTest.h
rename to qt/widgets/plotting/test/QwtWorkspaceBinDataTest.h
index f82692969183a7b8f43f23872ae51371dc1e122f..bca678b499ba30a4b0ebfb8617e98520871bb4af 100644
--- a/qt/widgets/legacyqwt/test/QwtWorkspaceBinDataTest.h
+++ b/qt/widgets/plotting/test/QwtWorkspaceBinDataTest.h
@@ -7,7 +7,7 @@
 #ifndef MANTIDQT_API_MANTIDQWTWORKSPACEBINDATA_H_
 #define MANTIDQT_API_MANTIDQWTWORKSPACEBINDATA_H_
 
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceBinData.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtWorkspaceBinData.h"
 #include <cxxtest/TestSuite.h>
 
 #include "MantidAPI/MatrixWorkspace.h"
diff --git a/qt/widgets/legacyqwt/test/QwtWorkspaceSpectrumDataTest.h b/qt/widgets/plotting/test/QwtWorkspaceSpectrumDataTest.h
similarity index 97%
rename from qt/widgets/legacyqwt/test/QwtWorkspaceSpectrumDataTest.h
rename to qt/widgets/plotting/test/QwtWorkspaceSpectrumDataTest.h
index eeb26361091e7856296aab4cef42db2f666aa332..15d5f2fe2480cf7c95b0b4153a34624a6268608d 100644
--- a/qt/widgets/legacyqwt/test/QwtWorkspaceSpectrumDataTest.h
+++ b/qt/widgets/plotting/test/QwtWorkspaceSpectrumDataTest.h
@@ -8,7 +8,7 @@
 #define MANTIDQT_API_MANTIDQWTWORKSPACESPECTRUMDATA_H_
 
 #include "MantidAPI/MatrixWorkspace.h"
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtWorkspaceSpectrumData.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
 #include <QRgb>
 #include <cxxtest/TestSuite.h>
diff --git a/qt/widgets/legacyqwt/test/SignalRangeTest.h b/qt/widgets/plotting/test/SignalRangeTest.h
similarity index 85%
rename from qt/widgets/legacyqwt/test/SignalRangeTest.h
rename to qt/widgets/plotting/test/SignalRangeTest.h
index 995dd70b730a5e284d8c3f1264a6d97edaeaf8c4..6f227baeba2b1439b353203e5f7aa19a132c64e0 100644
--- a/qt/widgets/legacyqwt/test/SignalRangeTest.h
+++ b/qt/widgets/plotting/test/SignalRangeTest.h
@@ -11,7 +11,7 @@
 #include "MantidGeometry/MDGeometry/MDImplicitFunction.h"
 #include "MantidKernel/MultiThreaded.h"
 #include "MantidKernel/WarningSuppressions.h"
-#include "MantidQtWidgets/Common/SignalRange.h"
+#include "MantidQtWidgets/Plotting/Qwt/SignalRange.h"
 #include <cxxtest/TestSuite.h>
 #include <gmock/gmock.h>
 #include <gtest/gtest.h>
@@ -29,7 +29,7 @@ private:
     MOCK_CONST_METHOD0(getNPoints, uint64_t());
     MOCK_CONST_METHOD0(getNEvents, uint64_t());
     MOCK_CONST_METHOD2(createIterators,
-                       std::vector<Mantid::API::IMDIterator *>(
+                       std::vector<std::unique_ptr<Mantid::API::IMDIterator>>(
                            size_t, Mantid::Geometry::MDImplicitFunction *));
     MOCK_CONST_METHOD2(getSignalAtCoord,
                        Mantid::signal_t(const Mantid::coord_t *,
@@ -52,6 +52,7 @@ private:
     MOCK_CONST_METHOD0(getSpecialCoordinateSystem,
                        Mantid::Kernel::SpecialCoordinateSystem());
     MOCK_CONST_METHOD0(isMDHistoWorkspace, bool());
+    MOCK_CONST_METHOD0(hasOrientedLattice, bool());
 
   private:
     MockMDWorkspace *doClone() const override {
@@ -76,9 +77,12 @@ private:
     MOCK_CONST_METHOD0(getNormalizedSignalWithMask, Mantid::signal_t());
     MOCK_CONST_METHOD0(getSignal, Mantid::signal_t());
     MOCK_CONST_METHOD0(getError, Mantid::signal_t());
-    MOCK_CONST_METHOD1(getVertexesArray, Mantid::coord_t *(size_t &));
+    MOCK_CONST_METHOD1(getVertexesArray,
+                       std::unique_ptr<Mantid::coord_t[]>(size_t &));
     MOCK_CONST_METHOD3(getVertexesArray,
-                       Mantid::coord_t *(size_t &, const size_t, const bool *));
+                       std::unique_ptr<Mantid::coord_t[]>(size_t &,
+                                                          const size_t,
+                                                          const bool *));
     MOCK_CONST_METHOD0(getCenter, Mantid::Kernel::VMD());
     MOCK_CONST_METHOD0(getNumEvents, size_t());
     MOCK_CONST_METHOD1(getInnerRunIndex, uint16_t(size_t));
@@ -111,10 +115,10 @@ public:
     using namespace ::testing;
 
     int nthreads = PARALLEL_GET_MAX_THREADS;
-    std::vector<Mantid::API::IMDIterator *> iterators(nthreads);
+    std::vector<std::unique_ptr<Mantid::API::IMDIterator>> iterators;
+    iterators.reserve(nthreads);
     for (int i = 0; i < nthreads; ++i) {
-      auto *iterator =
-          new MockMDIterator; // deleted by call to SignalRange below
+      auto iterator = std::make_unique<MockMDIterator>();
       EXPECT_CALL(*iterator, valid()).WillRepeatedly(Return(true));
       EXPECT_CALL(*iterator, next())
           .WillOnce(Return(true))
@@ -122,13 +126,13 @@ public:
       EXPECT_CALL(*iterator, getNormalizedSignal())
           .WillOnce(Return(-1.5))
           .WillRepeatedly(Return(10.0));
-      iterators[i] = iterator;
+      iterators.emplace_back(std::move(iterator));
     }
 
     MockMDWorkspace data;
     EXPECT_CALL(data, createIterators(nthreads, NULL))
         .Times(Exactly(1))
-        .WillOnce(Return(iterators));
+        .WillOnce(Return(ByMove(std::move(iterators))));
 
     MantidQt::API::SignalRange sr(data);
     QwtDoubleInterval range = sr.interval();
@@ -143,10 +147,10 @@ public:
     using namespace ::testing;
 
     int nthreads = PARALLEL_GET_MAX_THREADS;
-    std::vector<Mantid::API::IMDIterator *> iterators(nthreads);
+    std::vector<std::unique_ptr<Mantid::API::IMDIterator>> iterators;
+    iterators.reserve(nthreads);
     for (int i = 0; i < nthreads; ++i) {
-      auto *iterator =
-          new NormalizableMockIterator; // deleted by call to SignalRange below
+      auto iterator = std::make_unique<NormalizableMockIterator>();
       EXPECT_CALL(*iterator, getNumEvents())
           .Times(Exactly(2))
           .WillRepeatedly(Return(2));
@@ -157,13 +161,13 @@ public:
       EXPECT_CALL(*iterator, getSignal())
           .WillOnce(Return(1.5))
           .WillRepeatedly(Return(10.0));
-      iterators[i] = iterator;
+      iterators.emplace_back(std::move(iterator));
     }
 
     MockMDWorkspace data;
     EXPECT_CALL(data, createIterators(nthreads, NULL))
         .Times(Exactly(1))
-        .WillOnce(Return(iterators));
+        .WillOnce(Return(ByMove(std::move(iterators))));
 
     MantidQt::API::SignalRange sr(data, Mantid::API::NumEventsNormalization);
     QwtDoubleInterval range = sr.interval();
@@ -178,10 +182,10 @@ public:
     using namespace ::testing;
 
     int nthreads = PARALLEL_GET_MAX_THREADS;
-    std::vector<Mantid::API::IMDIterator *> iterators(nthreads);
+    std::vector<std::unique_ptr<Mantid::API::IMDIterator>> iterators;
+    iterators.reserve(nthreads);
     for (int i = 0; i < nthreads; ++i) {
-      auto *iterator =
-          new NormalizableMockIterator; // deleted by call to SignalRange below
+      auto iterator = std::make_unique<NormalizableMockIterator>();
       EXPECT_CALL(*iterator, getNumEvents())
           .Times(Exactly(2))
           .WillRepeatedly(Return(2));
@@ -192,7 +196,7 @@ public:
       EXPECT_CALL(*iterator, getSignal())
           .WillOnce(Return(1.5))
           .WillRepeatedly(Return(10.0));
-      iterators[i] = iterator;
+      iterators.emplace_back(std::move(iterator));
     }
 
     MockMDWorkspace data;
@@ -203,7 +207,7 @@ public:
 
     EXPECT_CALL(data, createIterators(nthreads, &function))
         .Times(Exactly(1))
-        .WillOnce(Return(iterators));
+        .WillOnce(Return(ByMove(std::move(iterators))));
 
     MantidQt::API::SignalRange sr(data, function, Mantid::API::NoNormalization);
     QwtDoubleInterval range = sr.interval();
diff --git a/qt/widgets/plugins/designer/CMakeLists.txt b/qt/widgets/plugins/designer/CMakeLists.txt
index 3c16c38ca1dedbdac9a401c23e5e7a7cecc8f77e..76dc678231c1e313bbb4e4fd2ac0cba5362e4eb2 100644
--- a/qt/widgets/plugins/designer/CMakeLists.txt
+++ b/qt/widgets/plugins/designer/CMakeLists.txt
@@ -35,7 +35,7 @@ mtd_add_qt_library (TARGET_NAME MantidQtWidgetsPluginsDesigner
     Qwt5
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
+    MantidQtWidgetsPlotting
     MantidQtWidgetsSliceViewer
   OUTPUT_SUBDIR
     designer
diff --git a/qt/widgets/plugins/designer/inc/MantidQtWidgets/Plugins/Designer/PluginCollectionInterface.h b/qt/widgets/plugins/designer/inc/MantidQtWidgets/Plugins/Designer/PluginCollectionInterface.h
index 47306cfe6c4ce9594d449cd0e1038315bf6308b7..d441d67b124cb5acf26e3326f480c5a4e91c669b 100644
--- a/qt/widgets/plugins/designer/inc/MantidQtWidgets/Plugins/Designer/PluginCollectionInterface.h
+++ b/qt/widgets/plugins/designer/inc/MantidQtWidgets/Plugins/Designer/PluginCollectionInterface.h
@@ -21,11 +21,11 @@
 
 #include "MantidQtWidgets/Common/ScriptEditor.h"
 #include "MantidQtWidgets/Common/WorkspaceSelector.h"
-#include "MantidQtWidgets/LegacyQwt/ColorBarWidget.h"
-#include "MantidQtWidgets/LegacyQwt/DisplayCurveFit.h"
-#include "MantidQtWidgets/LegacyQwt/MWView.h"
-#include "MantidQtWidgets/LegacyQwt/PreviewPlot.h"
-#include "MantidQtWidgets/LegacyQwt/SafeQwtPlot.h"
+#include "MantidQtWidgets/Plotting/Qwt/ColorBarWidget.h"
+#include "MantidQtWidgets/Plotting/Qwt/DisplayCurveFit.h"
+#include "MantidQtWidgets/Plotting/Qwt/MWView.h"
+#include "MantidQtWidgets/Plotting/Qwt/PreviewPlot.h"
+#include "MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h"
 #include "MantidQtWidgets/Plugins/Designer/DesignerPlugin.h"
 #include "MantidQtWidgets/SliceViewer/LineViewer.h"
 #include "MantidQtWidgets/SliceViewer/SliceViewer.h"
diff --git a/qt/widgets/sliceviewer/CMakeLists.txt b/qt/widgets/sliceviewer/CMakeLists.txt
index 43f995ef44c926adb16815f9149bc67b6e1fe7c6..7b6f194aea7f66497ebac3f401157ad3afd52d1f 100644
--- a/qt/widgets/sliceviewer/CMakeLists.txt
+++ b/qt/widgets/sliceviewer/CMakeLists.txt
@@ -139,7 +139,7 @@ mtd_add_qt_library (TARGET_NAME MantidQtWidgetsSliceViewer
     Qwt5
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
+    MantidQtWidgetsPlotting
   INSTALL_DIR
     ${LIB_DIR}
   OSX_INSTALL_RPATH
diff --git a/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/LinePlotOptions.h b/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/LinePlotOptions.h
index 1931801f5d21586e7230c76ab82f59fdbf325446..8ea943b4a1a17c29ebdf441d76d4990891ca57d0 100644
--- a/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/LinePlotOptions.h
+++ b/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/LinePlotOptions.h
@@ -9,7 +9,7 @@
 
 #include "DllOption.h"
 #include "MantidAPI/IMDWorkspace.h"
-#include "MantidQtWidgets/LegacyQwt/MantidQwtIMDWorkspaceData.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidQwtIMDWorkspaceData.h"
 #include "ui_LinePlotOptions.h"
 #include <QWidget>
 
diff --git a/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/LineViewer.h b/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/LineViewer.h
index 98ac565d2a1377e842a60e6e80ec28be5416bf35..fa5decd64d52a66f0133a94198bb7f261fd67ec3 100644
--- a/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/LineViewer.h
+++ b/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/LineViewer.h
@@ -12,7 +12,7 @@
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidKernel/VMD.h"
 #include "MantidQtWidgets/Common/AlgorithmRunner.h"
-#include "MantidQtWidgets/LegacyQwt/MantidQwtIMDWorkspaceData.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidQwtIMDWorkspaceData.h"
 #include "MantidQtWidgets/SliceViewer/LinePlotOptions.h"
 #include "ui_LineViewer.h"
 #include <QWidget>
diff --git a/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/NonOrthogonalOverlay.h b/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/NonOrthogonalOverlay.h
index a80633b2f4b242b3d36232cb0f0580005e837f81..3bb4fb880cc54640c5b74475eea1c6fada29b981 100644
--- a/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/NonOrthogonalOverlay.h
+++ b/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/NonOrthogonalOverlay.h
@@ -13,8 +13,8 @@
 #include "MantidAPI/IMDWorkspace.h"
 #include "MantidKernel/Matrix.h"
 #include "MantidQtWidgets/Common/NonOrthogonal.h"
-#include "MantidQtWidgets/LegacyQwt/QwtRasterDataMD.h"
-#include "MantidQtWidgets/LegacyQwt/QwtRasterDataMDNonOrthogonal.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtRasterDataMD.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtRasterDataMDNonOrthogonal.h"
 #include <QPainter>
 #include <QWidget>
 #include <qwt_plot.h>
diff --git a/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/SliceViewer.h b/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/SliceViewer.h
index 2348539b443764226a09cac93f5d14e7831eac4e..14cdfd783542c476e1785c9ca4bf41c77f9cb491 100644
--- a/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/SliceViewer.h
+++ b/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/SliceViewer.h
@@ -18,9 +18,9 @@
 #include "MantidQtWidgets/Common/AlgorithmRunner.h"
 #include "MantidQtWidgets/Common/MdSettings.h"
 #include "MantidQtWidgets/Common/SyncedCheckboxes.h"
-#include "MantidQtWidgets/LegacyQwt/ColorBarWidget.h"
-#include "MantidQtWidgets/LegacyQwt/QwtRasterDataMD.h"
-#include "MantidQtWidgets/LegacyQwt/SafeQwtPlot.h"
+#include "MantidQtWidgets/Plotting/Qwt/ColorBarWidget.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtRasterDataMD.h"
+#include "MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h"
 #include "MantidQtWidgets/SliceViewer/CoordinateTransform.h"
 #include "MantidQtWidgets/SliceViewer/LineOverlay.h"
 #include "MantidQtWidgets/SliceViewer/NonOrthogonalOverlay.h"
diff --git a/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/SliceViewer.ui b/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/SliceViewer.ui
index 9e8ae3cd366904f8a30a5d803ae36931fac5411f..20eee0f2a19b3423e29fa6ed8eca3365d91088e8 100644
--- a/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/SliceViewer.ui
+++ b/qt/widgets/sliceviewer/inc/MantidQtWidgets/SliceViewer/SliceViewer.ui
@@ -909,7 +909,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::ColorBarWidget</class>
    <extends>QWidget</extends>
-   <header>MantidQtWidgets/LegacyQwt/ColorBarWidget.h</header>
+   <header>MantidQtWidgets/Plotting/Qwt/ColorBarWidget.h</header>
   </customwidget>
   <customwidget>
    <class>QwtPlot</class>
@@ -920,7 +920,7 @@
   <customwidget>
    <class>MantidQt::MantidWidgets::SafeQwtPlot</class>
    <extends>QwtPlot</extends>
-   <header>MantidQtWidgets/LegacyQwt/SafeQwtPlot.h</header>
+   <header>MantidQtWidgets/Plotting/Qwt/SafeQwtPlot.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/qt/widgets/sliceviewer/src/LineViewer.cpp b/qt/widgets/sliceviewer/src/LineViewer.cpp
index 472102b90b1bc0af0e7e6ce3e117d65ca4f1574c..8604ae615a0790d948c0cc529945e190a8ca8f7e 100644
--- a/qt/widgets/sliceviewer/src/LineViewer.cpp
+++ b/qt/widgets/sliceviewer/src/LineViewer.cpp
@@ -17,8 +17,8 @@
 #include "MantidKernel/VMD.h"
 #include "MantidQtWidgets/Common/AlgorithmRunner.h"
 #include "MantidQtWidgets/Common/TSVSerialiser.h"
-#include "MantidQtWidgets/LegacyQwt/MantidQwtIMDWorkspaceData.h"
-#include "MantidQtWidgets/LegacyQwt/QwtWorkspaceSpectrumData.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidQwtIMDWorkspaceData.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtWorkspaceSpectrumData.h"
 #include "MantidQtWidgets/SliceViewer/LinePlotOptions.h"
 #include <qwt_plot.h>
 #include <qwt_plot_curve.h>
diff --git a/qt/widgets/sliceviewer/src/SliceViewer.cpp b/qt/widgets/sliceviewer/src/SliceViewer.cpp
index 9ae5d35759bbef2b8ce966fb63048c432b2be8d7..fec8b288675845501ad0b5c23137fa059a39fefd 100644
--- a/qt/widgets/sliceviewer/src/SliceViewer.cpp
+++ b/qt/widgets/sliceviewer/src/SliceViewer.cpp
@@ -30,8 +30,8 @@
 #include "MantidQtWidgets/Common/SelectWorkspacesDialog.h"
 #include "MantidQtWidgets/Common/SignalBlocker.h"
 #include "MantidQtWidgets/Common/TSVSerialiser.h"
-#include "MantidQtWidgets/LegacyQwt/QwtRasterDataMDNonOrthogonal.h"
-#include "MantidQtWidgets/LegacyQwt/SignalRange.h"
+#include "MantidQtWidgets/Plotting/Qwt/QwtRasterDataMDNonOrthogonal.h"
+#include "MantidQtWidgets/Plotting/Qwt/SignalRange.h"
 #include "MantidQtWidgets/SliceViewer/CompositePeaksPresenter.h"
 #include "MantidQtWidgets/SliceViewer/ConcretePeaksPresenter.h"
 #include "MantidQtWidgets/SliceViewer/CustomTools.h"
diff --git a/qt/widgets/spectrumviewer/CMakeLists.txt b/qt/widgets/spectrumviewer/CMakeLists.txt
index 6778e66c5fd76167b231737a4252efcbc9feb121..1adecb42cf5efc512c6dc53af926e7e618ede842 100644
--- a/qt/widgets/spectrumviewer/CMakeLists.txt
+++ b/qt/widgets/spectrumviewer/CMakeLists.txt
@@ -75,7 +75,7 @@ mtd_add_qt_library (TARGET_NAME MantidQtWidgetsSpectrumViewer
     Qwt5
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
-    MantidQtWidgetsLegacyQwt
+    MantidQtWidgetsPlotting
   INSTALL_DIR
     ${LIB_DIR}
   OSX_INSTALL_RPATH
diff --git a/qt/widgets/spectrumviewer/src/SVConnections.cpp b/qt/widgets/spectrumviewer/src/SVConnections.cpp
index 1d7d076e9d92b997759d45e602a56f7899ed9e9a..b96996e2b035b11b9c284a2fa1f49348a59fbf97 100644
--- a/qt/widgets/spectrumviewer/src/SVConnections.cpp
+++ b/qt/widgets/spectrumviewer/src/SVConnections.cpp
@@ -7,7 +7,7 @@
 #include <qwt_plot_canvas.h>
 
 #include "MantidQtWidgets/Common/HelpWindow.h"
-#include "MantidQtWidgets/LegacyQwt/MantidColorMap.h"
+#include "MantidQtWidgets/Plotting/Qwt/MantidColorMap.h"
 
 #include "MantidQtWidgets/SpectrumViewer/SVConnections.h"