From 78f1fca9aa55311a84b6a4cbd6507b70398fff39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= Date: Fri, 12 Dec 2008 16:36:33 +0100 Subject: Added configuration options for code completion It is now possible to choose between case-sensitive or case-insensitive completion. Also, you can now disable the automatic insertion of braces. --- src/plugins/cpptools/cpptoolsplugin.cpp | 37 ++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) (limited to 'src/plugins/cpptools/cpptoolsplugin.cpp') diff --git a/src/plugins/cpptools/cpptoolsplugin.cpp b/src/plugins/cpptools/cpptoolsplugin.cpp index 1aefe3d49e..d1b9e34216 100644 --- a/src/plugins/cpptools/cpptoolsplugin.cpp +++ b/src/plugins/cpptools/cpptoolsplugin.cpp @@ -32,6 +32,8 @@ ***************************************************************************/ #include "cpptoolsplugin.h" + +#include "completionsettingspage.h" #include "cppclassesfilter.h" #include "cppcodecompletion.h" #include "cppfunctionsfilter.h" @@ -52,6 +54,7 @@ #include #include #include +#include #include #include @@ -84,13 +87,14 @@ bool CppToolsPlugin::initialize(const QStringList & /*arguments*/, QString *) // Objects m_modelManager = new CppModelManager(this); addAutoReleasedObject(m_modelManager); - CppCodeCompletion *cppcodecompletion = new CppCodeCompletion(m_modelManager, m_core); - addAutoReleasedObject(cppcodecompletion); + CppCodeCompletion *m_completion = new CppCodeCompletion(m_modelManager, m_core); + addAutoReleasedObject(m_completion); CppQuickOpenFilter *quickOpenFilter = new CppQuickOpenFilter(m_modelManager, m_core->editorManager()); addAutoReleasedObject(quickOpenFilter); addAutoReleasedObject(new CppClassesFilter(m_modelManager, m_core->editorManager())); addAutoReleasedObject(new CppFunctionsFilter(m_modelManager, m_core->editorManager())); + addAutoReleasedObject(new CompletionSettingsPage(m_completion)); // Menus Core::IActionContainer *mtools = am->actionContainer(Core::Constants::M_TOOLS); @@ -110,6 +114,16 @@ bool CppToolsPlugin::initialize(const QStringList & /*arguments*/, QString *) mcpptools->addAction(command); connect(switchAction, SIGNAL(triggered()), this, SLOT(switchHeaderSource())); + // Restore settings + QSettings *settings = m_core->settings(); + settings->beginGroup(QLatin1String("CppTools")); + settings->beginGroup(QLatin1String("Completion")); + 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()); + settings->endGroup(); + settings->endGroup(); + return true; } @@ -117,6 +131,18 @@ void CppToolsPlugin::extensionsInitialized() { } +void CppToolsPlugin::shutdown() +{ + // Save settings + QSettings *settings = m_core->settings(); + settings->beginGroup(QLatin1String("CppTools")); + settings->beginGroup(QLatin1String("Completion")); + settings->setValue(QLatin1String("CaseSensitive"), m_completion->caseSensitivity() == Qt::CaseSensitive); + settings->setValue(QLatin1String("AutoInsertBraces"), m_completion->autoInsertBraces()); + settings->endGroup(); + settings->endGroup(); +} + void CppToolsPlugin::switchHeaderSource() { if (!m_core) @@ -150,7 +176,12 @@ QFileInfo CppToolsPlugin::findFile(const QDir &dir, const QString &name, } // Figure out file type -enum FileType { HeaderFile, C_SourceFile, CPP_SourceFile, UnknownType }; +enum FileType { + HeaderFile, + C_SourceFile, + CPP_SourceFile, + UnknownType +}; static inline FileType fileType(const Core::MimeDatabase *mimeDatase, const QFileInfo & fi) { -- cgit v1.2.1