CodeAssist: Remove unrelated member from ProcessorRunner.

Change-Id: I53ca41e6d3309680d7153c0847c31b8380856848
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2016-03-16 13:32:26 +01:00
parent 1355001e22
commit 08655de4a5
3 changed files with 15 additions and 36 deletions

View File

@@ -85,7 +85,6 @@ public:
virtual bool eventFilter(QObject *o, QEvent *e); virtual bool eventFilter(QObject *o, QEvent *e);
private: private:
void proposalComputed();
void processProposalItem(AssistProposalItemInterface *proposalItem); void processProposalItem(AssistProposalItemInterface *proposalItem);
void handlePrefixExpansion(const QString &newPrefix); void handlePrefixExpansion(const QString &newPrefix);
void finalizeProposal(); void finalizeProposal();
@@ -95,6 +94,7 @@ private:
CodeAssistant *q; CodeAssistant *q;
TextEditorWidget *m_editorWidget; TextEditorWidget *m_editorWidget;
Internal::ProcessorRunner *m_requestRunner; Internal::ProcessorRunner *m_requestRunner;
QMetaObject::Connection m_runnerConnection;
IAssistProvider *m_requestProvider; IAssistProvider *m_requestProvider;
IAssistProcessor *m_asyncProcessor; IAssistProcessor *m_asyncProcessor;
AssistKind m_assistKind; AssistKind m_assistKind;
@@ -226,14 +226,21 @@ void CodeAssistantPrivate::requestProposal(AssistReason reason,
m_requestProvider = provider; m_requestProvider = provider;
m_requestRunner = new ProcessorRunner; m_requestRunner = new ProcessorRunner;
m_runnerConnection = connect(m_requestRunner, &ProcessorRunner::finished,
this, [this, reason](){
// Since the request runner is a different thread, there's still a gap in which the
// queued signal could be processed after an invalidation of the current request.
if (!m_requestRunner || m_requestRunner != sender())
return;
IAssistProposal *proposal = m_requestRunner->proposal();
invalidateCurrentRequestData();
displayProposal(proposal, reason);
emit q->finished();
});
connect(m_requestRunner, &ProcessorRunner::finished, connect(m_requestRunner, &ProcessorRunner::finished,
this, &CodeAssistantPrivate::proposalComputed); m_requestRunner, &ProcessorRunner::deleteLater);
connect(m_requestRunner, &ProcessorRunner::finished,
m_requestRunner, &QObject::deleteLater);
connect(m_requestRunner, &ProcessorRunner::finished,
q, &CodeAssistant::finished);
assistInterface->prepareForAsyncUse(); assistInterface->prepareForAsyncUse();
m_requestRunner->setReason(reason);
m_requestRunner->setProcessor(processor); m_requestRunner->setProcessor(processor);
m_requestRunner->setAssistInterface(assistInterface); m_requestRunner->setAssistInterface(assistInterface);
m_requestRunner->start(); m_requestRunner->start();
@@ -268,25 +275,11 @@ void CodeAssistantPrivate::cancelCurrentRequest()
{ {
if (m_requestRunner) { if (m_requestRunner) {
m_requestRunner->setDiscardProposal(true); m_requestRunner->setDiscardProposal(true);
disconnect(m_requestRunner, &ProcessorRunner::finished, disconnect(m_runnerConnection);
this, &CodeAssistantPrivate::proposalComputed);
} }
invalidateCurrentRequestData(); invalidateCurrentRequestData();
} }
void CodeAssistantPrivate::proposalComputed()
{
// Since the request runner is a different thread, there's still a gap in which the queued
// signal could be processed after an invalidation of the current request.
if (!m_requestRunner || m_requestRunner != sender())
return;
IAssistProposal *newProposal = m_requestRunner->proposal();
AssistReason reason = m_requestRunner->reason();
invalidateCurrentRequestData();
displayProposal(newProposal, reason);
}
void CodeAssistantPrivate::displayProposal(IAssistProposal *newProposal, AssistReason reason) void CodeAssistantPrivate::displayProposal(IAssistProposal *newProposal, AssistReason reason)
{ {
if (!newProposal) if (!newProposal)

View File

@@ -65,16 +65,6 @@ IAssistProposal *ProcessorRunner::proposal() const
return m_proposal; return m_proposal;
} }
void ProcessorRunner::setReason(AssistReason reason)
{
m_reason = reason;
}
AssistReason ProcessorRunner::reason() const
{
return m_reason;
}
void ProcessorRunner::setDiscardProposal(bool discard) void ProcessorRunner::setDiscardProposal(bool discard)
{ {
m_discardProposal = discard; m_discardProposal = discard;

View File

@@ -49,10 +49,6 @@ public:
void setAssistInterface(AssistInterface *interface); void setAssistInterface(AssistInterface *interface);
void setDiscardProposal(bool discard); void setDiscardProposal(bool discard);
// @TODO: Not really necessary...
void setReason(AssistReason reason);
AssistReason reason() const;
virtual void run(); virtual void run();
IAssistProposal *proposal() const; IAssistProposal *proposal() const;