* @brief Deletes the dataset at @p groupId/@p datasetId. */
| 7914 | * @brief Deletes the dataset at @p groupId/@p datasetId. |
| 7915 | */ |
| 7916 | void DataModel::ProjectModel::deleteDataset(int groupId, int datasetId, bool confirm) |
| 7917 | { |
| 7918 | if (groupId < 0 || static_cast<size_t>(groupId) >= m_groups.size()) |
| 7919 | return; |
| 7920 | |
| 7921 | if (datasetId < 0 || static_cast<size_t>(datasetId) >= m_groups[groupId].datasets.size()) |
| 7922 | return; |
| 7923 | |
| 7924 | const auto previousSelection = m_selectedDataset; |
| 7925 | setSelectedDataset(m_groups[groupId].datasets[datasetId]); |
| 7926 | |
| 7927 | const bool previousSuppress = m_suppressMessageBoxes; |
| 7928 | m_suppressMessageBoxes = !confirm; |
| 7929 | deleteCurrentDataset(); |
| 7930 | m_suppressMessageBoxes = previousSuppress; |
| 7931 | |
| 7932 | if (previousSelection.groupId >= 0 |
| 7933 | && static_cast<size_t>(previousSelection.groupId) < m_groups.size() |
| 7934 | && previousSelection.datasetId >= 0 |
| 7935 | && static_cast<size_t>(previousSelection.datasetId) |
| 7936 | < m_groups[previousSelection.groupId].datasets.size() |
| 7937 | && !(previousSelection.groupId == groupId && previousSelection.datasetId == datasetId)) |
| 7938 | setSelectedDataset(m_groups[previousSelection.groupId].datasets[previousSelection.datasetId]); |
| 7939 | } |
| 7940 | |
| 7941 | /** |
| 7942 | * @brief Duplicates the dataset at @p groupId/@p datasetId. |