예제 #1
0
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();
}
예제 #2
0
/** 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();
}
예제 #3
0
/** 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();
}