From ea13309b9a1ecc7499849488eda9da2a7f79812e Mon Sep 17 00:00:00 2001 From: Roopesh Chander <roop@forwardbias.in> Date: Sun, 4 Oct 2009 00:26:21 +0530 Subject: [PATCH] Add a checkbox for 'auto-determine spaces or tabs from the previous line' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 1766 Reviewed-by: Thorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com> --- .../texteditor/behaviorsettingspage.cpp | 2 + .../texteditor/behaviorsettingspage.ui | 138 ++++++++++++------ src/plugins/texteditor/tabsettings.cpp | 4 + 3 files changed, 99 insertions(+), 45 deletions(-) diff --git a/src/plugins/texteditor/behaviorsettingspage.cpp b/src/plugins/texteditor/behaviorsettingspage.cpp index 563c0b5a4c3..4a73fd2be59 100644 --- a/src/plugins/texteditor/behaviorsettingspage.cpp +++ b/src/plugins/texteditor/behaviorsettingspage.cpp @@ -159,6 +159,7 @@ void BehaviorSettingsPage::settingsFromUI(TabSettings &tabSettings, BehaviorSettings &behaviorSettings) const { tabSettings.m_spacesForTabs = m_d->m_page.insertSpaces->isChecked(); + tabSettings.m_autoSpacesForTabs = m_d->m_page.autoInsertSpaces->isChecked(); tabSettings.m_autoIndent = m_d->m_page.autoIndent->isChecked(); tabSettings.m_smartBackspace = m_d->m_page.smartBackspace->isChecked(); tabSettings.m_tabSize = m_d->m_page.tabSize->value(); @@ -179,6 +180,7 @@ void BehaviorSettingsPage::settingsToUI() { const TabSettings &tabSettings = m_d->m_tabSettings; m_d->m_page.insertSpaces->setChecked(tabSettings.m_spacesForTabs); + m_d->m_page.autoInsertSpaces->setChecked(tabSettings.m_autoSpacesForTabs); m_d->m_page.autoIndent->setChecked(tabSettings.m_autoIndent); m_d->m_page.smartBackspace->setChecked(tabSettings.m_smartBackspace); m_d->m_page.tabSize->setValue(tabSettings.m_tabSize); diff --git a/src/plugins/texteditor/behaviorsettingspage.ui b/src/plugins/texteditor/behaviorsettingspage.ui index 31258741672..eddd849c261 100644 --- a/src/plugins/texteditor/behaviorsettingspage.ui +++ b/src/plugins/texteditor/behaviorsettingspage.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>615</width> - <height>421</height> + <height>461</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout_4"> @@ -27,13 +27,46 @@ </widget> </item> <item row="1" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <item> + <spacer name="horizontalSpacer_5"> + <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="autoInsertSpaces"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Automatically determine whether to insert spaces or tabs based on the previous line in the file</string> + </property> + <property name="text"> + <string>Based on the previous line</string> + </property> + </widget> + </item> + </layout> + </item> + <item row="2" column="0"> <widget class="QCheckBox" name="autoIndent"> <property name="text"> <string>Enable automatic &indentation</string> </property> </widget> </item> - <item row="2" column="0"> + <item row="3" column="0"> <widget class="QCheckBox" name="smartBackspace"> <property name="toolTip"> <string>Backspace will go back one indentation level instead of one space.</string> @@ -75,39 +108,7 @@ </property> </widget> </item> - <item row="1" column="2"> - <widget class="QLabel" name="labelIndentSize"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Maximum" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>&Indent size:</string> - </property> - <property name="buddy"> - <cstring>indentSize</cstring> - </property> - </widget> - </item> - <item row="1" column="3"> - <widget class="QSpinBox" name="indentSize"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Maximum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimum"> - <number>1</number> - </property> - <property name="maximum"> - <number>20</number> - </property> - </widget> - </item> - <item row="0" column="1" rowspan="4"> + <item row="0" column="1" rowspan="5"> <spacer name="horizontalSpacer"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -133,7 +134,7 @@ </property> </spacer> </item> - <item row="3" column="0"> + <item row="4" column="0"> <widget class="QCheckBox" name="indentBraces"> <property name="toolTip"> <string>Braces will be flush with indented block, except first indent level.</string> @@ -143,6 +144,38 @@ </property> </widget> </item> + <item row="1" column="2"> + <widget class="QLabel" name="labelIndentSize"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>&Indent size:</string> + </property> + <property name="buddy"> + <cstring>indentSize</cstring> + </property> + </widget> + </item> + <item row="1" column="3"> + <widget class="QSpinBox" name="indentSize"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>20</number> + </property> + </widget> + </item> </layout> </item> <item> @@ -328,7 +361,6 @@ <tabstop>insertSpaces</tabstop> <tabstop>tabSize</tabstop> <tabstop>autoIndent</tabstop> - <tabstop>indentSize</tabstop> <tabstop>smartBackspace</tabstop> <tabstop>tabKeyBehavior</tabstop> <tabstop>cleanWhitespace</tabstop> @@ -345,12 +377,12 @@ <slot>setEnabled(bool)</slot> <hints> <hint type="sourcelabel"> - <x>47</x> - <y>184</y> + <x>67</x> + <y>252</y> </hint> <hint type="destinationlabel"> - <x>91</x> - <y>212</y> + <x>148</x> + <y>281</y> </hint> </hints> </connection> @@ -361,12 +393,28 @@ <slot>setEnabled(bool)</slot> <hints> <hint type="sourcelabel"> - <x>20</x> - <y>20</y> + <x>40</x> + <y>251</y> + </hint> + <hint type="destinationlabel"> + <x>77</x> + <y>310</y> + </hint> + </hints> + </connection> + <connection> + <sender>insertSpaces</sender> + <signal>toggled(bool)</signal> + <receiver>autoInsertSpaces</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>105</x> + <y>49</y> </hint> <hint type="destinationlabel"> - <x>20</x> - <y>20</y> + <x>105</x> + <y>78</y> </hint> </hints> </connection> diff --git a/src/plugins/texteditor/tabsettings.cpp b/src/plugins/texteditor/tabsettings.cpp index 2f3721ff6b9..0efee830158 100644 --- a/src/plugins/texteditor/tabsettings.cpp +++ b/src/plugins/texteditor/tabsettings.cpp @@ -36,6 +36,7 @@ #include <QtGui/QTextDocument> static const char *spacesForTabsKey = "SpacesForTabs"; +static const char *autoSpacesForTabsKey = "AutoSpacesForTabs"; static const char *smartBackspaceKey = "SmartBackspace"; static const char *autoIndentKey = "AutoIndent"; static const char *tabSizeKey = "TabSize"; @@ -65,6 +66,7 @@ void TabSettings::toSettings(const QString &category, QSettings *s) const group.insert(0, category); s->beginGroup(group); s->setValue(QLatin1String(spacesForTabsKey), m_spacesForTabs); + s->setValue(QLatin1String(autoSpacesForTabsKey), m_autoSpacesForTabs); s->setValue(QLatin1String(autoIndentKey), m_autoIndent); s->setValue(QLatin1String(smartBackspaceKey), m_smartBackspace); s->setValue(QLatin1String(tabSizeKey), m_tabSize); @@ -84,6 +86,7 @@ void TabSettings::fromSettings(const QString &category, const QSettings *s) *this = TabSettings(); // Assign defaults m_spacesForTabs = s->value(group + QLatin1String(spacesForTabsKey), m_spacesForTabs).toBool(); + m_autoSpacesForTabs = s->value(group + QLatin1String(autoSpacesForTabsKey), m_autoSpacesForTabs).toBool(); m_autoIndent = s->value(group + QLatin1String(autoIndentKey), m_autoIndent).toBool(); m_smartBackspace = s->value(group + QLatin1String(smartBackspaceKey), m_smartBackspace).toBool(); m_tabSize = s->value(group + QLatin1String(tabSizeKey), m_tabSize).toInt(); @@ -316,6 +319,7 @@ void TabSettings::reindentLine(QTextBlock block, int delta) const bool TabSettings::equals(const TabSettings &ts) const { return m_spacesForTabs == ts.m_spacesForTabs + && m_autoSpacesForTabs == ts.m_autoSpacesForTabs && m_autoIndent == ts.m_autoIndent && m_smartBackspace == ts.m_smartBackspace && m_tabSize == ts.m_tabSize -- GitLab