MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / appendGroupFolderItems

Method appendGroupFolderItems

app/src/DataModel/ProjectEditor.cpp:1697–1736  ·  view source on GitHub ↗

* @brief Materializes the group folder items and re-parents them; returns the id->item map. */

Source from the content-addressed store, hash-verified

1695 * @brief Materializes the group folder items and re-parents them; returns the id->item map.
1696 */
1697QHash<int, QStandardItem*> DataModel::ProjectEditor::appendGroupFolderItems(
1698 QStandardItem* groupsRoot, const QString& pathPrefix, QHash<QString, bool>& expandedStates)
1699{
1700 const auto& folders = DataModel::ProjectModel::instance().editorGroupFolders();
1701 const auto& groups = DataModel::ProjectModel::instance().groups();
1702
1703 QHash<int, bool> folderHasGroup;
1704 QHash<int, bool> folderHasEnabled;
1705 accumulateFolderEnabled(folders, groups, folderHasGroup, folderHasEnabled);
1706
1707 QHash<int, QStandardItem*> folderItems;
1708 for (const auto& f : folders) {
1709 const bool folderEnabled =
1710 !folderHasGroup.value(f.folderId, false) || folderHasEnabled.value(f.folderId, false);
1711
1712 auto* item = new QStandardItem(f.title);
1713 item->setData(f.title, TreeViewText);
1714 item->setData(QStringLiteral("qrc:/icons/project-editor/treeview/folder.svg"), TreeViewIcon);
1715 item->setData(-1, TreeViewFrameIndex);
1716 item->setData(KindGroupFolder, TreeItemKind);
1717 item->setData(f.folderId, TreeItemId);
1718 item->setData(f.parentFolderId, TreeItemParentId);
1719 item->setData(folderEnabled, TreeViewEnabled);
1720
1721 const QString fPath = pathPrefix + QStringLiteral("/") + folderDisplayPath(folders, f.folderId);
1722 restoreExpandedStateMap(item, expandedStates, fPath);
1723 folderItems.insert(f.folderId, item);
1724 }
1725
1726 for (const auto& f : folders) {
1727 auto* item = folderItems.value(f.folderId);
1728 QStandardItem* parent = (f.parentFolderId != -1 && folderItems.contains(f.parentFolderId))
1729 ? folderItems.value(f.parentFolderId)
1730 : groupsRoot;
1731 parent->appendRow(item);
1732 m_groupFolderItems.insert(item, f.folderId);
1733 }
1734
1735 return folderItems;
1736}
1737
1738/**
1739 * @brief Appends the "Shared Memory" subtree (Pro only) with system + user tables.

Callers

nothing calls this directly

Calls 4

accumulateFolderEnabledFunction · 0.85
folderDisplayPathFunction · 0.85
valueMethod · 0.45
containsMethod · 0.45

Tested by

no test coverage detected