summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cpptoolsplugin.cpp
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2008-12-12 16:36:33 +0100
committerThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2008-12-15 11:42:43 +0100
commit78f1fca9aa55311a84b6a4cbd6507b70398fff39 (patch)
tree62329c67f42f472fbee8a9ecb2e1963a3d01cde1 /src/plugins/cpptools/cpptoolsplugin.cpp
parent5c5167717f479ee5cccab179e0793620dc11a229 (diff)
downloadqt-creator-78f1fca9aa55311a84b6a4cbd6507b70398fff39.tar.gz
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.
Diffstat (limited to 'src/plugins/cpptools/cpptoolsplugin.cpp')
-rw-r--r--src/plugins/cpptools/cpptoolsplugin.cpp37
1 files changed, 34 insertions, 3 deletions
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 <QtCore/QFileInfo>
#include <QtCore/QDir>
#include <QtCore/QDebug>
+#include <QtCore/QSettings>
#include <QtGui/QMenu>
#include <QtGui/QAction>
@@ -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)
{