diff --git a/GUI/Model/Sample/SampleItem.cpp b/GUI/Model/Sample/SampleItem.cpp
index dd8cbb8e45215e63b09b244984efc2c8901da1c8..d1a874ad614a079365ad5ac2e521f78c5bbfd58d 100644
--- a/GUI/Model/Sample/SampleItem.cpp
+++ b/GUI/Model/Sample/SampleItem.cpp
@@ -15,6 +15,7 @@
 #include "GUI/Model/Sample/SampleItem.h"
 #include "Base/Util/Vec.h"
 #include "GUI/Model/Sample/LayerItem.h"
+#include "GUI/Support/Style/PredefinedColors.h"
 #include "GUI/Support/XML/Backup.h"
 #include "GUI/Support/XML/UtilXML.h"
 #include <QXmlStreamWriter>
@@ -215,3 +216,15 @@ void SampleItem::readFrom(QXmlStreamReader* r)
             r->skipCurrentElement();
     }
 }
+
+void SampleItem::updateDefaultLayerColors()
+{
+    const auto& colors = GUI::Colors::layerDefaults();
+
+    int col = 0;
+    for (auto* l : layerItems()) {
+        if (!l->color().isValid())
+	    l->setColor(colors[col]);
+        col = (col + 1) % colors.size();
+    }
+}
diff --git a/GUI/Model/Sample/SampleItem.h b/GUI/Model/Sample/SampleItem.h
index f5708cfd504fd7bb731179d3de60c8316a088414..4ad7e39cae0fe79abf31d33263dfda562ff5d12a 100644
--- a/GUI/Model/Sample/SampleItem.h
+++ b/GUI/Model/Sample/SampleItem.h
@@ -63,6 +63,8 @@ public:
     MaterialsSet& materialModel() { return m_materials; }
     const MaterialsSet& materialModel() const { return m_materials; }
 
+    void updateDefaultLayerColors();
+
     bool expandInfo = true;
 
 private:
diff --git a/GUI/View/Sample/SampleEditor.cpp b/GUI/View/Sample/SampleEditor.cpp
index e41d561303b737577cbf6776ec9bb2077557b8ed..364234a8f05ee4d47ab4e2e4dec1f7451b1b8b5b 100644
--- a/GUI/View/Sample/SampleEditor.cpp
+++ b/GUI/View/Sample/SampleEditor.cpp
@@ -16,7 +16,6 @@
 #include "GUI/Model/Project/ProjectDocument.h"
 #include "GUI/Model/Sample/LayerItem.h"
 #include "GUI/Model/Sample/SampleItem.h"
-#include "GUI/Support/Style/PredefinedColors.h"
 #include "GUI/View/Layout/ApplicationSettings.h"
 #include "GUI/View/Sample/SampleEditorController.h"
 #include "GUI/View/Sample/SampleForm.h"
@@ -69,15 +68,6 @@ void SampleEditor::setCurrentSample(SampleItem* sampleItem)
 
 void SampleEditor::createLayerColors() // #baLayerEditor move to better place
 {
-    if (!m_current_sample)
-        return;
-
-    const auto& colors = GUI::Colors::layerDefaults();
-
-    int col = 0;
-    for (auto* l : m_current_sample->layerItems()) {
-        if (!l->color().isValid())
-	    l->setColor(colors[col]);
-        col = (col + 1) % colors.size();
-    }
+    if (m_current_sample)
+        m_current_sample->updateDefaultLayerColors();
 }