diff --git a/GUI/coregui/Models/LayerItem.cpp b/GUI/coregui/Models/LayerItem.cpp index d377089964d7f423b19045387f6564dcb17a2d5d..d43b3b44158e235beb46542f116049a97685380b 100644 --- a/GUI/coregui/Models/LayerItem.cpp +++ b/GUI/coregui/Models/LayerItem.cpp @@ -38,7 +38,7 @@ LayerItem::LayerItem() addProperty(P_THICKNESS, 0.0)->setLimits(RealLimits::lowerLimited(0.0)) .setToolTip(QStringLiteral("Thickness of a layer in nanometers")); - addProperty(P_MATERIAL, MaterialItemUtils::getDefaultMaterialProperty().getVariant()) + addProperty(P_MATERIAL, MaterialItemUtils::defaultMaterialProperty().getVariant()) ->setToolTip(QStringLiteral("Material the layer is made of")); addProperty(P_NSLICES, 1)->setLimits(RealLimits::lowerLimited(0.0)) diff --git a/GUI/coregui/Models/ParticleItem.cpp b/GUI/coregui/Models/ParticleItem.cpp index 5ca46822597d01f65f880b30eb085e33d82a78fe..309c515ba8b1ffbc215798081bf359660b790cfe 100644 --- a/GUI/coregui/Models/ParticleItem.cpp +++ b/GUI/coregui/Models/ParticleItem.cpp @@ -47,7 +47,7 @@ ParticleItem::ParticleItem() : SessionGraphicsItem(Constants::ParticleType) { addGroupProperty(P_FORM_FACTOR, Constants::FormFactorGroup); - addProperty(P_MATERIAL, MaterialItemUtils::getDefaultMaterialProperty().getVariant()) + addProperty(P_MATERIAL, MaterialItemUtils::defaultMaterialProperty().getVariant()) ->setToolTip(QStringLiteral("Material of particle")); addProperty(P_ABUNDANCE, 1.0)->setLimits(RealLimits::limited(0.0, 1.0)).setDecimals(3) diff --git a/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.cpp b/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.cpp index 1373a042eed0e9f9e9d9623e37a70a1473c71665..371380c11ba4b829668bfc3555c0dff944a3880e 100644 --- a/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.cpp +++ b/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.cpp @@ -48,12 +48,11 @@ QColor MaterialItemUtils::suggestMaterialColor(const QString &name) } -MaterialProperty MaterialItemUtils::getDefaultMaterialProperty() +MaterialProperty MaterialItemUtils::defaultMaterialProperty() { - if(MaterialSvc::instance()) { - return MaterialSvc::getDefaultMaterialProperty(); - } - return MaterialProperty(); + auto materials = AppSvc::materialModel()->topItems(); + return materials.isEmpty() ? MaterialProperty() : + MaterialItemUtils::materialProperty(*materials.front()); } diff --git a/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h b/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h index 88c26b92ee48b703db57fa353dfc0632412eb482..86b51fca0ac7086de16b39d9704a0ea5396b4ced 100644 --- a/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h +++ b/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.h @@ -30,7 +30,7 @@ namespace MaterialItemUtils { BA_CORE_API_ QColor suggestMaterialColor(const QString &name); -BA_CORE_API_ MaterialProperty getDefaultMaterialProperty(); +BA_CORE_API_ MaterialProperty defaultMaterialProperty(); BA_CORE_API_ ColorProperty suggestMaterialColorProperty(const QString &name); BA_CORE_API_ std::unique_ptr<Material> createDomainMaterial( const MaterialProperty &material_property); diff --git a/GUI/coregui/Views/MaterialEditor/MaterialSvc.cpp b/GUI/coregui/Views/MaterialEditor/MaterialSvc.cpp index efd537b82c40930e3a3300832c09ebc70d7c203a..fd0afd8227166af04e34e13d5250c76afeae9065 100644 --- a/GUI/coregui/Views/MaterialEditor/MaterialSvc.cpp +++ b/GUI/coregui/Views/MaterialEditor/MaterialSvc.cpp @@ -40,28 +40,6 @@ MaterialSvc *MaterialSvc::instance() return m_instance; } - -MaterialProperty MaterialSvc::getDefaultMaterialProperty() -{ - Q_ASSERT(m_instance); - return m_instance->this_getDefaultMaterialProperty(); -} - -//! Returns default MaterialProperty which is the signature of the first -//! MaterialItem in the model. -MaterialProperty MaterialSvc::this_getDefaultMaterialProperty() -{ - if((AppSvc::materialModel()->rowCount( QModelIndex() ) ) ) { - QModelIndex firstIndex = AppSvc::materialModel()->index(0, 0, QModelIndex()); - MaterialItem *material = dynamic_cast<MaterialItem *>(AppSvc::materialModel()->itemForIndex(firstIndex)); - Q_ASSERT(material); - return MaterialProperty(material->getIdentifier()); - } else { - return MaterialProperty(); - } -} - - MaterialItem *MaterialSvc::getMaterial(const MaterialProperty &property) { Q_ASSERT(m_instance); diff --git a/GUI/coregui/Views/MaterialEditor/MaterialSvc.h b/GUI/coregui/Views/MaterialEditor/MaterialSvc.h index f28eb293891135cfe006598ce72cb80d1252e9a6..2fa0f6dc819e7934625c2610b3206bc1b317b707 100644 --- a/GUI/coregui/Views/MaterialEditor/MaterialSvc.h +++ b/GUI/coregui/Views/MaterialEditor/MaterialSvc.h @@ -35,12 +35,9 @@ public: static MaterialSvc *instance(); - static MaterialProperty getDefaultMaterialProperty(); - static MaterialItem *getMaterial(const MaterialProperty &property); private: - MaterialProperty this_getDefaultMaterialProperty(); MaterialItem *this_getMaterial(const MaterialProperty &property); static MaterialSvc *m_instance; diff --git a/Tests/UnitTests/GUI/TestMaterialModel.h b/Tests/UnitTests/GUI/TestMaterialModel.h index c367671c89968b82350ec64fb9dc147b5ca0643c..124b85588d4236c371ec83a204243027ce958410 100644 --- a/Tests/UnitTests/GUI/TestMaterialModel.h +++ b/Tests/UnitTests/GUI/TestMaterialModel.h @@ -127,7 +127,7 @@ inline void TestMaterialModel::test_defaultMaterialProperty() QCOMPARE(property.getIdentifier(), QString("")); // testing default material property from MaterialItemUtils - MaterialProperty property2 = MaterialItemUtils::getDefaultMaterialProperty(); + MaterialProperty property2 = MaterialItemUtils::defaultMaterialProperty(); QCOMPARE(property2.getName(), QString("Undefined")); QCOMPARE(property2.getColor(), QColor(Qt::red)); QCOMPARE(property2.getIdentifier(), QString("")); @@ -135,7 +135,7 @@ inline void TestMaterialModel::test_defaultMaterialProperty() // adding materials to the model, default property should refer to first material in a model auto mat1 = model.addMaterial("Something1", 1.0, 2.0); model.addMaterial("Something2", 3.0, 4.0); - MaterialProperty property3 = MaterialItemUtils::getDefaultMaterialProperty(); + MaterialProperty property3 = MaterialItemUtils::defaultMaterialProperty(); QCOMPARE(property3.getName(), QString("Something1")); QCOMPARE(property3.getColor(), mat1->getColor()); QCOMPARE(property3.getIdentifier(), mat1->getIdentifier());