aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/texteditor/behaviorsettingswidget.cpp
diff options
context:
space:
mode:
authorJunker, Gregory <gregory.junker@intel.com>2020-01-16 14:18:01 -0800
committerGregory Junker <gregory.junker@intel.com>2020-02-19 18:09:13 +0000
commite7f784ca7393bddb60cbb111d3bdb7cd0e6d122e (patch)
treeb037333fd0c281ff96075389d34c8819b1636eb9 /src/plugins/texteditor/behaviorsettingswidget.cpp
parent3fe1911d4616a1eeafc538745381dba1270f38cf (diff)
Support configurable trailing-whitespace cleanup
Allow the user to configure how trailing whitespace is handled. In some file types, for example, Markdown, trailing whitespace is semantically important. This change allows the user to select, via delimited list of wildcard filename patterns, which files to ignore for trailing whitespace cleanup. Task-number: QTCREATORBUG-13358 Change-Id: Ie6814d8c178bed8e3de78e6d359b9940d2ba0ead Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/texteditor/behaviorsettingswidget.cpp')
-rw-r--r--src/plugins/texteditor/behaviorsettingswidget.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/plugins/texteditor/behaviorsettingswidget.cpp b/src/plugins/texteditor/behaviorsettingswidget.cpp
index f5dc751eb6a..fe7e983fade 100644
--- a/src/plugins/texteditor/behaviorsettingswidget.cpp
+++ b/src/plugins/texteditor/behaviorsettingswidget.cpp
@@ -101,6 +101,8 @@ BehaviorSettingsWidget::BehaviorSettingsWidget(QWidget *parent)
this, &BehaviorSettingsWidget::slotStorageSettingsChanged);
connect(d->m_ui.cleanIndentation, &QAbstractButton::clicked,
this, &BehaviorSettingsWidget::slotStorageSettingsChanged);
+ connect(d->m_ui.skipTrailingWhitespace, &QAbstractButton::clicked,
+ this, &BehaviorSettingsWidget::slotStorageSettingsChanged);
connect(d->m_ui.mouseHiding, &QAbstractButton::clicked,
this, &BehaviorSettingsWidget::slotBehaviorSettingsChanged);
connect(d->m_ui.mouseNavigation, &QAbstractButton::clicked,
@@ -190,6 +192,9 @@ void BehaviorSettingsWidget::setAssignedStorageSettings(const StorageSettings &s
d->m_ui.inEntireDocument->setChecked(storageSettings.m_inEntireDocument);
d->m_ui.cleanIndentation->setChecked(storageSettings.m_cleanIndentation);
d->m_ui.addFinalNewLine->setChecked(storageSettings.m_addFinalNewLine);
+ d->m_ui.skipTrailingWhitespace->setChecked(storageSettings.m_skipTrailingWhitespace);
+ d->m_ui.ignoreFileTypes->setText(storageSettings.m_ignoreFileTypes);
+ d->m_ui.ignoreFileTypes->setEnabled(d->m_ui.skipTrailingWhitespace->isChecked());
}
void BehaviorSettingsWidget::assignedStorageSettings(StorageSettings *storageSettings) const
@@ -198,6 +203,8 @@ void BehaviorSettingsWidget::assignedStorageSettings(StorageSettings *storageSet
storageSettings->m_inEntireDocument = d->m_ui.inEntireDocument->isChecked();
storageSettings->m_cleanIndentation = d->m_ui.cleanIndentation->isChecked();
storageSettings->m_addFinalNewLine = d->m_ui.addFinalNewLine->isChecked();
+ storageSettings->m_skipTrailingWhitespace = d->m_ui.skipTrailingWhitespace->isChecked();
+ storageSettings->m_ignoreFileTypes = d->m_ui.ignoreFileTypes->text();
}
void BehaviorSettingsWidget::updateConstrainTooltipsBoxTooltip() const
@@ -273,6 +280,10 @@ void BehaviorSettingsWidget::slotStorageSettingsChanged()
{
StorageSettings settings;
assignedStorageSettings(&settings);
+
+ bool ignoreFileTypesEnabled = d->m_ui.cleanWhitespace->isChecked() && d->m_ui.skipTrailingWhitespace->isChecked();
+ d->m_ui.ignoreFileTypes->setEnabled(ignoreFileTypesEnabled);
+
emit storageSettingsChanged(settings);
}