ObjectPtr ScalarDialog::createNewVScalar() { const DataSourcePtr dataSource = _scalarTab->dataSource(); if (!dataSource) return 0; const QString field = _scalarTab->fieldRV(); const int f0 = _scalarTab->F0(); Q_ASSERT(_document && _document->objectStore()); VScalarPtr scalar = _document->objectStore()->createObject<VScalar>(); scalar->writeLock(); scalar->change(dataSource, field, f0); if (DataDialog::tagStringAuto()) { scalar->setDescriptiveName(QString()); } else { scalar->setDescriptiveName(DataDialog::tagString()); } scalar->registerChange(); scalar->unlock(); _dataObjectName = scalar->Name(); return scalar; }
PrimitivePtr VScalar::makeDuplicate() const { Q_ASSERT(store()); VScalarPtr scalar = store()->createObject<VScalar>(); scalar->writeLock(); scalar->change(dataSource(), _field, _f0); if (descriptiveNameIsManual()) { scalar->setDescriptiveName(descriptiveName()); } scalar->registerChange(); scalar->unlock(); return kst_cast<Primitive>(scalar); }