Esempio n. 1
0
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;
}
Esempio n. 2
0
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);
}