From be925679484d71ac15ac84a462fe0f4832c07324 Mon Sep 17 00:00:00 2001 From: mae <qt-info@nokia.com> Date: Wed, 14 Apr 2010 11:49:58 +0200 Subject: [PATCH] Add "center cursor on scroll" option for the base text editor --- src/plugins/texteditor/basetexteditor.cpp | 1 + src/plugins/texteditor/displaysettings.cpp | 9 +++++++-- src/plugins/texteditor/displaysettings.h | 1 + src/plugins/texteditor/displaysettingspage.cpp | 5 ++++- src/plugins/texteditor/displaysettingspage.ui | 7 +++++++ 5 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index 1599e6790dd..542d8d42c5f 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -5328,6 +5328,7 @@ void BaseTextEditor::setDisplaySettings(const DisplaySettings &ds) setCodeFoldingVisible(ds.m_displayFoldingMarkers); setHighlightCurrentLine(ds.m_highlightCurrentLine); setRevisionsVisible(ds.m_markTextChanges); + setCenterOnScroll(ds.m_centerCursorOnScroll); if (d->m_displaySettings.m_visualizeWhitespace != ds.m_visualizeWhitespace) { if (QSyntaxHighlighter *highlighter = baseTextDocument()->syntaxHighlighter()) diff --git a/src/plugins/texteditor/displaysettings.cpp b/src/plugins/texteditor/displaysettings.cpp index 5fe82f4ceda..5c51b7cb091 100644 --- a/src/plugins/texteditor/displaysettings.cpp +++ b/src/plugins/texteditor/displaysettings.cpp @@ -42,7 +42,8 @@ static const char * const highlightCurrentLineKey = "HighlightCurrentLine2Key"; static const char * const highlightBlocksKey = "HighlightBlocksKey"; static const char * const animateMatchingParenthesesKey= "AnimateMatchingParenthesesKey"; static const char * const markTextChangesKey = "MarkTextChanges"; -static const char * const autoFoldFirstCommentKey= "AutoFoldFirstComment"; +static const char * const autoFoldFirstCommentKey = "AutoFoldFirstComment"; +static const char * const centerCursorOnScrollKey = "CenterCursorOnScroll"; static const char * const groupPostfix = "DisplaySettings"; namespace TextEditor { @@ -58,7 +59,8 @@ DisplaySettings::DisplaySettings() : m_highlightBlocks(false), m_animateMatchingParentheses(true), m_markTextChanges(true), - m_autoFoldFirstComment(true) + m_autoFoldFirstComment(true), + m_centerCursorOnScroll(false) { } @@ -79,6 +81,7 @@ void DisplaySettings::toSettings(const QString &category, QSettings *s) const s->setValue(QLatin1String(animateMatchingParenthesesKey), m_animateMatchingParentheses); s->setValue(QLatin1String(markTextChangesKey), m_markTextChanges); s->setValue(QLatin1String(autoFoldFirstCommentKey), m_autoFoldFirstComment); + s->setValue(QLatin1String(centerCursorOnScrollKey), m_centerCursorOnScroll); s->endGroup(); } @@ -102,6 +105,7 @@ void DisplaySettings::fromSettings(const QString &category, const QSettings *s) m_animateMatchingParentheses = s->value(group + QLatin1String(animateMatchingParenthesesKey), m_animateMatchingParentheses).toBool(); m_markTextChanges = s->value(group + QLatin1String(markTextChangesKey), m_markTextChanges).toBool(); m_autoFoldFirstComment = s->value(group + QLatin1String(autoFoldFirstCommentKey), m_autoFoldFirstComment).toBool(); + m_centerCursorOnScroll = s->value(group + QLatin1String(centerCursorOnScrollKey), m_centerCursorOnScroll).toBool(); } bool DisplaySettings::equals(const DisplaySettings &ds) const @@ -117,6 +121,7 @@ bool DisplaySettings::equals(const DisplaySettings &ds) const && m_animateMatchingParentheses == ds.m_animateMatchingParentheses && m_markTextChanges == ds.m_markTextChanges && m_autoFoldFirstComment== ds.m_autoFoldFirstComment + && m_centerCursorOnScroll == ds.m_centerCursorOnScroll ; } diff --git a/src/plugins/texteditor/displaysettings.h b/src/plugins/texteditor/displaysettings.h index 2acdc907ddf..374be169697 100644 --- a/src/plugins/texteditor/displaysettings.h +++ b/src/plugins/texteditor/displaysettings.h @@ -56,6 +56,7 @@ struct TEXTEDITOR_EXPORT DisplaySettings bool m_animateMatchingParentheses; bool m_markTextChanges; bool m_autoFoldFirstComment; + bool m_centerCursorOnScroll; bool equals(const DisplaySettings &ds) const; }; diff --git a/src/plugins/texteditor/displaysettingspage.cpp b/src/plugins/texteditor/displaysettingspage.cpp index 3ae03513c94..6a30c609c5d 100644 --- a/src/plugins/texteditor/displaysettingspage.cpp +++ b/src/plugins/texteditor/displaysettingspage.cpp @@ -92,7 +92,8 @@ QWidget *DisplaySettingsPage::createPage(QWidget *parent) << ' ' << m_d->m_page.visualizeWhitespace->text() << ' ' << m_d->m_page.animateMatchingParentheses->text() << ' ' << m_d->m_page.enableTextWrapping->text() - << ' ' << m_d->m_page.autoFoldFirstComment->text(); + << ' ' << m_d->m_page.autoFoldFirstComment->text() + << ' ' << m_d->m_page.centerOnScroll->text(); m_d->m_searchKeywords.remove(QLatin1Char('&')); } return w; @@ -119,6 +120,7 @@ void DisplaySettingsPage::settingsFromUI(DisplaySettings &displaySettings) const displaySettings.m_animateMatchingParentheses = m_d->m_page.animateMatchingParentheses->isChecked(); displaySettings.m_markTextChanges = m_d->m_page.markTextChanges->isChecked(); displaySettings.m_autoFoldFirstComment = m_d->m_page.autoFoldFirstComment->isChecked(); + displaySettings.m_centerCursorOnScroll = m_d->m_page.centerOnScroll->isChecked(); } void DisplaySettingsPage::settingsToUI() @@ -135,6 +137,7 @@ void DisplaySettingsPage::settingsToUI() m_d->m_page.animateMatchingParentheses->setChecked(displaySettings.m_animateMatchingParentheses); m_d->m_page.markTextChanges->setChecked(displaySettings.m_markTextChanges); m_d->m_page.autoFoldFirstComment->setChecked(displaySettings.m_autoFoldFirstComment); + m_d->m_page.centerOnScroll->setChecked(displaySettings.m_centerCursorOnScroll); } const DisplaySettings &DisplaySettingsPage::displaySettings() const diff --git a/src/plugins/texteditor/displaysettingspage.ui b/src/plugins/texteditor/displaysettingspage.ui index 8836a47b4f4..c402d98a64a 100644 --- a/src/plugins/texteditor/displaysettingspage.ui +++ b/src/plugins/texteditor/displaysettingspage.ui @@ -89,6 +89,13 @@ </property> </widget> </item> + <item row="5" column="0"> + <widget class="QCheckBox" name="centerOnScroll"> + <property name="text"> + <string>Center &cursor on scroll</string> + </property> + </widget> + </item> </layout> </widget> </item> -- GitLab