void XMLDocumentParser::parseCharacters() { if (!m_leafTextNode) enterText(); ExceptionCode ec = 0; m_leafTextNode->appendData(m_stream.text(), ec); }
void XMLDocumentParser::parseCharacters() { if (!m_currentNode->isTextNode()) enterText(); ExceptionCode ec = 0; static_cast<Text*>(m_currentNode)->appendData(m_stream.text(), ec); }
void XMLDocumentParser::parse() { while (!isStopped() && !m_parserPaused && !m_stream.atEnd()) { m_stream.readNext(); switch (m_stream.tokenType()) { case QXmlStreamReader::StartDocument: startDocument(); break; case QXmlStreamReader::EndDocument: endDocument(); break; case QXmlStreamReader::StartElement: parseStartElement(); break; case QXmlStreamReader::EndElement: parseEndElement(); break; case QXmlStreamReader::Characters: { if (m_stream.isCDATA()) { //cdata parseCdata(); } else { //characters parseCharacters(); } break; } case QXmlStreamReader::Comment: parseComment(); break; case QXmlStreamReader::DTD: //qDebug()<<"------------- DTD"; parseDtd(); break; case QXmlStreamReader::EntityReference: { //qDebug()<<"---------- ENTITY = "<<m_stream.name().toString() // <<", t = "<<m_stream.text().toString(); if (isXHTMLDocument()) { QString entity = m_stream.name().toString(); if (!m_leafTextNode) enterText(); // qDebug()<<" ------- adding entity "<<str; m_leafTextNode->appendData(decodeNamedEntity(entity), IGNORE_EXCEPTION); } break; } case QXmlStreamReader::ProcessingInstruction: parseProcessingInstruction(); break; default: { if (m_stream.error() != QXmlStreamReader::PrematureEndOfDocumentError) { XMLErrors::ErrorType type = (m_stream.error() == QXmlStreamReader::NotWellFormedError) ? XMLErrors::fatal : XMLErrors::warning; handleError(type, qPrintable(m_stream.errorString()), textPosition()); } break; } } } }
void XMLTreeBuilder::appendToText(const UChar* text, size_t length) { enterText(); if (!m_leafText) return; m_leafText->append(text, length); }
void XMLDocumentParser::parse() { while (!isStopped() && !m_parserPaused && !m_stream.atEnd()) { m_stream.readNext(); switch (m_stream.tokenType()) { case QXmlStreamReader::StartDocument: { startDocument(); } break; case QXmlStreamReader::EndDocument: { endDocument(); } break; case QXmlStreamReader::StartElement: { #if ENABLE(XHTMLMP) if (document()->isXHTMLMPDocument() && !m_hasDocTypeDeclaration) { handleError(fatal, "DOCTYPE declaration lost.", lineNumber(), columnNumber()); break; } #endif parseStartElement(); } break; case QXmlStreamReader::EndElement: { parseEndElement(); } break; case QXmlStreamReader::Characters: { if (m_stream.isCDATA()) { //cdata parseCdata(); } else { //characters parseCharacters(); } } break; case QXmlStreamReader::Comment: { parseComment(); } break; case QXmlStreamReader::DTD: { //qDebug()<<"------------- DTD"; parseDtd(); #if ENABLE(XHTMLMP) m_hasDocTypeDeclaration = true; #endif } break; case QXmlStreamReader::EntityReference: { //qDebug()<<"---------- ENTITY = "<<m_stream.name().toString() // <<", t = "<<m_stream.text().toString(); if (isXHTMLDocument() #if ENABLE(XHTMLMP) || isXHTMLMPDocument() #endif ) { QString entity = m_stream.name().toString(); UChar c = decodeNamedEntity(entity.toUtf8().constData()); if (!m_currentNode->isTextNode()) enterText(); ExceptionCode ec = 0; String str(&c, 1); // qDebug()<<" ------- adding entity "<<str; static_cast<Text*>(m_currentNode)->appendData(str, ec); } } break; case QXmlStreamReader::ProcessingInstruction: { parseProcessingInstruction(); } break; default: { if (m_stream.error() != QXmlStreamReader::PrematureEndOfDocumentError) { ErrorType type = (m_stream.error() == QXmlStreamReader::NotWellFormedError) ? fatal : warning; handleError(type, qPrintable(m_stream.errorString()), lineNumber(), columnNumber()); } } break; } } }
void XMLDocumentParser::parseCharacters() { if (!m_leafTextNode) enterText(); m_leafTextNode->appendData(m_stream.text(), IGNORE_EXCEPTION); }
void TerminalEdit::keyPressEvent(QKeyEvent *ke) { QTextCursor cur = this->textCursor(); int pos = cur.position(); int end = cur.position(); if (cur.hasSelection()) { pos = cur.selectionStart(); end = cur.selectionEnd(); } bool bReadOnly = pos < m_endPostion; if (bReadOnly && ( ke == QKeySequence::Paste || ke == QKeySequence::Cut || ke == QKeySequence::DeleteEndOfWord || ke == QKeySequence::DeleteStartOfWord)) { return; } if (ke == QKeySequence::DeleteStartOfWord) { if (!cur.hasSelection()) { cur.movePosition(QTextCursor::PreviousWord, QTextCursor::KeepAnchor); if (cur.selectionStart() < m_endPostion) { cur.movePosition(QTextCursor::Right,QTextCursor::KeepAnchor,m_endPostion-cur.selectionStart()); } } cur.removeSelectedText(); return; } if (ke->modifiers() == Qt::NoModifier || ke->modifiers() == Qt::ShiftModifier || ke->modifiers() == Qt::KeypadModifier) { if (ke->key() < Qt::Key_Escape) { if (bReadOnly) { return; } } else { if (ke->key() == Qt::Key_Backspace) { if (cur.hasSelection()) { if (bReadOnly) { return; } } else if (pos <= m_endPostion) { return; } } else if (bReadOnly && ( ke->key() == Qt::Key_Delete || ke->key() == Qt::Key_Tab || ke->key() == Qt::Key_Backtab || ke->key() == Qt::Key_Return || ke->key() == Qt::Key_Enter)) { return; } if (ke->key() == Qt::Key_Return || ke->key() == Qt::Key_Enter) { cur.setPosition(end,QTextCursor::MoveAnchor); cur.setPosition(m_endPostion,QTextCursor::KeepAnchor); #ifdef Q_OS_WIN emit enterText(cur.selectedText()+"\r\n"); #else emit enterText(cur.selectedText()+"\n"); #endif QPlainTextEdit::keyPressEvent(ke); QTextCursor cur = this->textCursor(); cur.movePosition(QTextCursor::End); m_endPostion = cur.position(); return; } } } QPlainTextEdit::keyPressEvent(ke); }