MCPcopy Create free account
hub / github.com/FreeCAD/FreeCAD / fillMaterialTree

Method fillMaterialTree

src/Mod/Material/Gui/MaterialTreeWidget.cpp:525–569  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

523}
524
525void MaterialTreeWidget::fillMaterialTree()
526{
527 auto param = App::GetApplication().GetParameterGroupByPath(
528 "User parameter:BaseApp/Preferences/Mod/Material/TreeWidget/MaterialTree");
529
530 auto model = qobject_cast<QStandardItemModel*>(m_materialTree->model());
531
532 if (_filterOptions.includeFavorites()) {
533 auto lib = new QStandardItem(tr("Favorites"));
534 lib->setFlags(Qt::ItemIsEnabled);
535 addExpanded(model, lib, param);
536 addFavorites(lib);
537 }
538
539 if (_filterOptions.includeRecent()) {
540 auto lib = new QStandardItem(tr("Recent"));
541 lib->setFlags(Qt::ItemIsEnabled);
542 addExpanded(model, lib, param);
543 addRecents(lib);
544 }
545
546 auto libraries = Materials::MaterialManager::getManager().getLibraries();
547 for (const auto& library : *libraries) {
548 auto materialTree =
549 Materials::MaterialManager::getManager().getMaterialTree(*library,
550 _filter,
551 _filterOptions);
552
553 bool showLibraries = _filterOptions.includeEmptyLibraries();
554 if (!_filterOptions.includeEmptyLibraries() && materialTree->size() > 0) {
555 showLibraries = true;
556 }
557
558 if (showLibraries) {
559 auto lib = new QStandardItem(library->getName());
560 lib->setFlags(Qt::ItemIsEnabled);
561 addExpanded(model, lib, param);
562
563 auto icon = MaterialsEditor::getIcon(library);
564 QIcon folderIcon(QStringLiteral(":/icons/folder.svg"));
565
566 addMaterials(*lib, materialTree, folderIcon, icon, param);
567 }
568 }
569}
570
571void MaterialTreeWidget::addExpanded(QStandardItem* parent, QStandardItem* child)
572{

Callers

nothing calls this directly

Calls 10

addMaterialsFunction · 0.85
modelMethod · 0.80
includeFavoritesMethod · 0.80
includeRecentMethod · 0.80
includeEmptyLibrariesMethod · 0.80
getIconFunction · 0.50
getMaterialTreeMethod · 0.45
sizeMethod · 0.45
getNameMethod · 0.45

Tested by

no test coverage detected