From 757060555c24a4afeb9b31bd68046893b91a977f Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <svechnikovmv@gmail.com>
Date: Tue, 14 Feb 2023 19:29:18 +0100
Subject: [PATCH] create map of material names

---
 GUI/Model/Sample/MaterialModel.cpp | 18 +++++++++++++-----
 GUI/Model/Sample/MaterialModel.h   |  5 +++++
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/GUI/Model/Sample/MaterialModel.cpp b/GUI/Model/Sample/MaterialModel.cpp
index 97e3b58263d..18402167175 100644
--- a/GUI/Model/Sample/MaterialModel.cpp
+++ b/GUI/Model/Sample/MaterialModel.cpp
@@ -29,13 +29,15 @@ const QString Material("Material");
 
 QColor suggestMaterialColor(const QString& name)
 {
-    if (name.contains("Vacuum"))
+    if (name.contains(material_name_map.key(DefaultMaterials::Vacuum)))
         return QColor(179, 242, 255);
-    if (name.contains("Substrate"))
+    if (name.contains(material_name_map.key(DefaultMaterials::Substrate)))
         return QColor(205, 102, 0);
-    if (name.contains("Default"))
+    if (name.contains(material_name_map.key(DefaultMaterials::Default)))
         return QColor(Qt::green);
-    if (name.contains("Particle"))
+    if (name.contains(material_name_map.key(DefaultMaterials::Core)))
+        return QColor(220, 140, 220);
+    if (name.contains(material_name_map.key(DefaultMaterials::Particle)))
         return QColor(146, 198, 255);
 
     // return a random color
@@ -48,6 +50,12 @@ QColor suggestMaterialColor(const QString& name)
 
 } // namespace
 
+QMap<QString, DefaultMaterials> material_name_map = {
+    {"Default", DefaultMaterials::Default},
+    {"Vacuum", DefaultMaterials::Vacuum},
+    {"Particle", DefaultMaterials::Particle},
+    {"Core", DefaultMaterials::Core},
+    {"Substrate", DefaultMaterials::Substrate}};
 
 MaterialModel::MaterialModel() {}
 
@@ -150,7 +158,7 @@ MaterialItem* MaterialModel::defaultMaterialItem() const
 MaterialItem *MaterialModel::defaultCoreMaterialItem() const
 {
     for(auto* material : materialItems())
-        if(material->matItemName() == material_name_map.key(DefaultMaterials::Particle_Core))
+        if(material->matItemName() == material_name_map.key(DefaultMaterials::Core))
             return material;
 
     return defaultMaterialItem();
diff --git a/GUI/Model/Sample/MaterialModel.h b/GUI/Model/Sample/MaterialModel.h
index 72ae838d3ec..059c6bdaccf 100644
--- a/GUI/Model/Sample/MaterialModel.h
+++ b/GUI/Model/Sample/MaterialModel.h
@@ -19,6 +19,11 @@
 #include <QVector>
 #include <QXmlStreamReader>
 
+//! Materials created by default
+enum class DefaultMaterials { Default, Vacuum, Particle, Core, Substrate };
+
+extern QMap<QString, DefaultMaterials> material_name_map;
+
 class MaterialItem;
 
 class MaterialModel : public QObject {
-- 
GitLab