Merge branch '0.9.1-beta' of git@scm.dev.nokia.troll.no:creator/mainline into 0.9.1-beta

This commit is contained in:
hjk
2008-12-11 15:01:55 +01:00
3 changed files with 26 additions and 14 deletions

View File

@@ -107,6 +107,8 @@ void TypeOfExpression::processEnvironment(QMap<QString, Document::Ptr> documents
Document::Ptr doc, Environment *env, Document::Ptr doc, Environment *env,
QSet<QString> *processed) const QSet<QString> *processed) const
{ {
if (! doc)
return;
if (processed->contains(doc->fileName())) if (processed->contains(doc->fileName()))
return; return;
processed->insert(doc->fileName()); processed->insert(doc->fileName());

View File

@@ -744,7 +744,8 @@ void CPPEditor::unCommentSelection()
QString endText = endBlock.text(); QString endText = endBlock.text();
int endPos = end - endBlock.position(); int endPos = end - endBlock.position();
bool hasTrailingCharacters = !endText.mid(endPos).trimmed().isEmpty(); bool hasTrailingCharacters = !endText.left(endPos).remove(QLatin1String("//")).trimmed().isEmpty()
&& !endText.mid(endPos).trimmed().isEmpty();
if ((endPos <= endText.length() - 2 if ((endPos <= endText.length() - 2
&& endText.at(endPos) == QLatin1Char('*') && endText.at(endPos) == QLatin1Char('*')
&& endText.at(endPos+1) == QLatin1Char('/'))) { && endText.at(endPos+1) == QLatin1Char('/'))) {

View File

@@ -735,12 +735,15 @@ void BaseTextEditor::moveLineUpDown(bool up)
move.clearSelection(); move.clearSelection();
move.insertText(text); move.insertText(text);
int end = move.position(); int end = move.position();
move.endEditBlock();
if (hasSelection) { if (hasSelection) {
move.setPosition(start); move.setPosition(start);
move.setPosition(end, QTextCursor::KeepAnchor); move.setPosition(end, QTextCursor::KeepAnchor);
} }
indent(document(), move, QChar::Null);
move.endEditBlock();
setTextCursor(move); setTextCursor(move);
} }
@@ -2765,6 +2768,8 @@ void BaseTextEditor::handleHomeKey(bool anchor)
while (character == tab || character.category() == QChar::Separator_Space) { while (character == tab || character.category() == QChar::Separator_Space) {
++pos; ++pos;
if (pos == initpos)
break;
character = characterAt(pos); character = characterAt(pos);
} }
@@ -2952,12 +2957,13 @@ void BaseTextEditor::markBlocksAsChanged(QList<int> blockNumbers) {
TextBlockUserData::MatchType TextBlockUserData::checkOpenParenthesis(QTextCursor *cursor, QChar c) TextBlockUserData::MatchType TextBlockUserData::checkOpenParenthesis(QTextCursor *cursor, QChar c)
{ {
if (!TextEditDocumentLayout::hasParentheses(cursor->block())) QTextBlock block = cursor->block();
if (!TextEditDocumentLayout::hasParentheses(block) || TextEditDocumentLayout::ifdefedOut(block))
return NoMatch; return NoMatch;
Parentheses parenList = TextEditDocumentLayout::parentheses(cursor->block()); Parentheses parenList = TextEditDocumentLayout::parentheses(block);
Parenthesis openParen, closedParen; Parenthesis openParen, closedParen;
QTextBlock closedParenParag = cursor->block(); QTextBlock closedParenParag = block;
const int cursorPos = cursor->position() - closedParenParag.position(); const int cursorPos = cursor->position() - closedParenParag.position();
int i = 0; int i = 0;
@@ -2982,7 +2988,8 @@ TextBlockUserData::MatchType TextBlockUserData::checkOpenParenthesis(QTextCursor
closedParenParag = closedParenParag.next(); closedParenParag = closedParenParag.next();
if (!closedParenParag.isValid()) if (!closedParenParag.isValid())
return NoMatch; return NoMatch;
if (TextEditDocumentLayout::hasParentheses(closedParenParag)) { if (TextEditDocumentLayout::hasParentheses(closedParenParag)
&& !TextEditDocumentLayout::ifdefedOut(closedParenParag)) {
parenList = TextEditDocumentLayout::parentheses(closedParenParag); parenList = TextEditDocumentLayout::parentheses(closedParenParag);
break; break;
} }
@@ -3019,12 +3026,13 @@ TextBlockUserData::MatchType TextBlockUserData::checkOpenParenthesis(QTextCursor
TextBlockUserData::MatchType TextBlockUserData::checkClosedParenthesis(QTextCursor *cursor, QChar c) TextBlockUserData::MatchType TextBlockUserData::checkClosedParenthesis(QTextCursor *cursor, QChar c)
{ {
if (!TextEditDocumentLayout::hasParentheses(cursor->block())) QTextBlock block = cursor->block();
if (!TextEditDocumentLayout::hasParentheses(block) || TextEditDocumentLayout::ifdefedOut(block))
return NoMatch; return NoMatch;
Parentheses parenList = TextEditDocumentLayout::parentheses(cursor->block()); Parentheses parenList = TextEditDocumentLayout::parentheses(block);
Parenthesis openParen, closedParen; Parenthesis openParen, closedParen;
QTextBlock openParenParag = cursor->block(); QTextBlock openParenParag = block;
const int cursorPos = cursor->position() - openParenParag.position(); const int cursorPos = cursor->position() - openParenParag.position();
int i = parenList.count() - 1; int i = parenList.count() - 1;
@@ -3050,7 +3058,8 @@ TextBlockUserData::MatchType TextBlockUserData::checkClosedParenthesis(QTextCurs
if (!openParenParag.isValid()) if (!openParenParag.isValid())
return NoMatch; return NoMatch;
if (TextEditDocumentLayout::hasParentheses(openParenParag)) { if (TextEditDocumentLayout::hasParentheses(openParenParag)
&& !TextEditDocumentLayout::ifdefedOut(openParenParag)) {
parenList = TextEditDocumentLayout::parentheses(openParenParag); parenList = TextEditDocumentLayout::parentheses(openParenParag);
break; break;
} }
@@ -3092,7 +3101,7 @@ bool TextBlockUserData::findPreviousOpenParenthesis(QTextCursor *cursor, bool se
int ignore = 0; int ignore = 0;
while (block.isValid()) { while (block.isValid()) {
Parentheses parenList = TextEditDocumentLayout::parentheses(block); Parentheses parenList = TextEditDocumentLayout::parentheses(block);
if (!parenList.isEmpty()) { if (!parenList.isEmpty() && !TextEditDocumentLayout::ifdefedOut(block)) {
for (int i = parenList.count()-1; i >= 0; --i) { for (int i = parenList.count()-1; i >= 0; --i) {
Parenthesis paren = parenList.at(i); Parenthesis paren = parenList.at(i);
if (block == cursor->block() && position - block.position() <= paren.pos + 1) if (block == cursor->block() && position - block.position() <= paren.pos + 1)
@@ -3119,7 +3128,7 @@ bool TextBlockUserData::findNextClosingParenthesis(QTextCursor *cursor, bool sel
int ignore = 0; int ignore = 0;
while (block.isValid()) { while (block.isValid()) {
Parentheses parenList = TextEditDocumentLayout::parentheses(block); Parentheses parenList = TextEditDocumentLayout::parentheses(block);
if (!parenList.isEmpty()) { if (!parenList.isEmpty() && !TextEditDocumentLayout::ifdefedOut(block)) {
for (int i = 0; i < parenList.count(); ++i) { for (int i = 0; i < parenList.count(); ++i) {
Parenthesis paren = parenList.at(i); Parenthesis paren = parenList.at(i);
if (block == cursor->block() && position - block.position() >= paren.pos) if (block == cursor->block() && position - block.position() >= paren.pos)
@@ -3144,7 +3153,7 @@ TextBlockUserData::MatchType TextBlockUserData::matchCursorBackward(QTextCursor
cursor->clearSelection(); cursor->clearSelection();
const QTextBlock block = cursor->block(); const QTextBlock block = cursor->block();
if (!TextEditDocumentLayout::hasParentheses(block)) if (!TextEditDocumentLayout::hasParentheses(block) || TextEditDocumentLayout::ifdefedOut(block))
return NoMatch; return NoMatch;
const int relPos = cursor->position() - block.position(); const int relPos = cursor->position() - block.position();
@@ -3166,7 +3175,7 @@ TextBlockUserData::MatchType TextBlockUserData::matchCursorForward(QTextCursor *
cursor->clearSelection(); cursor->clearSelection();
const QTextBlock block = cursor->block(); const QTextBlock block = cursor->block();
if (!TextEditDocumentLayout::hasParentheses(block)) if (!TextEditDocumentLayout::hasParentheses(block) || TextEditDocumentLayout::ifdefedOut(block))
return NoMatch; return NoMatch;
const int relPos = cursor->position() - block.position(); const int relPos = cursor->position() - block.position();