void CharacterData::appendData(const String& data) { String newStr = m_data + data; setDataAndUpdate(newStr, m_data.length(), 0, data.length()); // FIXME: Should we call textInserted here? }
void CharacterData::appendData(const String& data, ExceptionCode&) { String newStr = m_data; newStr.append(data); setDataAndUpdate(newStr, m_data.length(), 0, data.length()); // FIXME: Should we call textInserted here? }
void CharacterData::setData(const String& data, ExceptionCode&) { StringImpl* dataImpl = data.impl() ? data.impl() : StringImpl::empty(); if (equal(m_data.get(), dataImpl)) return; unsigned oldLength = length(); setDataAndUpdate(dataImpl, 0, oldLength, dataImpl->length()); document()->textRemoved(this, 0, oldLength); }
void CharacterData::setData(const String& data, ExceptionCode&) { const String& nonNullData = !data.isNull() ? data : emptyString(); if (m_data == nonNullData) return; unsigned oldLength = length(); setDataAndUpdate(nonNullData, 0, oldLength, nonNullData.length()); document()->textRemoved(this, 0, oldLength); }
void CharacterData::insertData(unsigned offset, const String& data, ExceptionCode& ec) { checkCharDataOperation(offset, ec); if (ec) return; String newStr = m_data; newStr.insert(data, offset); setDataAndUpdate(newStr, offset, 0, data.length()); document()->textInserted(this, offset, data.length()); }
void CharacterData::setData(const String& data) { const String& nonNullData = !data.isNull() ? data : emptyString(); if (m_data == nonNullData) return; RefPtr<CharacterData> protect(this); unsigned oldLength = length(); setDataAndUpdate(nonNullData, 0, oldLength, nonNullData.length()); document().didRemoveText(this, 0, oldLength); }
void CharacterData::deleteData(unsigned offset, unsigned count, ExceptionState& exceptionState, RecalcStyleBehavior recalcStyleBehavior) { unsigned realCount = 0; if (!validateOffsetCount(offset, count, length(), realCount, exceptionState)) return; String newStr = m_data; newStr.remove(offset, realCount); setDataAndUpdate(newStr, offset, realCount, 0, recalcStyleBehavior); document().didRemoveText(this, offset, realCount); }
void CharacterData::insertData(unsigned offset, const String& data, ExceptionState& exceptionState, RecalcStyleBehavior recalcStyleBehavior) { if (offset > length()) { exceptionState.ThrowDOMException(IndexSizeError, "The offset " + String::number(offset) + " is greater than the node's length (" + String::number(length()) + ")."); return; } String newStr = m_data; newStr.insert(data, offset); setDataAndUpdate(newStr, offset, 0, data.length(), recalcStyleBehavior); document().didInsertText(this, offset, data.length()); }
void CharacterData::deleteData(unsigned offset, unsigned count, ExceptionCode& ec) { checkCharDataOperation(offset, ec); if (ec) return; count = std::min(count, length() - offset); String newStr = m_data; newStr.remove(offset, count); setDataAndUpdate(newStr, offset, count, 0); document().textRemoved(this, offset, count); }
void CharacterData::replaceData(unsigned offset, unsigned count, const String& data, ExceptionState& exceptionState) { unsigned realCount = 0; if (!validateOffsetCount(offset, count, length(), realCount, exceptionState)) return; String newStr = m_data; newStr.remove(offset, realCount); newStr.insert(data, offset); setDataAndUpdate(newStr, offset, realCount, data.length()); // update the markers for spell checking and grammar checking document().didRemoveText(this, offset, realCount); document().didInsertText(this, offset, data.length()); }
void CharacterData::replaceData(unsigned offset, unsigned count, const String& data, ExceptionCode& ec) { checkCharDataOperation(offset, ec); if (ec) return; count = std::min(count, length() - offset); String newStr = m_data; newStr.remove(offset, count); newStr.insert(data, offset); setDataAndUpdate(newStr, offset, count, data.length()); // update the markers for spell checking and grammar checking document().textRemoved(this, offset, count); document().textInserted(this, offset, data.length()); }
void CharacterData::deleteData(unsigned offset, unsigned count, ExceptionCode& ec) { checkCharDataOperation(offset, ec); if (ec) return; unsigned realCount; if (offset + count > length()) realCount = length() - offset; else realCount = count; String newStr = m_data; newStr.remove(offset, realCount); setDataAndUpdate(newStr, offset, count, 0); document()->textRemoved(this, offset, realCount); }
void CharacterData::parserAppendData(const String& data) { String newStr = m_data + data; setDataAndUpdate(newStr, m_data.length(), 0, data.length(), UpdateFromParser); }