diff --git a/GUI/Model/Data/RangeUtil.cpp b/GUI/Model/Data/RangeUtil.cpp
index 59ee31fb8c4645b0a770590de21c0c02a591f846..064f6a1bd4abfc5924fd95bdb61b9043e3b87ac2 100644
--- a/GUI/Model/Data/RangeUtil.cpp
+++ b/GUI/Model/Data/RangeUtil.cpp
@@ -20,7 +20,7 @@
 
 namespace {
 
-double commonMin(const QList<AmplitudeAxisItem*>& axes)
+double commonMin(const QVector<AmplitudeAxisItem*>& axes)
 {
     double min = +std::numeric_limits<double>::max();
     for (auto* axis : axes)
@@ -29,7 +29,7 @@ double commonMin(const QList<AmplitudeAxisItem*>& axes)
     return min;
 }
 
-double commonMax(const QList<AmplitudeAxisItem*>& axes)
+double commonMax(const QVector<AmplitudeAxisItem*>& axes)
 {
     double max = -std::numeric_limits<double>::max();
     for (auto* axis : axes)
@@ -38,22 +38,22 @@ double commonMax(const QList<AmplitudeAxisItem*>& axes)
     return max;
 }
 
-std::pair<double, double> commonRange(const QList<AmplitudeAxisItem*>& axes)
+std::pair<double, double> commonRange(const QVector<AmplitudeAxisItem*>& axes)
 {
     return {commonMin(axes), commonMax(axes)};
 }
 
-QList<AmplitudeAxisItem*> valueAxesFromData1DItems(const QList<Data1DItem*>& items)
+QVector<AmplitudeAxisItem*> valueAxesFromData1DItems(const QVector<Data1DItem*>& items)
 {
-    QList<AmplitudeAxisItem*> axes;
+    QVector<AmplitudeAxisItem*> axes;
     for (auto* item : items)
         axes.append(item->axItemY());
     return axes;
 }
 
-QList<AmplitudeAxisItem*> valueAxesFromData2DItems(const QList<Data2DItem*>& items)
+QVector<AmplitudeAxisItem*> valueAxesFromData2DItems(const QVector<Data2DItem*>& items)
 {
-    QList<AmplitudeAxisItem*> axes;
+    QVector<AmplitudeAxisItem*> axes;
     for (auto* item : items)
         axes.append(item->zAxisItem());
     return axes;
@@ -61,14 +61,14 @@ QList<AmplitudeAxisItem*> valueAxesFromData2DItems(const QList<Data2DItem*>& ite
 
 } // namespace
 
-void GUI::Util::Ranges::setCommonRangeY(QList<Data1DItem*> items)
+void GUI::Util::Ranges::setCommonRangeY(QVector<Data1DItem*> items)
 {
     std::pair<double, double> range = commonRange(valueAxesFromData1DItems(items));
     for (auto* item : items)
         item->setYrange(range.first, range.second);
 }
 
-void GUI::Util::Ranges::setCommonRangeZ(QList<Data2DItem*> items)
+void GUI::Util::Ranges::setCommonRangeZ(QVector<Data2DItem*> items)
 {
     std::pair<double, double> range = commonRange(valueAxesFromData2DItems(items));
     for (auto* item : items)
diff --git a/GUI/Model/Data/RangeUtil.h b/GUI/Model/Data/RangeUtil.h
index 531d0e79f409446f1b8f6438ab5a4c218f98d1aa..f38225270f17971c71a51813a4fd89ec7b1939e2 100644
--- a/GUI/Model/Data/RangeUtil.h
+++ b/GUI/Model/Data/RangeUtil.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_MODEL_DATA_RANGEUTIL_H
 #define BORNAGAIN_GUI_MODEL_DATA_RANGEUTIL_H
 
-#include <QList>
+#include <QVector>
 
 class Data1DItem;
 class Data2DItem;
@@ -25,10 +25,10 @@ class Data2DItem;
 namespace GUI::Util::Ranges {
 
 //! Sets common Y range for a list of items (zoom).
-void setCommonRangeY(QList<Data1DItem*> items);
+void setCommonRangeY(QVector<Data1DItem*> items);
 
 //! Sets common Z range for a list of items (zoom).
-void setCommonRangeZ(QList<Data2DItem*> items);
+void setCommonRangeZ(QVector<Data2DItem*> items);
 
 } // namespace GUI::Util::Ranges
 
diff --git a/GUI/Model/Descriptor/DoubleProperty.h b/GUI/Model/Descriptor/DoubleProperty.h
index fb91b3ce6fc7ae8901efa0f7ce27c1e7a1789ce7..fbf83a5cd0a49673b877bc1b20149ee4457b5037 100644
--- a/GUI/Model/Descriptor/DoubleProperty.h
+++ b/GUI/Model/Descriptor/DoubleProperty.h
@@ -16,8 +16,8 @@
 #define BORNAGAIN_GUI_MODEL_DESCRIPTOR_DOUBLEPROPERTY_H
 
 #include "Fit/Param/RealLimits.h"
-#include <QList>
 #include <QString>
+#include <QVector>
 #include <QXmlStreamReader>
 
 //! Class for representing a double value, its attributes and its accessors.
@@ -85,6 +85,6 @@ private:
     RealLimits m_limits;  //!< Limits of the value.
 };
 
-using DoubleProperties = QList<DoubleProperty*>;
+using DoubleProperties = QVector<DoubleProperty*>;
 
 #endif // BORNAGAIN_GUI_MODEL_DESCRIPTOR_DOUBLEPROPERTY_H
diff --git a/GUI/Model/Job/DataSource.cpp b/GUI/Model/Job/DataSource.cpp
index 8f19da94f2d6388c389b90f4c3c9acfc4c20eea8..0a547bd0bf74e100ba59eb67db1678ef6f023022 100644
--- a/GUI/Model/Job/DataSource.cpp
+++ b/GUI/Model/Job/DataSource.cpp
@@ -79,9 +79,9 @@ Data2DItem* DataSource::diffData2DItem() const
     return jobxItem() ? dynamic_cast<Data2DItem*>(jobxItem()->diffDataItem()) : nullptr;
 }
 
-QList<Data1DItem*> DataSource::mainData1DItems() const
+QVector<Data1DItem*> DataSource::mainData1DItems() const
 {
-    QList<Data1DItem*> result;
+    QVector<Data1DItem*> result;
     if (auto* ii = simuData1DItem())
         result.append(ii);
     if (auto* ii = realData1DItem())
@@ -89,9 +89,9 @@ QList<Data1DItem*> DataSource::mainData1DItems() const
     return result;
 }
 
-QList<Data2DItem*> DataSource::mainData2DItems() const
+QVector<Data2DItem*> DataSource::mainData2DItems() const
 {
-    QList<Data2DItem*> result;
+    QVector<Data2DItem*> result;
     if (auto* ii = simuData2DItem())
         result.append(ii);
     if (auto* ii = realData2DItem())
@@ -99,17 +99,17 @@ QList<Data2DItem*> DataSource::mainData2DItems() const
     return result;
 }
 
-QList<Data1DItem*> DataSource::allData1DItems() const
+QVector<Data1DItem*> DataSource::allData1DItems() const
 {
-    QList<Data1DItem*> result = mainData1DItems();
+    QVector<Data1DItem*> result = mainData1DItems();
     if (auto* ii = diffData1DItem())
         result.append(ii);
     return result;
 }
 
-QList<Data2DItem*> DataSource::allData2DItems() const
+QVector<Data2DItem*> DataSource::allData2DItems() const
 {
-    QList<Data2DItem*> result = mainData2DItems();
+    QVector<Data2DItem*> result = mainData2DItems();
     if (auto* ii = diffData2DItem())
         result.append(ii);
     return result;
diff --git a/GUI/Model/Job/DataSource.h b/GUI/Model/Job/DataSource.h
index 2cf3605503ca681de3ef7d72156c5c1a47112f95..5e4c16d7c54872b3832c4ab3ca5a9d2bee01a196 100644
--- a/GUI/Model/Job/DataSource.h
+++ b/GUI/Model/Job/DataSource.h
@@ -46,11 +46,11 @@ public:
 
     //... Access to lists of items:
 
-    QList<Data1DItem*> mainData1DItems() const;
-    QList<Data2DItem*> mainData2DItems() const;
+    QVector<Data1DItem*> mainData1DItems() const;
+    QVector<Data2DItem*> mainData2DItems() const;
 
-    QList<Data1DItem*> allData1DItems() const;
-    QList<Data2DItem*> allData2DItems() const;
+    QVector<Data1DItem*> allData1DItems() const;
+    QVector<Data2DItem*> allData2DItems() const;
 
     Data1DItem* currentData1DItem() const;
     Data2DItem* currentData2DItem() const;
diff --git a/GUI/Model/Job/ParameterTreeItems.cpp b/GUI/Model/Job/ParameterTreeItems.cpp
index 309cf599af6aae27a61ce597297d65b95f18a3ba..62776363979e5821b124a6b0afe90bdb03ed2399 100644
--- a/GUI/Model/Job/ParameterTreeItems.cpp
+++ b/GUI/Model/Job/ParameterTreeItems.cpp
@@ -171,7 +171,7 @@ void ParameterContainerItem::writeTo(QXmlStreamWriter* w) const
 
     // labels
     w->writeStartElement(Tag::ParameterLabels);
-    QList<ParameterLabelItem*> list = m_parameter_tree_root->findChildren<ParameterLabelItem*>();
+    QVector<ParameterLabelItem*> list = m_parameter_tree_root->findChildren<ParameterLabelItem*>();
     for (const auto& item : list)
         item->writeTo(w);
     w->writeEndElement();
diff --git a/GUI/Support/Style/QCP_Util.h b/GUI/Support/Style/QCP_Util.h
index 6f1fbb903fde2d6f1e7a237f66e8b5033c64b158..faaf8c4860d0ca033bca789e3edd42b3f0247af0 100644
--- a/GUI/Support/Style/QCP_Util.h
+++ b/GUI/Support/Style/QCP_Util.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_SUPPORT_STYLE_QCP_UTIL_H
 #define BORNAGAIN_GUI_SUPPORT_STYLE_QCP_UTIL_H
 
-#include <QList>
+#include <QVector>
 
 class QCPAxis;
 class QCPColorGradient;
diff --git a/GUI/Support/Util/MessageService.h b/GUI/Support/Util/MessageService.h
index b61321cd75eb6842e313e434e6eb972fce505e19..e4037266728ed88b70836bef2efc0608e305beb6 100644
--- a/GUI/Support/Util/MessageService.h
+++ b/GUI/Support/Util/MessageService.h
@@ -15,9 +15,9 @@
 #ifndef BORNAGAIN_GUI_SUPPORT_UTIL_MESSAGESERVICE_H
 #define BORNAGAIN_GUI_SUPPORT_UTIL_MESSAGESERVICE_H
 
-#include <QList>
 #include <QObject>
 #include <QString>
+#include <QVector>
 #include <utility>
 
 //! The service to collect messages from different senders.
@@ -31,7 +31,7 @@ public:
     QStringList warnings(bool includeSenders = false) const;
 
 private:
-    using Messages = QList<std::pair<QString, QString>>; // pair of sender & description
+    using Messages = QVector<std::pair<QString, QString>>; // pair of sender & description
 
     QStringList descriptions(const Messages& messages, bool includeSenders) const;
 
diff --git a/GUI/View/Canvas/SpecularPlotCanvas.cpp b/GUI/View/Canvas/SpecularPlotCanvas.cpp
index 11d8b3fddade7c1f92c8362964c6211fbe82ce0b..53061cc3bb725ebe1f293bd482c0f7f04178e511 100644
--- a/GUI/View/Canvas/SpecularPlotCanvas.cpp
+++ b/GUI/View/Canvas/SpecularPlotCanvas.cpp
@@ -31,7 +31,7 @@ SpecularPlotCanvas::SpecularPlotCanvas()
     setStatusLabelEnabled(false);
 }
 
-void SpecularPlotCanvas::setData1DItems(const QList<Data1DItem*>& data_items)
+void SpecularPlotCanvas::setData1DItems(const QVector<Data1DItem*>& data_items)
 {
     m_plot->setData1DItems(data_items);
 }
diff --git a/GUI/View/Canvas/SpecularPlotCanvas.h b/GUI/View/Canvas/SpecularPlotCanvas.h
index 32f0185a1a42053fbe3f7bc6f5cf02ef3c4d7e33..4be4845b845dd5aa8543b60d721c5f9a7aea9149 100644
--- a/GUI/View/Canvas/SpecularPlotCanvas.h
+++ b/GUI/View/Canvas/SpecularPlotCanvas.h
@@ -29,7 +29,7 @@ class SpecularPlotCanvas : public QWidget {
 public:
     explicit SpecularPlotCanvas();
 
-    void setData1DItems(const QList<Data1DItem*>& data_items);
+    void setData1DItems(const QVector<Data1DItem*>& data_items);
 
     SpecularPlot* specularPlot() { return m_plot; }
     QCustomPlot* customPlot();
diff --git a/GUI/View/Data/DatafilesSelector.cpp b/GUI/View/Data/DatafilesSelector.cpp
index 06b2fa542a12e6367f170f96e99c102266a409c1..73412429d66899a12c475aaccc8bdbfac73a6f36 100644
--- a/GUI/View/Data/DatafilesSelector.cpp
+++ b/GUI/View/Data/DatafilesSelector.cpp
@@ -195,7 +195,7 @@ void DatafilesSelector::restoreSelection()
         m_data_frames->setStackedItem(currentDatafileItem()->dataItem());
 }
 
-QList<QAction*> DatafilesSelector::getOverlayActions(const QModelIndex& index, bool asHover)
+QVector<QAction*> DatafilesSelector::getOverlayActions(const QModelIndex& index, bool asHover)
 {
     if (m_qmodel->isHeadline(index))
         return {};
diff --git a/GUI/View/Data/DatafilesSelector.h b/GUI/View/Data/DatafilesSelector.h
index 09ffe7578d5d6438ba2d829e3fd37c1bbf87ba48..096f6f0a32ba2e8434471dcddfc0b9b2495a1e98 100644
--- a/GUI/View/Data/DatafilesSelector.h
+++ b/GUI/View/Data/DatafilesSelector.h
@@ -55,7 +55,7 @@ private:
     void importData2D();
     QModelIndex currentDatafileIndex() const;
 
-    QList<QAction*> getOverlayActions(const QModelIndex& index, bool asHover);
+    QVector<QAction*> getOverlayActions(const QModelIndex& index, bool asHover);
 
     QAction* m_import1dData_action;
     QAction* m_import2dData_action;
diff --git a/GUI/View/Dock/DocksController.cpp b/GUI/View/Dock/DocksController.cpp
index 7d5580f0d451ff71b91167beae36f137be75b005..1a1d6d4b302bb8dbc78e0df39b8f40443685e545 100644
--- a/GUI/View/Dock/DocksController.cpp
+++ b/GUI/View/Dock/DocksController.cpp
@@ -85,7 +85,7 @@ void DocksController::addWidget(int id, QWidget* widget, Qt::DockWidgetArea area
     auto* dock = addDockForWidget(widget);
     m_docks[id] = DockWidgetInfo(dock, widget, area);
 
-    QList<QAbstractItemView*> frames = widget->findChildren<QAbstractItemView*>();
+    QVector<QAbstractItemView*> frames = widget->findChildren<QAbstractItemView*>();
     for (int i = 0; i < frames.count(); ++i)
         frames[i]->setFrameStyle(QFrame::NoFrame);
 }
@@ -139,7 +139,7 @@ QDockWidget* DocksController::findDock(QWidget* widget)
     return nullptr;
 }
 
-QList<QDockWidget*> DocksController::dockWidgets() const
+QVector<QDockWidget*> DocksController::dockWidgets() const
 {
     return m_main_window->findChildren<QDockWidget*>();
 }
@@ -227,7 +227,7 @@ bool DocksController::eventFilter(QObject* obj, QEvent* event)
 
 void DocksController::addDockActionsToMenu(QMenu* menu)
 {
-    QList<QAction*> actions;
+    QVector<QAction*> actions;
     for (auto* dockWidget : dockWidgets()) {
         if (dockWidget->parentWidget() == m_main_window) {
             QAction* action = dockWidget->toggleViewAction();
diff --git a/GUI/View/Dock/DocksController.h b/GUI/View/Dock/DocksController.h
index 136f7f7e83a3e98d5025356829d0d3a04756b66c..e47ea57f5c26586e35d1b0e41cdc070d45bceced 100644
--- a/GUI/View/Dock/DocksController.h
+++ b/GUI/View/Dock/DocksController.h
@@ -39,7 +39,7 @@ public:
 
     QDockWidget* findDock(int id);
     QDockWidget* findDock(QWidget* widget);
-    QList<QDockWidget*> dockWidgets() const;
+    QVector<QDockWidget*> dockWidgets() const;
 
     void addDockActionsToMenu(QMenu* menu);
 
diff --git a/GUI/View/FitControl/MinimizerEditor.cpp b/GUI/View/FitControl/MinimizerEditor.cpp
index ac263aeaadb956832e5a2de8f0a4a3b8839e1d93..67bff9a5c97bfbffab1677aa29a57b41422da6ba 100644
--- a/GUI/View/FitControl/MinimizerEditor.cpp
+++ b/GUI/View/FitControl/MinimizerEditor.cpp
@@ -89,8 +89,8 @@ void MinimizerEditor::createGroupedAlgorithmsCombo()
     QStringList list = m_container_item->commonAlgorithmCombo().values();
 
     // list with headers and separators
-    QList<qsizetype> header_indices;
-    QList<qsizetype> non_separator_indices;
+    QVector<qsizetype> header_indices;
+    QVector<qsizetype> non_separator_indices;
     for (const QString& algorithm : list) {
         comboBox->addItem(algorithm);
         if (!m_container_item->algorithmHasMinimizer(algorithm)) {
diff --git a/GUI/View/FitControl/MinimizerEditor.h b/GUI/View/FitControl/MinimizerEditor.h
index bde176d6380dc9c10e4bfd4df4732ea6df820051..4bbcab0e9c428a407516a9fc23cda2d8de42eef6 100644
--- a/GUI/View/FitControl/MinimizerEditor.h
+++ b/GUI/View/FitControl/MinimizerEditor.h
@@ -48,7 +48,7 @@ private:
     MinimizerContainerItem* m_container_item;
     QFormLayout* m_main_layout;
     QFormLayout* m_minimizer_layout;
-    QList<std::function<void()>> m_updaters;
+    QVector<std::function<void()>> m_updaters;
 };
 
 #endif // BORNAGAIN_GUI_VIEW_FITCONTROL_MINIMIZEREDITOR_H
diff --git a/GUI/View/Info/PythonSyntaxHighlighter.h b/GUI/View/Info/PythonSyntaxHighlighter.h
index 96000c2c24788a9e115cc132f1932247ca9e3f15..4eb9def0071b4976bfd1beb964e8f92ed9714263 100644
--- a/GUI/View/Info/PythonSyntaxHighlighter.h
+++ b/GUI/View/Info/PythonSyntaxHighlighter.h
@@ -83,7 +83,7 @@ private:
                         const QTextCharFormat& style);
     QTextCharFormat getTextCharFormat(const QString& colorName, const QString& style = "");
 
-    QList<HighlightingRule> rules;
+    QVector<HighlightingRule> rules;
     QRegularExpression triSingleQuote;
     QRegularExpression triDoubleQuote;
 };
diff --git a/GUI/View/Job/JobViewActivities.cpp b/GUI/View/Job/JobViewActivities.cpp
index cfc4b3906d206149ebefeadea068cc66d8c4118b..f5e5fe14ef1d94f403780c26351594d6fe4399fd 100644
--- a/GUI/View/Job/JobViewActivities.cpp
+++ b/GUI/View/Job/JobViewActivities.cpp
@@ -35,7 +35,7 @@ const QMap<JobViewActivity, QString> activityNames = {
 
 //! Returns list of all available activities.
 
-QList<JobViewActivity> JobViewActivities::all()
+QVector<JobViewActivity> JobViewActivities::all()
 {
     return activityNames.keys();
 }
diff --git a/GUI/View/Job/JobViewActivities.h b/GUI/View/Job/JobViewActivities.h
index a6caa44bde612505e3155e45cc9e7e46040b55b8..2c301349ba7a1bee3a6642fbb6cf2f5d5d39a094 100644
--- a/GUI/View/Job/JobViewActivities.h
+++ b/GUI/View/Job/JobViewActivities.h
@@ -16,7 +16,6 @@
 #define BORNAGAIN_GUI_VIEW_JOB_JOBVIEWACTIVITIES_H
 
 #include <QFlags>
-#include <QList>
 #include <QString>
 #include <QVector>
 
@@ -41,7 +40,7 @@ enum class JobViewActivity { JobView, RealTime, Fitting };
 
 namespace JobViewActivities {
 
-QList<JobViewActivity> all();
+QVector<JobViewActivity> all();
 
 QString nameFromActivity(JobViewActivity activity);
 JobViewActivity activityFromName(QString name);
diff --git a/GUI/View/Job/JobsPanel.cpp b/GUI/View/Job/JobsPanel.cpp
index 4c6ae95cda9633a5c09a7dae9ce964e060ed9dbd..50851ca9741051afe947f3f38343d67335dd2a09 100644
--- a/GUI/View/Job/JobsPanel.cpp
+++ b/GUI/View/Job/JobsPanel.cpp
@@ -22,18 +22,18 @@
 
 namespace {
 
-QVariant listToQVariant(const QList<int>& list)
+QVariant listToQVariant(const QVector<int>& list)
 {
-    QList<QVariant> var_list;
+    QVector<QVariant> var_list;
     for (int val : list)
         var_list.push_back(QVariant(val));
     return {var_list};
 }
 
-QList<int> qVariantToList(const QVariant& var)
+QVector<int> qVariantToList(const QVariant& var)
 {
-    QList<QVariant> var_list = var.toList();
-    QList<int> list;
+    QVector<QVariant> var_list = var.toList();
+    QVector<int> list;
     for (const QVariant& var_val : var_list)
         list.push_back(var_val.toInt());
     return list;
diff --git a/GUI/View/List/SamplesQListView.cpp b/GUI/View/List/SamplesQListView.cpp
index 402ded1e76f355117b81774420eff5f823c63aea..8f095c3ac7ad7a22b4c4525e3031cf20e5563c96 100644
--- a/GUI/View/List/SamplesQListView.cpp
+++ b/GUI/View/List/SamplesQListView.cpp
@@ -133,7 +133,7 @@ void SamplesQListView::importSampleFromPython()
 #endif
 }
 
-QList<QAction*> SamplesQListView::getOverlayActions(const QModelIndex& index, bool asHover)
+QVector<QAction*> SamplesQListView::getOverlayActions(const QModelIndex& index, bool asHover)
 {
     if (!asHover)
         return {};
diff --git a/GUI/View/List/SamplesQListView.h b/GUI/View/List/SamplesQListView.h
index 69cde03463cff6142169e6336e1988a15eaf69ac..adeba637267b027cdff1d58c9cf58123eb73c6b0 100644
--- a/GUI/View/List/SamplesQListView.h
+++ b/GUI/View/List/SamplesQListView.h
@@ -45,7 +45,7 @@ private:
     void createSampleFromLibrary(const QString& classname, const QString& title,
                                  const QString& description);
     void importSampleFromPython();
-    QList<QAction*> getOverlayActions(const QModelIndex& index, bool asHover);
+    QVector<QAction*> getOverlayActions(const QModelIndex& index, bool asHover);
     void onCurrentChanged(const QModelIndex& index);
     void removeSample(SampleItem* item);
     void copySample(SampleItem* item);
diff --git a/GUI/View/Numeric/ComboUtil.cpp b/GUI/View/Numeric/ComboUtil.cpp
index c0b42e2e9ffa62a1574e92fb919de41cc05a07e1..f32e0d7aab5078f21c27df563e42344845fa4cf7 100644
--- a/GUI/View/Numeric/ComboUtil.cpp
+++ b/GUI/View/Numeric/ComboUtil.cpp
@@ -22,7 +22,7 @@ using std::function;
 
 QComboBox* GUI::Util::createComboBox(function<ComboProperty()> comboFunction,
                                      function<void(const QString&)> slot, bool inScrollArea,
-                                     QList<function<void()>>* updaters, QString tooltip)
+                                     QVector<function<void()>>* updaters, QString tooltip)
 {
     auto* combo = new QComboBox;
     combo->addItems(comboFunction().values());
diff --git a/GUI/View/Numeric/ComboUtil.h b/GUI/View/Numeric/ComboUtil.h
index a1fa275f2b0ea500a9a392cb54cb5d82a19d0097..f83c252b2cd1e22926430769f23dfb1ec3bf4b47 100644
--- a/GUI/View/Numeric/ComboUtil.h
+++ b/GUI/View/Numeric/ComboUtil.h
@@ -34,7 +34,7 @@ namespace GUI::Util {
 //! The combo can be updated from outside using "updaters" list.
 QComboBox* createComboBox(std::function<ComboProperty()> comboFunction,
                           std::function<void(const QString&)> slot, bool inScrollArea,
-                          QList<std::function<void()>>* updaters = nullptr, QString tooltip = "");
+                          QVector<std::function<void()>>* updaters = nullptr, QString tooltip = "");
 
 //! Create a combo box with the information found in a selection property.
 //!
diff --git a/GUI/View/Numeric/NumWidgetUtil.cpp b/GUI/View/Numeric/NumWidgetUtil.cpp
index 6a9e8257379eb5ef7498a336d636aa5d69d569a8..f1dc2ffc09fc46f2847ef31e757004ddbb078591 100644
--- a/GUI/View/Numeric/NumWidgetUtil.cpp
+++ b/GUI/View/Numeric/NumWidgetUtil.cpp
@@ -29,7 +29,8 @@ DoubleSpinBox* GUI::Util::createDoubleSpinBoxRow(QFormLayout* parentLayout, Doub
 }
 
 QCheckBox* GUI::Util::createCheckBox(const QString& title, function<bool()> getter,
-                                     function<void(bool)> setter, QList<function<void()>>* updaters)
+                                     function<void(bool)> setter,
+                                     QVector<function<void()>>* updaters)
 {
     auto* checkBox = new QCheckBox(title);
     checkBox->setChecked(getter());
@@ -47,7 +48,7 @@ QCheckBox* GUI::Util::createCheckBox(const QString& title, function<bool()> gett
 
 QSpinBox* GUI::Util::createIntSpinBox(function<int()> getter, function<void(int)> slot,
                                       const RealLimits& limits, QString tooltip,
-                                      QList<function<void()>>* updaters, bool easyScrollable)
+                                      QVector<function<void()>>* updaters, bool easyScrollable)
 {
     auto* spin = new QSpinBox;
     spin->setFocusPolicy(Qt::StrongFocus);
@@ -73,7 +74,7 @@ QSpinBox* GUI::Util::createIntSpinBox(function<int()> getter, function<void(int)
 
 QDoubleSpinBox* GUI::Util::createDoubleSpinBox(function<double()> getter,
                                                function<void(double)> slot,
-                                               QList<function<void()>>* updaters, QString tooltip,
+                                               QVector<function<void()>>* updaters, QString tooltip,
                                                const RealLimits& limits, bool easyScrollable)
 {
     auto* spin = new QDoubleSpinBox;
diff --git a/GUI/View/Numeric/NumWidgetUtil.h b/GUI/View/Numeric/NumWidgetUtil.h
index c19e70784ba3410a168c885d2a3a14eb6a3d0dcb..d98849bc32e11c0526237129562b02da1b895158 100644
--- a/GUI/View/Numeric/NumWidgetUtil.h
+++ b/GUI/View/Numeric/NumWidgetUtil.h
@@ -41,7 +41,8 @@ DoubleSpinBox* createDoubleSpinBoxRow(QFormLayout* parentLayout, DoubleProperty&
 
 //! Creates an updatable checkbox
 QCheckBox* createCheckBox(const QString& title, std::function<bool()> getter,
-                          std::function<void(bool)> setter, QList<std::function<void()>>* updaters);
+                          std::function<void(bool)> setter,
+                          QVector<std::function<void()>>* updaters);
 
 //! Creates configurable spinBox
 //!
@@ -54,13 +55,13 @@ QCheckBox* createCheckBox(const QString& title, std::function<bool()> getter,
 //! the form.
 QSpinBox* createIntSpinBox(std::function<int()> getter, std::function<void(int)> slot,
                            const RealLimits& limits = {}, QString tooltip = "",
-                           QList<std::function<void()>>* updaters = nullptr,
+                           QVector<std::function<void()>>* updaters = nullptr,
                            bool easyScrollable = false);
 
 //! Creates a scrollable updatable doublespinBox
 QDoubleSpinBox* createDoubleSpinBox(std::function<double()> getter,
                                     std::function<void(double)> slot,
-                                    QList<std::function<void()>>* updaters, QString tooltip = "",
+                                    QVector<std::function<void()>>* updaters, QString tooltip = "",
                                     const RealLimits& limits = {}, bool easyScrollable = true);
 } // namespace GUI::Util
 
diff --git a/GUI/View/Overlay/IMaskOverlay.cpp b/GUI/View/Overlay/IMaskOverlay.cpp
index 920b1bba212749facc6b1db52c861fa6f56a0645..3ec0299a2f658239b8f85a071c76f79069f06ede 100644
--- a/GUI/View/Overlay/IMaskOverlay.cpp
+++ b/GUI/View/Overlay/IMaskOverlay.cpp
@@ -28,7 +28,7 @@ bool itemMaskValue(const OverlayItem* item)
     return false;
 }
 
-void subtractTransmittingMasks(QPainterPath& result, qreal z, QList<QGraphicsItem*> items)
+void subtractTransmittingMasks(QPainterPath& result, qreal z, QVector<QGraphicsItem*> items)
 {
     for (const QGraphicsItem* item : items) {
         const auto* overlay = dynamic_cast<const IOverlay*>(item);
diff --git a/GUI/View/Overlay/IRectangularOverlay.cpp b/GUI/View/Overlay/IRectangularOverlay.cpp
index 3c114f05da053b440625a454b07cce3970a8b2f3..8ebe3bff25f5311d94019fdc9b336a129f714dbd 100644
--- a/GUI/View/Overlay/IRectangularOverlay.cpp
+++ b/GUI/View/Overlay/IRectangularOverlay.cpp
@@ -19,7 +19,7 @@ namespace {
 
 const double bbox_margins = 5; // additional margins around rectangle to form bounding box
 
-const QList<SizeHandleElement::EHandleLocation> points{
+const QVector<SizeHandleElement::EHandleLocation> points{
     SizeHandleElement::TOPLEFT,     SizeHandleElement::TOPMIDDLE,   SizeHandleElement::TOPRIGHT,
     SizeHandleElement::MIDDLERIGHT, SizeHandleElement::BOTTOMRIGHT, SizeHandleElement::BOTTOMMIDLE,
     SizeHandleElement::BOTTOMLEFT,  SizeHandleElement::MIDDLELEFT};
diff --git a/GUI/View/Plotter/PlotStatusLabel.h b/GUI/View/Plotter/PlotStatusLabel.h
index 47eaef5720ba918926f48cd70a7b9dec8e47a0e1..4758009c3c8d39088ee995b6974602bec78485b1 100644
--- a/GUI/View/Plotter/PlotStatusLabel.h
+++ b/GUI/View/Plotter/PlotStatusLabel.h
@@ -16,8 +16,8 @@
 #define BORNAGAIN_GUI_VIEW_PLOTTER_PLOTSTATUSLABEL_H
 
 #include <QFrame>
-#include <QList>
 #include <QPaintEvent>
+#include <QVector>
 
 class ScientificPlot;
 
@@ -50,7 +50,7 @@ private:
     Qt::Alignment m_alignment;
     QFont m_font;
 
-    QList<ScientificPlot*> m_plots;
+    QVector<ScientificPlot*> m_plots;
 };
 
 #endif // BORNAGAIN_GUI_VIEW_PLOTTER_PLOTSTATUSLABEL_H
diff --git a/GUI/View/Plotter/SpecularPlot.cpp b/GUI/View/Plotter/SpecularPlot.cpp
index 2c50067e641352780d3ca2dd9dc557b18cab9443..0cf7a02d2fb0d6fe1c7137d90f4d38d7e7b8cc29 100644
--- a/GUI/View/Plotter/SpecularPlot.cpp
+++ b/GUI/View/Plotter/SpecularPlot.cpp
@@ -44,7 +44,7 @@ SpecularPlot::SpecularPlot()
     setMouseTrackingEnabled(true);
 }
 
-void SpecularPlot::setData1DItems(const QList<Data1DItem*>& items)
+void SpecularPlot::setData1DItems(const QVector<Data1DItem*>& items)
 {
     m_data_items = items;
 
@@ -59,9 +59,9 @@ void SpecularPlot::setData1DItems(const QList<Data1DItem*>& items)
     connectItems();
 }
 
-QList<Data1DItem*> SpecularPlot::data_items() const
+QVector<Data1DItem*> SpecularPlot::data_items() const
 {
-    QList<Data1DItem*> nonNullItems;
+    QVector<Data1DItem*> nonNullItems;
     for (auto* item : m_data_items)
         if (item)
             nonNullItems.append(item);
diff --git a/GUI/View/Plotter/SpecularPlot.h b/GUI/View/Plotter/SpecularPlot.h
index 80999f80af0705409dc7066a02d18a85618046cc..cfd0011556ab295ac84e9642e9f96bbdb8949ef4 100644
--- a/GUI/View/Plotter/SpecularPlot.h
+++ b/GUI/View/Plotter/SpecularPlot.h
@@ -36,8 +36,8 @@ class SpecularPlot : public ScientificPlot {
 public:
     explicit SpecularPlot();
 
-    void setData1DItems(const QList<Data1DItem*>& items);
-    QList<Data1DItem*> data_items() const;
+    void setData1DItems(const QVector<Data1DItem*>& items);
+    QVector<Data1DItem*> data_items() const;
     Data1DItem* currentData1DItem() const;
 
     QSize sizeHint() const override { return {500, 400}; }
@@ -80,7 +80,7 @@ private:
     //! Sets the data values to SpecularPlot.
     void setDataFromItem(Data1DItem* item);
 
-    QList<Data1DItem*> m_data_items;
+    QVector<Data1DItem*> m_data_items;
 
     QMap<Data1DItem*, QCPGraph*> m_graph_map;
     QMap<Data1DItem*, QCPErrorBars*> m_errorbar_map;
diff --git a/GUI/View/Sample/CompoundForm.h b/GUI/View/Sample/CompoundForm.h
index 83b04c01f8e5127d4aa2bca396921ae93a704255..c265d90237b11ba1bcbc4749d2a39c63d557c24f 100644
--- a/GUI/View/Sample/CompoundForm.h
+++ b/GUI/View/Sample/CompoundForm.h
@@ -40,7 +40,7 @@ private:
     QAction* m_remove_action = nullptr;
     QAction* m_duplicate_action = nullptr;
     SampleEditorController* m_ec;
-    QList<QWidget*> m_structure_editing_widgets;
+    QVector<QWidget*> m_structure_editing_widgets;
 };
 
 #endif // BORNAGAIN_GUI_VIEW_SAMPLE_COMPOUNDFORM_H
diff --git a/GUI/View/Sample/LayerEditorUtil.cpp b/GUI/View/Sample/LayerEditorUtil.cpp
index ea6cf123c0e17699aa2fceacd51676b3969b77e7..3e8d8435a472fc5fa4a9673a5b6df32c3bd0c142 100644
--- a/GUI/View/Sample/LayerEditorUtil.cpp
+++ b/GUI/View/Sample/LayerEditorUtil.cpp
@@ -142,11 +142,11 @@ QPushButton* GUI::Util::Layer::createAddParticleButton(
     return btn;
 }
 
-QList<QColor> GUI::Util::Layer::predefinedLayerColors()
+QVector<QColor> GUI::Util::Layer::predefinedLayerColors()
 {
-    static QList<QColor> colors = {QColor(230, 255, 213), QColor(194, 252, 240),
-                                   QColor(239, 228, 176), QColor(200, 191, 231),
-                                   QColor(253, 205, 193), QColor(224, 193, 253)};
+    static QVector<QColor> colors = {QColor(230, 255, 213), QColor(194, 252, 240),
+                                     QColor(239, 228, 176), QColor(200, 191, 231),
+                                     QColor(253, 205, 193), QColor(224, 193, 253)};
 
     return colors;
 }
diff --git a/GUI/View/Sample/LayerEditorUtil.h b/GUI/View/Sample/LayerEditorUtil.h
index 9ed23b6441198b52c34af6fbd64a297d59d66ced..9194c40670804ced4daf0713f933fce0359d3edd 100644
--- a/GUI/View/Sample/LayerEditorUtil.h
+++ b/GUI/View/Sample/LayerEditorUtil.h
@@ -61,7 +61,7 @@ createAddParticleButton(QWidget* parentWidget,
                         std::function<void(FormFactorItemCatalog::Type t)> slotAddFormFactor,
                         std::function<void(ItemWithParticlesCatalog::Type t)> slotAddParticle);
 
-QList<QColor> predefinedLayerColors();
+QVector<QColor> predefinedLayerColors();
 
 } // namespace GUI::Util::Layer
 
diff --git a/GUI/View/Sample/LayerForm.h b/GUI/View/Sample/LayerForm.h
index cc4e7a1315e789fb17c96e65f23a0b7d0ea7f83a..2ef2581ef6457637052b60074044e7229f4c17ff 100644
--- a/GUI/View/Sample/LayerForm.h
+++ b/GUI/View/Sample/LayerForm.h
@@ -47,7 +47,7 @@ private:
     int m_thickness_row;
     int m_roughness_row;
     SampleEditorController* m_ec;
-    QList<QWidget*> m_structure_editing_widgets;
+    QVector<QWidget*> m_structure_editing_widgets;
     WidgetMoverButton* m_move_button;
 };
 
diff --git a/GUI/View/Sample/ParticleLayoutForm.h b/GUI/View/Sample/ParticleLayoutForm.h
index 636c0f51af278c6ba5970574a8a18bada3c226af..4562f464326d69f677807990b5b431ecba5fe11e 100644
--- a/GUI/View/Sample/ParticleLayoutForm.h
+++ b/GUI/View/Sample/ParticleLayoutForm.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_GUI_VIEW_SAMPLE_PARTICLELAYOUTFORM_H
 
 #include "GUI/View/Widget/GroupBoxes.h"
-#include <QList>
+#include <QVector>
 
 class DoubleSpinBox;
 class HeinzFormLayout;
@@ -56,7 +56,7 @@ private:
     QAction* m_remove_action;
     QAction* m_duplicate_action;
     SampleEditorController* m_ec;
-    QList<QWidget*> m_structure_editing_widgets;
+    QVector<QWidget*> m_structure_editing_widgets;
     DoubleSpinBox* m_total_density_spin_box;
 };
 
diff --git a/GUI/View/Sample/SampleForm.h b/GUI/View/Sample/SampleForm.h
index 9f1022833686c8b3f54ebc92eb0c874f824ac6da..06b8420e670e6b7f3affeb983fdc0b4f64346c0e 100644
--- a/GUI/View/Sample/SampleForm.h
+++ b/GUI/View/Sample/SampleForm.h
@@ -56,7 +56,7 @@ private:
     QVBoxLayout* m_layout;
     SampleItem* m_sample_item;    //!< Ptr is borrowed, don't delete
     SampleEditorController* m_ec; //!< Ptr is borrowed, don't delete
-    QList<QPushButton*> m_add_layer_buttons;
+    QVector<QPushButton*> m_add_layer_buttons;
 };
 
 #endif // BORNAGAIN_GUI_VIEW_SAMPLE_SAMPLEFORM_H
diff --git a/GUI/View/Scene/MaskGraphicsScene.cpp b/GUI/View/Scene/MaskGraphicsScene.cpp
index 5d3ed010325dcc2ee5c6ea810121c6ae7beedfc5..87d0886d425a3b27d3106d9888c4ddfaca3688c2 100644
--- a/GUI/View/Scene/MaskGraphicsScene.cpp
+++ b/GUI/View/Scene/MaskGraphicsScene.cpp
@@ -33,7 +33,7 @@ namespace {
 const qreal min_distance_to_create_rect = 10;
 
 //! Return true if area beneath the mouse contains views of given type.
-template <class T> bool areaContains(QList<QGraphicsItem*> items)
+template <class T> bool areaContains(QVector<QGraphicsItem*> items)
 {
     for (QGraphicsItem* item : items)
         if (dynamic_cast<T*>(item))
diff --git a/GUI/View/Setup/AxesPanel.h b/GUI/View/Setup/AxesPanel.h
index e5f169f68460356d9257cd0e81666f888cc5dd22..36846a273fd3fcbbcdca5511cbd14b9f60ada16f 100644
--- a/GUI/View/Setup/AxesPanel.h
+++ b/GUI/View/Setup/AxesPanel.h
@@ -30,7 +30,7 @@ public:
 private:
     void updateUIValues();
 
-    QList<std::function<void()>> m_updaters;
+    QVector<std::function<void()>> m_updaters;
 
     std::unique_ptr<DataSource> m_data_source;
 };
diff --git a/GUI/View/Setup/AxisPanel.h b/GUI/View/Setup/AxisPanel.h
index 0e6440bbc12ebd47698f201ac78dd3e593f38e41..8613aaf8bc8c3f8de54c5c22118d3a15323cce46 100644
--- a/GUI/View/Setup/AxisPanel.h
+++ b/GUI/View/Setup/AxisPanel.h
@@ -31,7 +31,7 @@ private:
     void updateItemCoords(DataItem* item);
     void updateUIValues();
 
-    QList<std::function<void()>> m_updaters;
+    QVector<std::function<void()>> m_updaters;
 
     std::unique_ptr<DataSource> m_data_source;
 };
diff --git a/GUI/View/Widget/ItemViewOverlayButtons.cpp b/GUI/View/Widget/ItemViewOverlayButtons.cpp
index b6b1ca262db2a78b7092f647219262b46e5163ab..c5fbec29c685b50cca77718cb91ef630026b0234 100644
--- a/GUI/View/Widget/ItemViewOverlayButtons.cpp
+++ b/GUI/View/Widget/ItemViewOverlayButtons.cpp
@@ -194,7 +194,7 @@ void ItemViewOverlayButtons::installOverlay(const QModelIndex& index)
 
     auto* w = new ItemViewOverlayWidget(m_view, index);
 
-    const auto setAlignment = [&](const QList<QAction*> actions) {
+    const auto setAlignment = [&](const QVector<QAction*> actions) {
         w->setHorizontalAlignment(Qt::AlignRight);
         if (actions.first() == nullptr && actions.last() == nullptr)
             w->setHorizontalAlignment(Qt::AlignCenter);
diff --git a/GUI/View/Widget/ItemViewOverlayButtons.h b/GUI/View/Widget/ItemViewOverlayButtons.h
index 815d037dfa5ea5e3c949b1b4e87295f5db69898e..8488b3a973615d7fa8a037efe66808b29eb16b2c 100644
--- a/GUI/View/Widget/ItemViewOverlayButtons.h
+++ b/GUI/View/Widget/ItemViewOverlayButtons.h
@@ -28,7 +28,7 @@
 class ItemViewOverlayButtons : public QObject {
     Q_OBJECT
 public:
-    using FnGetActions = std::function<QList<QAction*>(const QModelIndex&, bool)>;
+    using FnGetActions = std::function<QVector<QAction*>(const QModelIndex&, bool)>;
 
     static void install(QAbstractItemView* view, FnGetActions fnGetActions);
 
diff --git a/Tests/Unit/GUI/TestGUI.cpp b/Tests/Unit/GUI/TestGUI.cpp
index a718a6779b0c4425e68acd63e3eba85b7bd15df9..1b64ddab06cbf7d87b28384fbfb81345d26c994f 100644
--- a/Tests/Unit/GUI/TestGUI.cpp
+++ b/Tests/Unit/GUI/TestGUI.cpp
@@ -11,7 +11,7 @@ int main(int argc, char** argv)
 
     Comparators::registerComparators();
     qRegisterMetaType<QAbstractItemModel::LayoutChangeHint>("LayoutChangeHint");
-    qRegisterMetaType<QList<QPersistentModelIndex>>("QList<QPersistentModelIndex>");
+    qRegisterMetaType<QVector<QPersistentModelIndex>>("QVector<QPersistentModelIndex>");
 
     ::testing::InitGoogleTest(&argc, argv);
 
diff --git a/Tests/Unit/GUI/TestLinkInstrument.cpp b/Tests/Unit/GUI/TestLinkInstrument.cpp
index ef972f4a43838b0874828a94e375ffdc519de76a..dcec91e8d9eb77695f04e0a3a9351a0759d60187 100644
--- a/Tests/Unit/GUI/TestLinkInstrument.cpp
+++ b/Tests/Unit/GUI/TestLinkInstrument.cpp
@@ -14,12 +14,12 @@
 #include "Tests/GTestWrapper/google_test.h"
 #include "Tests/Unit/GUI/Utils.h"
 
-QList<DatafileItem*> linkedRealDataItems(DatafilesSet& realModel,
-                                         const InstrumentItem* instrumentItem)
+QVector<DatafileItem*> linkedRealDataItems(DatafilesSet& realModel,
+                                           const InstrumentItem* instrumentItem)
 {
     ASSERT(instrumentItem);
 
-    QList<DatafileItem*> result;
+    QVector<DatafileItem*> result;
     for (auto* dfi : realModel.dfileItems()) {
         const QString linkedIdentifier = dfi->instrumentId();
         const QString instrumentIdentifier = instrumentItem->id();
@@ -50,8 +50,8 @@ TEST(TestLinkInstrument, canLinkToGisas)
 
     // making link
     realData->linkToInstrument(instrument);
-    EXPECT_EQ(linkedRealDataItems(*document.datafilesModifier(), instrument), QList<DatafileItem*>()
-                                                                                  << realData);
+    EXPECT_EQ(linkedRealDataItems(*document.datafilesModifier(), instrument),
+              QVector<DatafileItem*>() << realData);
 
     // changing detector binning and checking that link is destroyed
     auto* detectorItem = instrument->detectorItem();
@@ -59,7 +59,7 @@ TEST(TestLinkInstrument, canLinkToGisas)
     emit document.instruments()->instrumentChanged(instrument);
 
     EXPECT_EQ(linkedRealDataItems(*document.datafilesModifier(), instrument),
-              QList<DatafileItem*>());
+              QVector<DatafileItem*>());
     EXPECT_EQ(realData->instrumentId(), QString());
 }
 
@@ -87,6 +87,6 @@ TEST(TestLinkInstrument, canLinkToSpecular)
 
     // making link
     realData->linkToInstrument(instrument);
-    EXPECT_EQ(linkedRealDataItems(*document.datafilesModifier(), instrument), QList<DatafileItem*>()
-                                                                                  << realData);
+    EXPECT_EQ(linkedRealDataItems(*document.datafilesModifier(), instrument),
+              QVector<DatafileItem*>() << realData);
 }