diff --git a/src/plugins/cpptools/completionsettingspage.cpp b/src/plugins/cpptools/completionsettingspage.cpp index ad7fa77e739f523a1fa1524e208a01db19055041..45cf7f8d06625bcf0e175550138260cb50043855 100644 --- a/src/plugins/cpptools/completionsettingspage.cpp +++ b/src/plugins/cpptools/completionsettingspage.cpp @@ -69,6 +69,7 @@ QWidget *CompletionSettingsPage::createPage(QWidget *parent) m_page->caseSensitive->setChecked(m_completion->caseSensitivity() == Qt::CaseSensitive); m_page->autoInsertBraces->setChecked(m_completion->autoInsertBraces()); + m_page->partiallyComplete->setChecked(m_completion->isPartialCompletionEnabled()); return w; } @@ -79,6 +80,7 @@ void CompletionSettingsPage::finished(bool accepted) m_completion->setCaseSensitivity( m_page->caseSensitive->isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive); m_completion->setAutoInsertBraces(m_page->autoInsertBraces->isChecked()); + m_completion->setPartialCompletionEnabled(m_page->partiallyComplete->isChecked()); } delete m_page; diff --git a/src/plugins/cpptools/completionsettingspage.ui b/src/plugins/cpptools/completionsettingspage.ui index 10e4273f4d64afee36f181c0033c2c9a3810ed7c..372c225943f49146915140cd5dfa38950669be6c 100644 --- a/src/plugins/cpptools/completionsettingspage.ui +++ b/src/plugins/cpptools/completionsettingspage.ui @@ -17,7 +17,7 @@ <item> <widget class="QCheckBox" name="caseSensitive"> <property name="text"> - <string>Match completions &case-sensitive</string> + <string>&Case-sensitive completion</string> </property> <property name="checked"> <bool>true</bool> @@ -34,6 +34,16 @@ </property> </widget> </item> + <item> + <widget class="QCheckBox" name="partiallyComplete"> + <property name="text"> + <string>Autocomplete common &prefix</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> <item> <spacer name="verticalSpacer"> <property name="orientation"> diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp index c7cd3f07a919676e4691cc81a654e4ae0073ad34..09d950a3057120a9b63744330d6b72f9878bfab7 100644 --- a/src/plugins/cpptools/cppcodecompletion.cpp +++ b/src/plugins/cpptools/cppcodecompletion.cpp @@ -346,6 +346,16 @@ void CppCodeCompletion::setAutoInsertBraces(bool autoInsertBraces) m_autoInsertBraces = autoInsertBraces; } +bool CppCodeCompletion::isPartialCompletionEnabled() const +{ + return m_partialCompletionEnabled; +} + +void CppCodeCompletion::setPartialCompletionEnabled(bool partialCompletionEnabled) +{ + m_partialCompletionEnabled = partialCompletionEnabled; +} + /* Searches beckward for an access operator. */ @@ -1030,7 +1040,7 @@ bool CppCodeCompletion::partiallyComplete(const QList<TextEditor::CompletionItem } else if (completionItems.count() == 1) { complete(completionItems.first()); return true; - } else if (m_completionOperator != T_LPAREN) { + } else if (m_partialCompletionEnabled && m_completionOperator != T_LPAREN) { // Compute common prefix QString firstKey = completionItems.first().m_text; QString lastKey = completionItems.last().m_text; diff --git a/src/plugins/cpptools/cppcodecompletion.h b/src/plugins/cpptools/cppcodecompletion.h index 87f84fffff1b1b890b33382399bfd1f53dd7d161..57f9983e0c4789625b78a14be245b57594ae7d8b 100644 --- a/src/plugins/cpptools/cppcodecompletion.h +++ b/src/plugins/cpptools/cppcodecompletion.h @@ -84,6 +84,9 @@ public: bool autoInsertBraces() const; void setAutoInsertBraces(bool autoInsertBraces); + bool isPartialCompletionEnabled() const; + void setPartialCompletionEnabled(bool partialCompletionEnabled); + private: void addKeywords(); void addMacros(const CPlusPlus::LookupContext &context); @@ -134,6 +137,7 @@ private: CppModelManager *m_manager; Qt::CaseSensitivity m_caseSensitivity; bool m_autoInsertBraces; + bool m_partialCompletionEnabled; bool m_forcedCompletion; diff --git a/src/plugins/cpptools/cpptoolsplugin.cpp b/src/plugins/cpptools/cpptoolsplugin.cpp index 9d190162c82d0bc6a4a9432b99dbf24aa77ad8cc..764fc250b07495e4f4e2b6662e3930d7d4c5958d 100644 --- a/src/plugins/cpptools/cpptoolsplugin.cpp +++ b/src/plugins/cpptools/cpptoolsplugin.cpp @@ -120,6 +120,7 @@ bool CppToolsPlugin::initialize(const QStringList & /*arguments*/, QString *) const bool caseSensitive = settings->value(QLatin1String("CaseSensitive"), true).toBool(); m_completion->setCaseSensitivity(caseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive); m_completion->setAutoInsertBraces(settings->value(QLatin1String("AutoInsertBraces"), true).toBool()); + m_completion->setPartialCompletionEnabled(settings->value(QLatin1String("PartiallyComplete"), true).toBool()); settings->endGroup(); settings->endGroup(); @@ -138,6 +139,7 @@ void CppToolsPlugin::shutdown() settings->beginGroup(QLatin1String("Completion")); settings->setValue(QLatin1String("CaseSensitive"), m_completion->caseSensitivity() == Qt::CaseSensitive); settings->setValue(QLatin1String("AutoInsertBraces"), m_completion->autoInsertBraces()); + settings->setValue(QLatin1String("PartiallyComplete"), m_completion->isPartialCompletionEnabled()); settings->endGroup(); settings->endGroup(); }