* @brief Materializes the table folder items and re-parents them; returns the id->item map. */
| 1822 | * @brief Materializes the table folder items and re-parents them; returns the id->item map. |
| 1823 | */ |
| 1824 | QHash<int, QStandardItem*> DataModel::ProjectEditor::appendTableFolderItems( |
| 1825 | QStandardItem* tablesRoot, const QString& pathPrefix, QHash<QString, bool>& expandedStates) |
| 1826 | { |
| 1827 | const auto& folders = DataModel::ProjectModel::instance().editorTableFolders(); |
| 1828 | |
| 1829 | QHash<int, QStandardItem*> folderItems; |
| 1830 | for (const auto& f : folders) { |
| 1831 | auto* item = new QStandardItem(f.title); |
| 1832 | item->setData(f.title, TreeViewText); |
| 1833 | item->setData(QStringLiteral("qrc:/icons/project-editor/treeview/folder.svg"), TreeViewIcon); |
| 1834 | item->setData(-1, TreeViewFrameIndex); |
| 1835 | item->setData(KindTableFolder, TreeItemKind); |
| 1836 | item->setData(f.folderId, TreeItemId); |
| 1837 | item->setData(f.parentFolderId, TreeItemParentId); |
| 1838 | |
| 1839 | const QString fPath = pathPrefix + QStringLiteral("/") + folderDisplayPath(folders, f.folderId); |
| 1840 | restoreExpandedStateMap(item, expandedStates, fPath); |
| 1841 | folderItems.insert(f.folderId, item); |
| 1842 | } |
| 1843 | |
| 1844 | for (const auto& f : folders) { |
| 1845 | auto* item = folderItems.value(f.folderId); |
| 1846 | QStandardItem* parent = (f.parentFolderId != -1 && folderItems.contains(f.parentFolderId)) |
| 1847 | ? folderItems.value(f.parentFolderId) |
| 1848 | : tablesRoot; |
| 1849 | parent->appendRow(item); |
| 1850 | m_tableFolderItems.insert(item, f.folderId); |
| 1851 | } |
| 1852 | |
| 1853 | return folderItems; |
| 1854 | } |
| 1855 | |
| 1856 | /** |
| 1857 | * @brief Builds a workspace tree item from a workspace record. |
nothing calls this directly
no test coverage detected