diff --git a/qt/scientific_interfaces/Indirect/IndirectDataTablePresenter.cpp b/qt/scientific_interfaces/Indirect/IndirectDataTablePresenter.cpp
index a08b11f8d4a316cec98760dbaf2658a6c17099fb..d258f17bbcfee501940894fc8209996fad2dec9f 100644
--- a/qt/scientific_interfaces/Indirect/IndirectDataTablePresenter.cpp
+++ b/qt/scientific_interfaces/Indirect/IndirectDataTablePresenter.cpp
@@ -26,8 +26,8 @@ const QString MASK_LIST =
 
 class ExcludeRegionDelegate : public QItemDelegate {
 public:
-  QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
-                        const QModelIndex &index) const override {
+  QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &,
+                        const QModelIndex &) const override {
     QLineEdit *lineEdit = new QLineEdit(parent);
     lineEdit->setValidator(
         new QRegExpValidator(QRegExp(Regexes::MASK_LIST), parent));
@@ -81,8 +81,9 @@ pairsToSpectra(const std::vector<std::pair<std::size_t, std::size_t>> &pairs) {
   if (pairs.empty())
     return boost::none;
   else if (pairs.size() == 1)
-    return pairs[0];
-  return DiscontinuousSpectra<std::size_t>(pairsToString(pairs));
+    return boost::optional<Spectra>(pairs[0]);
+  return boost::optional<Spectra>(
+      DiscontinuousSpectra<std::size_t>(pairsToString(pairs)));
 }
 } // namespace
 
@@ -250,8 +251,9 @@ void IndirectDataTablePresenter::addData(std::size_t index) {
   MantidQt::API::SignalBlocker<QObject> blocker(m_dataTable);
   const auto start = m_dataTable->rowCount();
 
-  const auto addRow =
-      [&](std::size_t spectrum) { addTableEntry(index, spectrum); };
+  const auto addRow = [&](std::size_t spectrum) {
+    addTableEntry(index, spectrum);
+  };
   m_model->applySpectra(index, addRow);
 
   if (m_model->numberOfWorkspaces() > m_dataPositions.size())
@@ -472,7 +474,7 @@ void IndirectDataTablePresenter::setExcludeRegion(const QString &exclude) {
 void IndirectDataTablePresenter::setColumnValues(int column,
                                                  const QString &value) {
   MantidQt::API::SignalBlocker<QObject> blocker(m_dataTable);
-  for (auto i = 0u; i < m_dataTable->rowCount(); ++i)
+  for (int i = 0; i < m_dataTable->rowCount(); ++i)
     m_dataTable->item(i, column)->setText(value);
 }
 
@@ -489,7 +491,7 @@ void IndirectDataTablePresenter::addTableEntry(std::size_t dataIndex,
                                                std::size_t spectrum) {
   const auto row = m_dataTable->rowCount();
   addTableEntry(dataIndex, spectrum, row);
-  m_dataTable->item(row, 0)->setData(Qt::UserRole, dataIndex);
+  m_dataTable->item(row, 0)->setData(Qt::UserRole, QVariant(dataIndex));
 }
 
 void IndirectDataTablePresenter::addTableEntry(std::size_t dataIndex,
@@ -562,7 +564,7 @@ void IndirectDataTablePresenter::updateDataPositionsInCells(std::size_t from,
   for (auto i = from; i < to; ++i) {
     const auto nextPosition = getNextPosition(i);
     for (auto row = m_dataPositions[i]; row < nextPosition; ++row)
-      m_dataTable->item(row, 0)->setData(Qt::UserRole, i);
+      m_dataTable->item(row, 0)->setData(Qt::UserRole, QVariant(i));
   }
 }
 
diff --git a/qt/scientific_interfaces/Indirect/IndirectFitPlotPresenter.cpp b/qt/scientific_interfaces/Indirect/IndirectFitPlotPresenter.cpp
index d360b5f9246b5d30ce84758cfec3495c4e500261..4d44352fb6999686347e2e9f7e16364f4d897c3a 100644
--- a/qt/scientific_interfaces/Indirect/IndirectFitPlotPresenter.cpp
+++ b/qt/scientific_interfaces/Indirect/IndirectFitPlotPresenter.cpp
@@ -216,7 +216,8 @@ void IndirectFitPlotPresenter::updateDataSelection() {
 void IndirectFitPlotPresenter::updateAvailableSpectra() {
   if (m_model->getWorkspace()) {
     m_view->enableSpectrumSelection();
-    boost::apply_visitor(UpdateAvailableSpectra(m_view), m_model->getSpectra());
+    const auto spectra = m_model->getSpectra();
+    boost::apply_visitor(UpdateAvailableSpectra(m_view), spectra);
     setActiveSpectrum(m_view->getSelectedSpectrum());
   } else
     m_view->disableSpectrumSelection();
diff --git a/qt/scientific_interfaces/Indirect/IndirectFittingModel.cpp b/qt/scientific_interfaces/Indirect/IndirectFittingModel.cpp
index 1b14d774dcce7f3c807f7741206d4319663f3f87..e39a3458f39d3751ab19f34652fc82f08ab8c784 100644
--- a/qt/scientific_interfaces/Indirect/IndirectFittingModel.cpp
+++ b/qt/scientific_interfaces/Indirect/IndirectFittingModel.cpp
@@ -107,8 +107,9 @@ bool equivalentFunctions(IFunction_const_sptr func1,
 std::ostringstream &addInputString(IndirectFitData *fitData,
                                    std::ostringstream &stream) {
   const auto &name = fitData->workspace()->getName();
-  auto addToStream =
-      [&](std::size_t spectrum) { stream << name << ",i" << spectrum << ";"; };
+  auto addToStream = [&](std::size_t spectrum) {
+    stream << name << ",i" << spectrum << ";";
+  };
   fitData->applySpectra(addToStream);
   return stream;
 }
@@ -259,6 +260,9 @@ namespace IDA {
 
 PrivateFittingData::PrivateFittingData() : m_data() {}
 
+PrivateFittingData::PrivateFittingData(PrivateFittingData &&privateData)
+    : m_data(std::move(privateData.m_data)) {}
+
 PrivateFittingData::PrivateFittingData(
     std::vector<std::unique_ptr<IndirectFitData>> &&data)
     : m_data(std::move(data)) {}
@@ -625,7 +629,7 @@ IndirectFittingModel::mapDefaultParameterNames() const {
 }
 
 std::unordered_map<std::string, ParameterValue>
-    IndirectFittingModel::createDefaultParameters(std::size_t) const {
+IndirectFittingModel::createDefaultParameters(std::size_t) const {
   return std::unordered_map<std::string, ParameterValue>();
 }
 
diff --git a/qt/scientific_interfaces/Indirect/IndirectFittingModel.h b/qt/scientific_interfaces/Indirect/IndirectFittingModel.h
index 8d1105de736241051aa75ae71b512c1a4e16a0ad..3b57570528a7105e209d5d19c19975e2153e3648 100644
--- a/qt/scientific_interfaces/Indirect/IndirectFittingModel.h
+++ b/qt/scientific_interfaces/Indirect/IndirectFittingModel.h
@@ -26,6 +26,7 @@ public:
   PrivateFittingData &operator=(PrivateFittingData &&fittingData);
 
 private:
+  PrivateFittingData(PrivateFittingData &&privateData);
   PrivateFittingData(std::vector<std::unique_ptr<IndirectFitData>> &&data);
   std::vector<std::unique_ptr<IndirectFitData>> m_data;
 };