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())); }