aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/texteditor
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/texteditor')
-rw-r--r--src/plugins/texteditor/basetextdocument.cpp2
-rw-r--r--src/plugins/texteditor/generalsettingspage.cpp2
-rw-r--r--src/plugins/texteditor/generalsettingspage.ui36
-rw-r--r--src/plugins/texteditor/storagesettings.cpp9
-rw-r--r--src/plugins/texteditor/storagesettings.h1
5 files changed, 47 insertions, 3 deletions
diff --git a/src/plugins/texteditor/basetextdocument.cpp b/src/plugins/texteditor/basetextdocument.cpp
index eb6069df6d..d782ed5ace 100644
--- a/src/plugins/texteditor/basetextdocument.cpp
+++ b/src/plugins/texteditor/basetextdocument.cpp
@@ -330,7 +330,7 @@ void BaseTextDocument::cleanWhitespace(QTextCursor& cursor, bool inEntireDocumen
cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor, trailing);
cursor.removeSelectedText();
}
- if (!m_tabSettings.isIndentationClean(blockText)) {
+ if (m_storageSettings.m_cleanIndentation && !m_tabSettings.isIndentationClean(blockText)) {
cursor.setPosition(block.position());
int firstNonSpace = m_tabSettings.firstNonSpace(blockText);
if (firstNonSpace == blockText.length()) {
diff --git a/src/plugins/texteditor/generalsettingspage.cpp b/src/plugins/texteditor/generalsettingspage.cpp
index 7482080ab9..28400d10eb 100644
--- a/src/plugins/texteditor/generalsettingspage.cpp
+++ b/src/plugins/texteditor/generalsettingspage.cpp
@@ -162,6 +162,7 @@ void GeneralSettingsPage::settingsFromUI(TabSettings &rc,
storageSettings.m_cleanWhitespace = m_d->m_page.cleanWhitespace->isChecked();
storageSettings.m_inEntireDocument = m_d->m_page.inEntireDocument->isChecked();
+ storageSettings.m_cleanIndentation = m_d->m_page.cleanIndentation->isChecked();
storageSettings.m_addFinalNewLine = m_d->m_page.addFinalNewLine->isChecked();
displaySettings.m_displayLineNumbers = m_d->m_page.displayLineNumbers->isChecked();
@@ -187,6 +188,7 @@ void GeneralSettingsPage::settingsToUI()
StorageSettings storageSettings = m_d->m_storageSettings;
m_d->m_page.cleanWhitespace->setChecked(storageSettings.m_cleanWhitespace);
m_d->m_page.inEntireDocument->setChecked(storageSettings.m_inEntireDocument);
+ m_d->m_page.cleanIndentation->setChecked(storageSettings.m_cleanIndentation);
m_d->m_page.addFinalNewLine->setChecked(storageSettings.m_addFinalNewLine);
DisplaySettings displaySettings = m_d->m_displaySettings;
diff --git a/src/plugins/texteditor/generalsettingspage.ui b/src/plugins/texteditor/generalsettingspage.ui
index 58b6bdbc0a..301ee8bdf5 100644
--- a/src/plugins/texteditor/generalsettingspage.ui
+++ b/src/plugins/texteditor/generalsettingspage.ui
@@ -215,6 +215,36 @@
</layout>
</item>
<item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <spacer name="horizontalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>30</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="cleanIndentation">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Clean indentation</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
<widget class="QCheckBox" name="addFinalNewLine">
<property name="text">
<string>&amp;Ensure newline at end of file</string>
@@ -339,6 +369,12 @@
</hints>
</connection>
<connection>
+ <sender>cleanWhitespace</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>cleanIndentation</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
<sender>showWrapColumn</sender>
<signal>toggled(bool)</signal>
<receiver>wrapColumn</receiver>
diff --git a/src/plugins/texteditor/storagesettings.cpp b/src/plugins/texteditor/storagesettings.cpp
index b92b497345..c14a28ae6a 100644
--- a/src/plugins/texteditor/storagesettings.cpp
+++ b/src/plugins/texteditor/storagesettings.cpp
@@ -41,12 +41,14 @@ namespace TextEditor {
static const char * const cleanWhitespaceKey = "cleanWhitespace";
static const char * const inEntireDocumentKey = "inEntireDocument";
static const char * const addFinalNewLineKey = "addFinalNewLine";
+static const char * const cleanIndentationKey = "cleanIndentation";
static const char * const groupPostfix = "StorageSettings";
StorageSettings::StorageSettings()
: m_cleanWhitespace(true),
m_inEntireDocument(false),
- m_addFinalNewLine(true)
+ m_addFinalNewLine(true),
+ m_cleanIndentation(true)
{
}
@@ -59,6 +61,7 @@ void StorageSettings::toSettings(const QString &category, QSettings *s) const
s->setValue(QLatin1String(cleanWhitespaceKey), m_cleanWhitespace);
s->setValue(QLatin1String(inEntireDocumentKey), m_inEntireDocument);
s->setValue(QLatin1String(addFinalNewLineKey), m_addFinalNewLine);
+ s->setValue(QLatin1String(cleanIndentationKey), m_cleanIndentation);
s->endGroup();
}
@@ -71,13 +74,15 @@ void StorageSettings::fromSettings(const QString &category, const QSettings *s)
m_cleanWhitespace = s->value(group + QLatin1String(cleanWhitespaceKey), m_cleanWhitespace).toBool();
m_inEntireDocument = s->value(group + QLatin1String(inEntireDocumentKey), m_inEntireDocument).toBool();
m_addFinalNewLine = s->value(group + QLatin1String(addFinalNewLineKey), m_addFinalNewLine).toBool();
+ m_cleanIndentation = s->value(group + QLatin1String(cleanIndentationKey), m_cleanIndentation).toBool();
}
bool StorageSettings::equals(const StorageSettings &ts) const
{
return m_addFinalNewLine == ts.m_addFinalNewLine
&& m_cleanWhitespace == ts.m_cleanWhitespace
- && m_inEntireDocument == ts.m_inEntireDocument;
+ && m_inEntireDocument == ts.m_inEntireDocument
+ && m_cleanIndentation == ts.m_cleanIndentation;
}
} // namespace TextEditor
diff --git a/src/plugins/texteditor/storagesettings.h b/src/plugins/texteditor/storagesettings.h
index d90b462d32..4fca30b284 100644
--- a/src/plugins/texteditor/storagesettings.h
+++ b/src/plugins/texteditor/storagesettings.h
@@ -54,6 +54,7 @@ struct TEXTEDITOR_EXPORT StorageSettings
bool m_cleanWhitespace;
bool m_inEntireDocument;
bool m_addFinalNewLine;
+ bool m_cleanIndentation;
};
inline bool operator==(const StorageSettings &t1, const StorageSettings &t2) { return t1.equals(t2); }