aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorRoopesh Chander <roop@forwardbias.in>2009-10-31 15:26:45 +0530
committerThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2010-02-08 16:59:10 +0100
commit9822fb65df6d0514bfdb48b79d72824f3e6d5781 (patch)
tree1544c9efb67057e45dd9b85c329e4a9a265e03c2 /src/plugins
parentfde766016aedff7f9f7aa6be2eb073a244612cf8 (diff)
cleanWhitespace() checkes whether it has to change indentation or not. handle that.
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/texteditor/basetextdocument.cpp2
-rw-r--r--src/plugins/texteditor/tabsettings.cpp8
-rw-r--r--src/plugins/texteditor/tabsettings.h2
3 files changed, 7 insertions, 5 deletions
diff --git a/src/plugins/texteditor/basetextdocument.cpp b/src/plugins/texteditor/basetextdocument.cpp
index 2e57eafd13d..7d598cc07bb 100644
--- a/src/plugins/texteditor/basetextdocument.cpp
+++ b/src/plugins/texteditor/basetextdocument.cpp
@@ -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()) {
diff --git a/src/plugins/texteditor/tabsettings.cpp b/src/plugins/texteditor/tabsettings.cpp
index 10fe3bb49ed..efc40526947 100644
--- a/src/plugins/texteditor/tabsettings.cpp
+++ b/src/plugins/texteditor/tabsettings.cpp
@@ -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;
}
diff --git a/src/plugins/texteditor/tabsettings.h b/src/plugins/texteditor/tabsettings.h
index d6bd2b0afeb..88950bd597c 100644
--- a/src/plugins/texteditor/tabsettings.h
+++ b/src/plugins/texteditor/tabsettings.h
@@ -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;