diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index c746aead41158f503b5f62a77ee34ddaf1767106..3d553ea4acca7649ee4eeed3570ba51122cc69e2 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -189,6 +189,7 @@ CPPEditorEditable::CPPEditorEditable(CPPEditor *editor) CPPEditor::CPPEditor(QWidget *parent) : TextEditor::BaseTextEditor(parent) + , m_mouseNavigationEnabled(true) , m_showingLink(false) { setParenthesesMatchingEnabled(true); @@ -901,7 +902,7 @@ void CPPEditor::mouseMoveEvent(QMouseEvent *e) { bool linkFound = false; - if (e->modifiers() & Qt::ControlModifier) { + if (m_mouseNavigationEnabled && e->modifiers() & Qt::ControlModifier) { // Link emulation behaviour for 'go to definition' const QTextCursor cursor = cursorForPosition(e->pos()); @@ -1027,6 +1028,11 @@ void CPPEditor::setFontSettings(const TextEditor::FontSettings &fs) m_linkFormat = fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_LINK)); } +void CPPEditor::setDisplaySettings(const TextEditor::DisplaySettings &ds) +{ + TextEditor::BaseTextEditor::setDisplaySettings(ds); + m_mouseNavigationEnabled = ds.m_mouseNavigation; +} void CPPEditor::unCommentSelection() { diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h index bd76281894f4b25d2cc1bdbf29595170b0aff3cb..526faff87a7e01f7bd36f0073164a97bb7b6816f 100644 --- a/src/plugins/cppeditor/cppeditor.h +++ b/src/plugins/cppeditor/cppeditor.h @@ -87,6 +87,7 @@ public: public slots: virtual void setFontSettings(const TextEditor::FontSettings &); + virtual void setDisplaySettings(const TextEditor::DisplaySettings &); void setSortedMethodOverview(bool sort); void switchDeclarationDefinition(); void jumpToDefinition(); @@ -153,11 +154,13 @@ private: void showLink(const Link &); void clearLink(); - bool m_showingLink; Link findLinkAt(const QTextCursor &, bool lookupDefinition = true); static Link linkToSymbol(CPlusPlus::Symbol *symbol); bool openCppEditorAt(const Link &); + + bool m_mouseNavigationEnabled; + bool m_showingLink; QTextCharFormat m_linkFormat; CppTools::CppModelManagerInterface *m_modelManager; diff --git a/src/plugins/texteditor/behaviorsettingspage.cpp b/src/plugins/texteditor/behaviorsettingspage.cpp index 1ff95ca1482e1e5f90cc53949735e71f264b05a5..724da5a9e166abe8dad4ce20d4a48cfb7e81869e 100644 --- a/src/plugins/texteditor/behaviorsettingspage.cpp +++ b/src/plugins/texteditor/behaviorsettingspage.cpp @@ -126,7 +126,7 @@ void BehaviorSettingsPage::apply() } void BehaviorSettingsPage::settingsFromUI(TabSettings &tabSettings, - StorageSettings &storageSettings) const + StorageSettings &storageSettings) const { tabSettings.m_spacesForTabs = m_d->m_page.insertSpaces->isChecked(); tabSettings.m_autoIndent = m_d->m_page.autoIndent->isChecked(); diff --git a/src/plugins/texteditor/displaysettings.cpp b/src/plugins/texteditor/displaysettings.cpp index b0273a2c887a264124f1a016dabb080cce93490e..a9aabe7996340b6fec0e892bb9813d331bf3a1b0 100644 --- a/src/plugins/texteditor/displaysettings.cpp +++ b/src/plugins/texteditor/displaysettings.cpp @@ -43,6 +43,7 @@ static const char * const displayFoldingMarkersKey = "DisplayFoldingMarkers"; static const char * const highlightCurrentLineKey = "HighlightCurrentLineKeyV2"; static const char * const highlightBlocksKey = "HighlightBlocksKey"; static const char * const animateMatchingParenthesesKey= "AnimateMatchingParenthesesKey"; +static const char * const mouseNavigationKey = "MouseNavigation"; static const char * const groupPostfix = "DisplaySettings"; namespace TextEditor { @@ -56,7 +57,8 @@ DisplaySettings::DisplaySettings() : m_displayFoldingMarkers(true), m_highlightCurrentLine(false), m_highlightBlocks(false), - m_animateMatchingParentheses(true) + m_animateMatchingParentheses(true), + m_mouseNavigation(true) { } @@ -75,6 +77,7 @@ void DisplaySettings::toSettings(const QString &category, QSettings *s) const s->setValue(QLatin1String(highlightCurrentLineKey), m_highlightCurrentLine); s->setValue(QLatin1String(highlightBlocksKey), m_highlightBlocks); s->setValue(QLatin1String(animateMatchingParenthesesKey), m_animateMatchingParentheses); + s->setValue(QLatin1String(mouseNavigationKey), m_mouseNavigation); s->endGroup(); } @@ -96,6 +99,7 @@ void DisplaySettings::fromSettings(const QString &category, const QSettings *s) m_highlightCurrentLine = s->value(group + QLatin1String(highlightCurrentLineKey), m_highlightCurrentLine).toBool(); m_highlightBlocks = s->value(group + QLatin1String(highlightBlocksKey), m_highlightBlocks).toBool(); m_animateMatchingParentheses = s->value(group + QLatin1String(animateMatchingParenthesesKey), m_animateMatchingParentheses).toBool(); + m_mouseNavigation = s->value(group + QLatin1String(mouseNavigationKey), m_mouseNavigation).toBool(); } bool DisplaySettings::equals(const DisplaySettings &ds) const @@ -109,6 +113,7 @@ bool DisplaySettings::equals(const DisplaySettings &ds) const && m_highlightCurrentLine == ds.m_highlightCurrentLine && m_highlightBlocks == ds.m_highlightBlocks && m_animateMatchingParentheses == ds.m_animateMatchingParentheses + && m_mouseNavigation == ds.m_mouseNavigation ; } diff --git a/src/plugins/texteditor/displaysettings.h b/src/plugins/texteditor/displaysettings.h index 06a7d0fa381381458aba1f1780c490cdf49c6fa2..bcbb18462ea03364c0a1118c6a058e2d4666c4d0 100644 --- a/src/plugins/texteditor/displaysettings.h +++ b/src/plugins/texteditor/displaysettings.h @@ -54,6 +54,7 @@ struct TEXTEDITOR_EXPORT DisplaySettings bool m_highlightCurrentLine; bool m_highlightBlocks; bool m_animateMatchingParentheses; + bool m_mouseNavigation; bool equals(const DisplaySettings &ds) const; }; diff --git a/src/plugins/texteditor/displaysettingspage.cpp b/src/plugins/texteditor/displaysettingspage.cpp index ec7ae6a221093855a563e6512a92181ec4a3c2ce..8cd42c5299253a80c2d437283099514b54a8dff8 100644 --- a/src/plugins/texteditor/displaysettingspage.cpp +++ b/src/plugins/texteditor/displaysettingspage.cpp @@ -123,7 +123,8 @@ void DisplaySettingsPage::settingsFromUI(DisplaySettings &displaySettings) const displaySettings.m_displayFoldingMarkers = m_d->m_page.displayFoldingMarkers->isChecked(); displaySettings.m_highlightCurrentLine = m_d->m_page.highlightCurrentLine->isChecked(); displaySettings.m_highlightBlocks = m_d->m_page.highlightBlocks->isChecked(); - displaySettings.m_animateMatchingParentheses= m_d->m_page.animateMatchingParentheses->isChecked(); + displaySettings.m_animateMatchingParentheses = m_d->m_page.animateMatchingParentheses->isChecked(); + displaySettings.m_mouseNavigation = m_d->m_page.mouseNavigation->isChecked(); } void DisplaySettingsPage::settingsToUI() @@ -138,6 +139,7 @@ void DisplaySettingsPage::settingsToUI() m_d->m_page.highlightCurrentLine->setChecked(displaySettings.m_highlightCurrentLine); m_d->m_page.highlightBlocks->setChecked(displaySettings.m_highlightBlocks); m_d->m_page.animateMatchingParentheses->setChecked(displaySettings.m_animateMatchingParentheses); + m_d->m_page.mouseNavigation->setChecked(displaySettings.m_mouseNavigation); } DisplaySettings DisplaySettingsPage::displaySettings() const diff --git a/src/plugins/texteditor/displaysettingspage.ui b/src/plugins/texteditor/displaysettingspage.ui index d040a94b89958b8259a113eed0cea907268c7e5a..c1e984389c3f570974a2ec70e64d770861f2911d 100644 --- a/src/plugins/texteditor/displaysettingspage.ui +++ b/src/plugins/texteditor/displaysettingspage.ui @@ -7,11 +7,11 @@ <x>0</x> <y>0</y> <width>381</width> - <height>335</height> + <height>402</height> </rect> </property> <layout class="QGridLayout" name="gridLayout_3"> - <item row="2" column="0"> + <item row="3" column="0"> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> @@ -128,6 +128,22 @@ </layout> </widget> </item> + <item row="2" column="0"> + <widget class="QGroupBox" name="groupBoxNavigation"> + <property name="title"> + <string>Navigation</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <widget class="QCheckBox" name="mouseNavigation"> + <property name="text"> + <string>Enable &mouse navigation</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> </layout> </widget> <resources/>