Commit 9822fb65 authored by Roopesh Chander's avatar Roopesh Chander Committed by Thorbjørn Lindeijer
Browse files

cleanWhitespace() checkes whether it has to change indentation or not. handle that.

parent fde76601
......@@ -327,7 +327,7 @@ void BaseTextDocument::cleanWhitespace(QTextCursor& cursor, bool cleanIndentatio
cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor, trailing);
cursor.removeSelectedText();
}
if (cleanIndentation && !m_tabSettings.isIndentationClean(blockText)) {
if (cleanIndentation && !m_tabSettings.isIndentationClean(block)) {
cursor.setPosition(block.position());
int firstNonSpace = m_tabSettings.firstNonSpace(blockText);
if (firstNonSpace == blockText.length()) {
......
......@@ -149,10 +149,12 @@ int TabSettings::trailingWhitespaces(const QString &text) const
return i;
}
bool TabSettings::isIndentationClean(const QString &text) const
bool TabSettings::isIndentationClean(const QTextBlock &block) const
{
int i = 0;
int spaceCount = 0;
QString text = block.text();
bool spacesForTabs = guessSpacesForTabs(block);
while (i < text.size()) {
QChar c = text.at(i);
if (!c.isSpace())
......@@ -160,10 +162,10 @@ bool TabSettings::isIndentationClean(const QString &text) const
if (c == QLatin1Char(' ')) {
++spaceCount;
if (!m_spacesForTabs && spaceCount == m_tabSize)
if (!spacesForTabs && spaceCount == m_tabSize)
return false;
} else if (c == QLatin1Char('\t')) {
if (m_spacesForTabs || spaceCount != m_indentSize)
if (spacesForTabs || spaceCount != m_indentSize)
return false;
spaceCount = 0;
}
......
......@@ -72,7 +72,7 @@ struct TEXTEDITOR_EXPORT TabSettings
void reindentLine(QTextBlock block, int delta) const;
int trailingWhitespaces(const QString &text) const;
bool isIndentationClean(const QString &text) const;
bool isIndentationClean(const QTextBlock &block) const;
bool tabShouldIndent(const QTextDocument *document, QTextCursor cursor, int *suggestedPosition = 0) const;
bool guessSpacesForTabs(const QTextBlock& block) const;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment