void Autocorrect::uppercaseFirstCharOfSentence() { if (! m_uppercaseFirstCharOfSentence) return; int startPos = m_cursor.selectionStart(); QTextBlock block = m_cursor.block(); m_cursor.setPosition(block.position()); m_cursor.setPosition(startPos, QTextCursor::KeepAnchor); int position = m_cursor.selectionEnd(); QString text = m_cursor.selectedText(); if (text.isEmpty()) // start of a paragraph m_word.replace(0, 1, m_word.at(0).toUpper()); else { QString::ConstIterator constIter = text.constEnd(); constIter--; while (constIter != text.constBegin()) { while (constIter != text.begin() && constIter->isSpace()) { constIter--; position--; } if (constIter != text.constBegin() && (*constIter == QChar('.') || *constIter == QChar('!') || *constIter == QChar('?'))) { constIter--; while (constIter != text.constBegin() && !(constIter->isLetter())) { position--; constIter--; } bool replace = true; selectWord(m_cursor, --position); QString prevWord = m_cursor.selectedText(); // search for exception if (m_upperCaseExceptions.contains(prevWord.trimmed())) replace = false; if (replace) m_word.replace(0, 1, m_word.at(0).toUpper()); break; } else break; } } m_cursor.setPosition(startPos); m_cursor.setPosition(startPos + m_word.length(), QTextCursor::KeepAnchor); }
void Parser::init() { //_state.set("send_commit"); _state.set("addBasicItem", [this] (lua::String elementType, lua::String elementText, lua::Pointer parentPointer, lua::Integer elementIndex) -> lua::Pointer { //elementText. QString text = elementText; QString onlyText; QString afterText; QString::ConstIterator it; for (it = text.constBegin(); it != text.constEnd(); it++) { //qDebug() << "--------- " << *it << " space:"<<it->isSpace() <<" isLN:"<<it->isLetterOrNumber() <<" isPrint:"<<it->isPrint() <<" isSymbol:"<<it->isSymbol(); if (it->isSpace()) { //afterText += *it; } else { onlyText += *it; } } qDebug()<<" >"<< onlyText <<"<>"<<afterText; Item *newItem= new TextItem( elementType, onlyText, StyleUtil::instance()->getStyle(elementType), static_cast<Layout*>(parentPointer)); emit addElementItem(newItem); if (!afterText.isEmpty()){ Item *newItem= new BlankItem( elementType, afterText, StyleUtil::instance()->getStyle(elementType), static_cast<Layout*>(parentPointer)); emit addElementItem(newItem); } return newItem; }); _state.set("addBasicLayout", [this] (lua::String elementType, lua::Pointer parentPointer, lua::Integer elementIndex) -> lua::Pointer { Layout *newLayout= new Layout( elementType, StyleUtil::instance()->getStyle(elementType), static_cast<Layout*>(parentPointer)); emit addElementLayout(newLayout); return newLayout; }); _state.doFile("scripts/init.lua"); _state.doFile("scripts/core.lua"); }
QString OpenSearchManager::trimmedEngineName(const QString &engineName) const { QString trimmed; QString::ConstIterator constIter = engineName.constBegin(); while (constIter != engineName.constEnd()) { if (constIter->isSpace()) { trimmed.append('-'); } else if (*constIter != '.') { trimmed.append(constIter->toLower()); } constIter++; } return trimmed; }
void Changecase::initialCaps() { QTextBlock block = m_document->findBlock(m_startPosition); int pos = block.position(); bool finished = false; bool foundToBeChanged = false; while (true) { QString text = block.text(); QString result; bool space = true; QString::ConstIterator constIter = text.constBegin(); while (pos < m_endPosition && constIter != text.constEnd()) { bool isSpace = constIter->isSpace(); if (pos >= m_startPosition) { if (space && !isSpace) { if (!foundToBeChanged && constIter->isLower()) foundToBeChanged = true; result.append(constIter->toTitleCase()); } else result.append(*constIter); } space = isSpace; pos++; constIter++; } if (!(block.isValid() && block.position() + block.length() < m_endPosition)) finished = true; if (foundToBeChanged) { m_cursor.setPosition(qMax(m_startPosition, block.position())); m_cursor.setPosition(qMin(pos, m_endPosition), QTextCursor::KeepAnchor); m_cursor.insertText(result); } if (finished) break; block = block.next(); pos = block.position(); } }