diff options
author | hjk <hjk121@nokiamail.com> | 2014-09-19 14:08:11 +0200 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2014-09-19 15:47:24 +0200 |
commit | 2fffafe2db9337619e85399451efbc22e17dbadc (patch) | |
tree | 0d8cb3d8f98c4a51ab6b7f8b3933e74208bf948e | |
parent | d0e6da689b5f6c407ec69f17ae6d01493c71b04b (diff) |
TextEditor: CodeAssistant code cosmetics
Change-Id: I349f4d7c6ff77848e03cbcf4726ae21374bf653f
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
-rw-r--r-- | src/plugins/texteditor/basetexteditor_p.h | 1 | ||||
-rw-r--r-- | src/plugins/texteditor/codeassist/codeassistant.cpp | 76 |
2 files changed, 30 insertions, 47 deletions
diff --git a/src/plugins/texteditor/basetexteditor_p.h b/src/plugins/texteditor/basetexteditor_p.h index f5f4fe7f90..f390ac38fe 100644 --- a/src/plugins/texteditor/basetexteditor_p.h +++ b/src/plugins/texteditor/basetexteditor_p.h @@ -50,7 +50,6 @@ namespace TextEditor { class BaseTextDocument; -class CodeAssistant; namespace Internal { class TextEditorOverlay; diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp index f2bed24fec..da2c38a9a8 100644 --- a/src/plugins/texteditor/codeassist/codeassistant.cpp +++ b/src/plugins/texteditor/codeassist/codeassistant.cpp @@ -50,24 +50,7 @@ #include <QScopedPointer> #include <QTimer> -using namespace TextEditor; -using namespace Internal; - -namespace { - -template <class T> -void filterEditorSpecificProviders(QList<T *> *providers, Core::Id editorId) -{ - typename QList<T *>::iterator it = providers->begin(); - while (it != providers->end()) { - if ((*it)->supportsEditor(editorId)) - ++it; - else - it = providers->erase(it); - } -} - -} // Anonymous +using namespace TextEditor::Internal; namespace TextEditor { @@ -77,7 +60,6 @@ class CodeAssistantPrivate : public QObject public: CodeAssistantPrivate(CodeAssistant *assistant); - virtual ~CodeAssistantPrivate(); void configure(BaseTextEditorWidget *editorWidget); void reconfigure(); @@ -100,6 +82,9 @@ public: void stopAutomaticProposalTimer(); void startAutomaticProposalTimer(); + void automaticProposalTimeout(); + void clearAbortedPosition(); + void updateCompletionSettings(const TextEditor::CompletionSettings &settings); virtual bool eventFilter(QObject *o, QEvent *e); @@ -112,13 +97,10 @@ private slots: void processProposalItem(AssistProposalItem *proposalItem); void handlePrefixExpansion(const QString &newPrefix); void finalizeProposal(); - void automaticProposalTimeout(); - void updateCompletionSettings(const TextEditor::CompletionSettings &settings); void explicitlyAborted(); - void clearAbortedPosition(); private: - CodeAssistant *m_q; + CodeAssistant *q; BaseTextEditorWidget *m_editorWidget; CompletionAssistProvider *m_completionProvider; QList<QuickFixAssistProvider *> m_quickFixProviders; @@ -134,8 +116,6 @@ private: static const QChar m_null; }; -} // TextEditor - // -------------------- // CodeAssistantPrivate // -------------------- @@ -144,7 +124,7 @@ const QChar CodeAssistantPrivate::m_null; static const int AutomaticProposalTimerInterval = 400; CodeAssistantPrivate::CodeAssistantPrivate(CodeAssistant *assistant) - : m_q(assistant) + : q(assistant) , m_editorWidget(0) , m_completionProvider(0) , m_requestRunner(0) @@ -157,18 +137,15 @@ CodeAssistantPrivate::CodeAssistantPrivate(CodeAssistant *assistant) { m_automaticProposalTimer.setSingleShot(true); m_automaticProposalTimer.setInterval(AutomaticProposalTimerInterval); - connect(&m_automaticProposalTimer, SIGNAL(timeout()), this, SLOT(automaticProposalTimeout())); - connect(TextEditorSettings::instance(), - SIGNAL(completionSettingsChanged(TextEditor::CompletionSettings)), - this, - SLOT(updateCompletionSettings(TextEditor::CompletionSettings))); - connect(Core::EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)), - this, SLOT(clearAbortedPosition())); -} + connect(&m_automaticProposalTimer, &QTimer::timeout, + this, &CodeAssistantPrivate::automaticProposalTimeout); -CodeAssistantPrivate::~CodeAssistantPrivate() -{ + connect(TextEditorSettings::instance(), &TextEditorSettings::completionSettingsChanged, + this, &CodeAssistantPrivate::updateCompletionSettings); + + connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged, + this, &CodeAssistantPrivate::clearAbortedPosition); } void CodeAssistantPrivate::configure(BaseTextEditorWidget *editorWidget) @@ -180,13 +157,20 @@ void CodeAssistantPrivate::configure(BaseTextEditorWidget *editorWidget) m_editorWidget = editorWidget; m_completionProvider = editorWidget->completionAssistProvider(); - m_quickFixProviders = - ExtensionSystem::PluginManager::getObjects<QuickFixAssistProvider>(); - filterEditorSpecificProviders(&m_quickFixProviders, m_editorWidget->textDocument()->id()); + m_quickFixProviders = ExtensionSystem::PluginManager::getObjects<QuickFixAssistProvider>(); + + Core::Id editorId = m_editorWidget->textDocument()->id(); + auto it = m_quickFixProviders.begin(); + while (it != m_quickFixProviders.end()) { + if ((*it)->supportsEditor(editorId)) + ++it; + else + it = m_quickFixProviders.erase(it); + } m_editorWidget->installEventFilter(this); - connect(m_editorWidget->textDocument(),SIGNAL(mimeTypeChanged()), - m_q, SLOT(reconfigure())); + connect(m_editorWidget->textDocument(), &BaseTextDocument::mimeTypeChanged, + this, &CodeAssistantPrivate::reconfigure); } void CodeAssistantPrivate::reconfigure() @@ -209,8 +193,7 @@ void CodeAssistantPrivate::invoke(AssistKind kind, IAssistProvider *provider) if (isDisplayingProposal() && m_assistKind == kind && !m_proposal->isFragile()) { m_proposalWidget->setReason(ExplicitlyInvoked); - m_proposalWidget->updateProposal( - m_editorWidget->textDocument()->textAt( + m_proposalWidget->updateProposal(m_editorWidget->textAt( m_proposal->basePosition(), m_editorWidget->position() - m_proposal->basePosition())); } else { @@ -344,7 +327,7 @@ void CodeAssistantPrivate::displayProposal(IAssistProposal *newProposal, AssistR this, SLOT(processProposalItem(AssistProposalItem*))); connect(m_proposalWidget, SIGNAL(explicitlyAborted()), this, SLOT(explicitlyAborted())); - m_proposalWidget->setAssistant(m_q); + m_proposalWidget->setAssistant(q); m_proposalWidget->setReason(reason); m_proposalWidget->setKind(m_assistKind); m_proposalWidget->setUnderlyingWidget(m_editorWidget); @@ -415,8 +398,7 @@ CompletionAssistProvider *CodeAssistantPrivate::identifyActivationSequence() const int length = m_completionProvider->activationCharSequenceLength(); if (length == 0) return 0; - QString sequence = m_editorWidget->textDocument()->textAt(m_editorWidget->position() - length, - length); + QString sequence = m_editorWidget->textAt(m_editorWidget->position() - length, length); // In pretty much all cases the sequence will have the appropriate length. Only in the // case of typing the very first characters in the document for providers that request a // length greater than 1 (currently only C++, which specifies 3), the sequence needs to @@ -578,4 +560,6 @@ void CodeAssistant::reconfigure() d->reconfigure(); } +} // namespace TextEditor + #include "codeassistant.moc" |