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

Method onDatasetItemChanged

app/src/DataModel/ProjectEditor.cpp:4671–4733  ·  view source on GitHub ↗

* @brief Dispatches dataset form edits to ProjectModel, rebuilding only on tree-visible changes. */

Source from the content-addressed store, hash-verified

4669 * @brief Dispatches dataset form edits to ProjectModel, rebuilding only on tree-visible changes.
4670 */
4671void DataModel::ProjectEditor::onDatasetItemChanged(QStandardItem* item)
4672{
4673 if (!item)
4674 return;
4675
4676 const auto idInt = static_cast<DatasetItem>(item->data(ParameterType).toInt());
4677 const auto value = item->data(EditableValue);
4678
4679 if (idInt == kDatasetView_Widget) {
4680 const int widgetIdx = value.toInt();
4681 if (widgetIdx < 0 || widgetIdx >= m_datasetWidgets.size())
4682 return;
4683 }
4684 if (idInt == kDatasetView_Plot) {
4685 const int plotIdx = value.toInt();
4686 if (plotIdx < 0 || plotIdx >= m_plotOptions.size())
4687 return;
4688 }
4689 if (idInt == kDatasetView_FFT_Samples) {
4690 const int sampleIdx = value.toInt();
4691 if (sampleIdx < 0 || sampleIdx >= m_fftSamples.size())
4692 return;
4693 }
4694
4695 onDatasetCommonItemChanged(item, m_selectedDataset);
4696 onDatasetWidgetItemChanged(item, m_selectedDataset);
4697 onDatasetRangeItemChanged(item, m_selectedDataset);
4698 onDatasetFftItemChanged(item, m_selectedDataset);
4699 onDatasetFlagItemChanged(item, m_selectedDataset);
4700
4701 auto& pm = DataModel::ProjectModel::instance();
4702 const auto groupId = m_selectedDataset.groupId;
4703 const auto datasetId = m_selectedDataset.datasetId;
4704
4705 if (idInt == kDatasetView_Title) {
4706 const auto newTitle = m_selectedDataset.title;
4707 pm.updateDataset(groupId, datasetId, m_selectedDataset, false);
4708
4709 for (auto it = m_datasetItems.begin(); it != m_datasetItems.end(); ++it) {
4710 if (it.value().groupId != groupId || it.value().datasetId != datasetId)
4711 continue;
4712
4713 auto* treeItem = it.key();
4714 treeItem->setText(newTitle);
4715 treeItem->setData(newTitle, TreeViewText);
4716 m_datasetItems[treeItem].title = newTitle;
4717 break;
4718 }
4719
4720 Q_EMIT selectedTextChanged();
4721 Q_EMIT datasetOptionsChanged();
4722 Q_EMIT editableOptionsChanged();
4723 return;
4724 }
4725
4726 const bool rebuildTree = (idInt == kDatasetView_Index);
4727 pm.updateDataset(groupId, datasetId, m_selectedDataset, rebuildTree);
4728 if (!rebuildTree)

Callers

nothing calls this directly

Calls 6

updateDatasetMethod · 0.80
beginMethod · 0.80
keyMethod · 0.80
dataMethod · 0.45
sizeMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected