* @brief Adds a folder under @p parentFolderId (-1 = top level); returns its new id. */
| 6042 | * @brief Adds a folder under @p parentFolderId (-1 = top level); returns its new id. |
| 6043 | */ |
| 6044 | int DataModel::ProjectModel::addWorkspaceFolder(int parentFolderId, const QString& title) |
| 6045 | { |
| 6046 | if (AppState::instance().operationMode() != SerialStudio::ProjectFile) |
| 6047 | return -1; |
| 6048 | |
| 6049 | if (!m_customizeWorkspaces) |
| 6050 | setCustomizeWorkspaces(true); |
| 6051 | |
| 6052 | if (parentFolderId != -1 && !folderExists(m_workspaceFolders, parentFolderId)) |
| 6053 | parentFolderId = -1; |
| 6054 | |
| 6055 | int newId = 1; |
| 6056 | for (const auto& f : std::as_const(m_workspaceFolders)) |
| 6057 | if (f.folderId >= newId) |
| 6058 | newId = f.folderId + 1; |
| 6059 | |
| 6060 | DataModel::WorkspaceFolder folder; |
| 6061 | folder.folderId = newId; |
| 6062 | folder.parentFolderId = parentFolderId; |
| 6063 | folder.title = title.simplified().isEmpty() ? tr("Folder") : title.simplified(); |
| 6064 | m_workspaceFolders.push_back(folder); |
| 6065 | |
| 6066 | setModified(true); |
| 6067 | Q_EMIT editorWorkspacesChanged(); |
| 6068 | Q_EMIT activeWorkspacesChanged(); |
| 6069 | return newId; |
| 6070 | } |
| 6071 | |
| 6072 | /** |
| 6073 | * @brief Renames a workspace folder; ignores empty names. |
nothing calls this directly
no test coverage detected