KstString::KstString(KstObjectTag in_tag, KstObject *provider, const QString& val, bool orphan) : KstPrimitive(provider), _value(val), _orphan(orphan), _editable(false) { QString _tag = in_tag.tag(); if (!in_tag.isValid()) { QString nt = i18n("Anonymous String %1"); do { _tag = nt.arg(anonymousStringCounter++); } while (KstData::self()->vectorTagNameNotUniqueInternal(_tag)); // FIXME: why vector? KstObject::setTagName(KstObjectTag(_tag, in_tag.context())); } else { KstObject::setTagName(KST::suggestUniqueStringTag(in_tag)); } KST::stringList.lock().writeLock(); KST::stringList.append(this); KST::stringList.lock().unlock(); }
/** Create the base scalar */ KstScalar::KstScalar(KstObjectTag in_tag, KstObject *provider, double val, bool orphan, bool displayable, bool editable) : KstPrimitive(provider), _value(val), _orphan(orphan), _displayable(displayable), _editable(editable) { QString _tag = in_tag.tag(); if (_tag.isEmpty()) { QString nt = QObject::tr("Anonymous Scalar %1"); do { _tag = nt.arg(iAnonymousScalarCounter++); } while (KstData::self()->vectorTagNameNotUniqueInternal(_tag)); // FIXME: why vector? KstObject::setTag(KstObjectTag(_tag, in_tag.context())); } else { KstObject::setTag(KST::suggestUniqueScalarTag(in_tag)); } KST::scalarList.lock().writeLock(); KST::scalarList.append(this); KST::scalarList.lock().unlock(); }
/** Create a vector */ KstVector::KstVector(KstObjectTag in_tag, int size, KstObject *provider, bool isScalarList) : KstPrimitive(provider), _nsum(0), _scalars(isScalarList ? 0 : 11) { //kstdDebug() << "+++ CREATING VECTOR: " << (void*) this << endl; _editable = false; NumShifted = 0; NumNew = 0; _saveData = false; _isScalarList = isScalarList; _saveable = false; if (size <= 0) { size = INITSIZE; } if (!in_tag.isValid()) { QString nt = i18n("Anonymous Vector %1"); do { KstObject::setTagName(KstObjectTag(nt.arg(anonymousVectorCounter++), in_tag.context())); } while (KstData::self()->vectorTagNameNotUnique(tagName(), false)); } else { KstObject::setTagName(KST::suggestUniqueVectorTag(in_tag)); } _v = static_cast<double*>(KST::malloc(size * sizeof(double))); if (!_v) { // Malloc failed _v = static_cast<double*>(KST::malloc(sizeof(double))); _size = 1; } else { _size = size; } _is_rising = false; createScalars(); blank(); KST::vectorList.lock().writeLock(); KST::vectorList.append(this); KST::vectorList.lock().unlock(); }