void EditMarkerGroupDialog::sl_onEditButtonClicked() { QItemSelectionModel *m = table->selectionModel(); QModelIndexList selected = m->selectedRows(); if (1 != selected.size()) { return; } QMap<QString, QString>::iterator i = marker->getValues().begin(); i += selected.first().row(); QVariantList values; MarkerUtils::stringToValue(MarkerTypes::getDataTypeById(marker->getType()),marker->getValues().key(*i), values); QObjectScopedPointer<EditMarkerDialog> dlg = new EditMarkerDialog(false, marker->getType(), *i, values, this); const int dialogResult = dlg->exec(); CHECK(!dlg.isNull(), ); if (QDialog::Accepted == dialogResult) { QString newValueString; QString newName = dlg->getName(); MarkerUtils::valueToString(MarkerTypes::getDataTypeById(marker->getType()), dlg->getValues(), newValueString); markerModel->removeRows(selected.first().row(), 1, selected.first()); markerModel->addMarker(newValueString, newName); } }
void EditMarkerGroupDialog::sl_onAddButtonClicked() { QObjectScopedPointer<EditMarkerDialog> dlg = new EditMarkerDialog(true, marker->getType(), "", QVariantList(), this); const int dialogResult = dlg->exec(); CHECK(!dlg.isNull(), ); if (QDialog::Accepted == dialogResult) { QString valueString; QString name = dlg->getName(); MarkerUtils::valueToString(MarkerTypes::getDataTypeById(marker->getType()), dlg->getValues(), valueString); markerModel->addMarker(valueString, name); } }