示例#1
0
ObjectPtr StringDialog::createNewGeneratedString(){

  Q_ASSERT(_document && _document->objectStore());

  QString value = _stringTab->value();

//   qDebug() << "Creating new string  ===>"
//            << "\n\ttag:" << DataDialog::tagString()
//            << "\n\tvalue:" << value
//            << endl;

  StringPtr string = _document->objectStore()->createObject<String>();
  string->setValue(value);
  string->setOrphan(true);
  string->setEditable(true);
  if (DataDialog::tagStringAuto()) {
     string->setDescriptiveName(QString());
  } else {
     string->setDescriptiveName(DataDialog::tagString());
  }

  string->writeLock();
  string->registerChange();
  string->unlock();

  _dataObjectName = string->Name();

  //UpdateServer::self()->requestUpdateSignal();

  return static_cast<ObjectPtr>(string);
}
void StringSelector::fillStrings() {
    if (!_store) {
        return;
    }

    QHash<QString, StringPtr> strings;

    StringList stringList = _store->getObjects<String>();

    StringList::ConstIterator it = stringList.begin();
    for (; it != stringList.end(); ++it) {
        StringPtr string = (*it);

        string->readLock();
        strings.insert(string->Name(), string);
        string->unlock();
    }

    QStringList list = strings.keys();

    qSort(list);

    StringPtr current = selectedString();

    _string->clear();
    foreach (QString string, list) {
        StringPtr s = strings.value(string);
        _string->addItem(string, qVariantFromValue(s.data()));
    }