diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index c746aead411..3d553ea4acc 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 bd76281894f..526faff87a7 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 1ff95ca1482..724da5a9e16 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 b0273a2c887..a9aabe79963 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 06a7d0fa381..bcbb18462ea 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 ec7ae6a2210..8cd42c52992 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 d040a94b899..c1e984389c3 100644 --- a/src/plugins/texteditor/displaysettingspage.ui +++ b/src/plugins/texteditor/displaysettingspage.ui @@ -7,11 +7,11 @@ 0 0 381 - 335 + 402 - + Qt::Vertical @@ -128,6 +128,22 @@ + + + + Navigation + + + + + + Enable &mouse navigation + + + + + +