summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@digia.com>2013-03-19 11:41:40 +0100
committerNikolai Kosjar <nikolai.kosjar@digia.com>2013-03-20 13:45:02 +0100
commit1e59df6fb0de7414f6bc473012e1d18cab16317a (patch)
tree07ae04f91da4264c8fd16ef7867c1f75572cd44c
parent777b5c08ec7b4667113ee887902748eb81b034cd (diff)
downloadqt-creator-1e59df6fb0de7414f6bc473012e1d18cab16317a.tar.gz
TextEditor: Simplify testing of code assistant
Change-Id: I6f16dd775a7c5d8eaa4944d6050bf979be83a303 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
-rw-r--r--src/plugins/texteditor/basetexteditor.cpp7
-rw-r--r--src/plugins/texteditor/basetexteditor.h4
-rw-r--r--src/plugins/texteditor/codeassist/codeassistant.cpp8
-rw-r--r--src/plugins/texteditor/codeassist/codeassistant.h9
4 files changed, 26 insertions, 2 deletions
diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp
index b01aee9122..24486e803b 100644
--- a/src/plugins/texteditor/basetexteditor.cpp
+++ b/src/plugins/texteditor/basetexteditor.cpp
@@ -249,6 +249,8 @@ BaseTextEditorWidget::BaseTextEditorWidget(QWidget *parent)
d->visibleFoldedBlockNumber = d->suggestedVisibleFoldedBlockNumber = -1;
+ connect(d->m_codeAssistant.data(), SIGNAL(finished()), this, SIGNAL(assistFinished()));
+
connect(this, SIGNAL(blockCountChanged(int)), this, SLOT(slotUpdateExtraAreaWidth()));
connect(this, SIGNAL(modificationChanged(bool)), this, SLOT(slotModificationChanged(bool)));
connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(slotCursorPositionChanged()));
@@ -1090,6 +1092,11 @@ void BaseTextEditorWidget::openLinkUnderCursorInNextSplit()
openLink(symbolLink, !alwaysOpenLinksInNextSplit());
}
+void BaseTextEditorWidget::abortAssist()
+{
+ d->m_codeAssistant->destroyContext();
+}
+
void BaseTextEditorWidget::moveLineUpDown(bool up)
{
QTextCursor cursor = textCursor();
diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h
index 0fb1171757..730eb7b276 100644
--- a/src/plugins/texteditor/basetexteditor.h
+++ b/src/plugins/texteditor/basetexteditor.h
@@ -332,8 +332,12 @@ public slots:
void openLinkUnderCursor();
void openLinkUnderCursorInNextSplit();
+ /// Abort code assistant if it is running.
+ void abortAssist();
+
signals:
void changed();
+ void assistFinished();
// ITextEditor
void contentsChanged();
diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp
index 878d838e28..ca2003a600 100644
--- a/src/plugins/texteditor/codeassist/codeassistant.cpp
+++ b/src/plugins/texteditor/codeassist/codeassistant.cpp
@@ -101,6 +101,9 @@ public:
virtual bool eventFilter(QObject *o, QEvent *e);
+signals:
+ void finished();
+
private slots:
void finalizeRequest();
void proposalComputed();
@@ -251,6 +254,7 @@ void CodeAssistantPrivate::requestProposal(AssistReason reason,
m_requestRunner = new ProcessorRunner;
connect(m_requestRunner, SIGNAL(finished()), this, SLOT(proposalComputed()));
connect(m_requestRunner, SIGNAL(finished()), this, SLOT(finalizeRequest()));
+ connect(m_requestRunner, SIGNAL(finished()), this, SIGNAL(finished()));
assistInterface->prepareForAsyncUse();
m_requestRunner->setReason(reason);
m_requestRunner->setProcessor(processor);
@@ -487,7 +491,9 @@ bool CodeAssistantPrivate::eventFilter(QObject *o, QEvent *e)
// CodeAssistant
// -------------
CodeAssistant::CodeAssistant() : d(new CodeAssistantPrivate(this))
-{}
+{
+ connect(d, SIGNAL(finished()), SIGNAL(finished()));
+}
CodeAssistant::~CodeAssistant()
{
diff --git a/src/plugins/texteditor/codeassist/codeassistant.h b/src/plugins/texteditor/codeassist/codeassistant.h
index b030751390..5041ff9cfb 100644
--- a/src/plugins/texteditor/codeassist/codeassistant.h
+++ b/src/plugins/texteditor/codeassist/codeassistant.h
@@ -34,14 +34,18 @@
#include <texteditor/texteditor_global.h>
+#include <QObject>
+
namespace TextEditor {
class CodeAssistantPrivate;
class IAssistProvider;
class BaseTextEditor;
-class CodeAssistant
+class CodeAssistant : public QObject
{
+ Q_OBJECT
+
public:
CodeAssistant();
~CodeAssistant();
@@ -55,6 +59,9 @@ public:
void invoke(AssistKind assistKind, IAssistProvider *provider = 0);
+signals:
+ void finished();
+
private:
CodeAssistantPrivate *d;
};