PassRefPtr<Text> Text::splitText(unsigned offset, ExceptionCode& ec) { ec = 0; if (this->parent()) {if (!RO_check(this->parent())) return 0;} // INDEX_SIZE_ERR: Raised if the specified offset is negative or greater than // the number of 16-bit units in data. if (offset > length()) { ec = INDEX_SIZE_ERR; return 0; } RefPtr<StringImpl> oldStr = dataImpl(); RefPtr<Text> newText = virtualCreate(oldStr->substring(offset)); setDataImpl(oldStr->substring(0, offset)); dispatchModifiedEvent(oldStr.get()); if (parentNode()) parentNode()->insertBefore(newText.get(), nextSibling(), ec); if (ec) return 0; if (parentNode()) document()->textNodeSplit(this); if (renderer()) toRenderText(renderer())->setTextWithOffset(dataImpl(), 0, oldStr->length()); return newText.release(); }
bool RowStoreModel::setData(QModelIndex const &index, QVariant const &value, int role) { if(ContentModule *ct = contentModule().data()) return ct->setData(index, value, role); return setDataImpl(index, value, role); }