TextEditor: Simplify testing of code assistant

Change-Id: I6f16dd775a7c5d8eaa4944d6050bf979be83a303
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
Nikolai Kosjar
2013-03-19 11:41:40 +01:00
parent 777b5c08ec
commit 1e59df6fb0
4 changed files with 26 additions and 2 deletions

View File

@@ -249,6 +249,8 @@ BaseTextEditorWidget::BaseTextEditorWidget(QWidget *parent)
d->visibleFoldedBlockNumber = d->suggestedVisibleFoldedBlockNumber = -1; 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(blockCountChanged(int)), this, SLOT(slotUpdateExtraAreaWidth()));
connect(this, SIGNAL(modificationChanged(bool)), this, SLOT(slotModificationChanged(bool))); connect(this, SIGNAL(modificationChanged(bool)), this, SLOT(slotModificationChanged(bool)));
connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(slotCursorPositionChanged())); connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(slotCursorPositionChanged()));
@@ -1090,6 +1092,11 @@ void BaseTextEditorWidget::openLinkUnderCursorInNextSplit()
openLink(symbolLink, !alwaysOpenLinksInNextSplit()); openLink(symbolLink, !alwaysOpenLinksInNextSplit());
} }
void BaseTextEditorWidget::abortAssist()
{
d->m_codeAssistant->destroyContext();
}
void BaseTextEditorWidget::moveLineUpDown(bool up) void BaseTextEditorWidget::moveLineUpDown(bool up)
{ {
QTextCursor cursor = textCursor(); QTextCursor cursor = textCursor();

View File

@@ -332,8 +332,12 @@ public slots:
void openLinkUnderCursor(); void openLinkUnderCursor();
void openLinkUnderCursorInNextSplit(); void openLinkUnderCursorInNextSplit();
/// Abort code assistant if it is running.
void abortAssist();
signals: signals:
void changed(); void changed();
void assistFinished();
// ITextEditor // ITextEditor
void contentsChanged(); void contentsChanged();

View File

@@ -101,6 +101,9 @@ public:
virtual bool eventFilter(QObject *o, QEvent *e); virtual bool eventFilter(QObject *o, QEvent *e);
signals:
void finished();
private slots: private slots:
void finalizeRequest(); void finalizeRequest();
void proposalComputed(); void proposalComputed();
@@ -251,6 +254,7 @@ void CodeAssistantPrivate::requestProposal(AssistReason reason,
m_requestRunner = new ProcessorRunner; m_requestRunner = new ProcessorRunner;
connect(m_requestRunner, SIGNAL(finished()), this, SLOT(proposalComputed())); connect(m_requestRunner, SIGNAL(finished()), this, SLOT(proposalComputed()));
connect(m_requestRunner, SIGNAL(finished()), this, SLOT(finalizeRequest())); connect(m_requestRunner, SIGNAL(finished()), this, SLOT(finalizeRequest()));
connect(m_requestRunner, SIGNAL(finished()), this, SIGNAL(finished()));
assistInterface->prepareForAsyncUse(); assistInterface->prepareForAsyncUse();
m_requestRunner->setReason(reason); m_requestRunner->setReason(reason);
m_requestRunner->setProcessor(processor); m_requestRunner->setProcessor(processor);
@@ -487,7 +491,9 @@ bool CodeAssistantPrivate::eventFilter(QObject *o, QEvent *e)
// CodeAssistant // CodeAssistant
// ------------- // -------------
CodeAssistant::CodeAssistant() : d(new CodeAssistantPrivate(this)) CodeAssistant::CodeAssistant() : d(new CodeAssistantPrivate(this))
{} {
connect(d, SIGNAL(finished()), SIGNAL(finished()));
}
CodeAssistant::~CodeAssistant() CodeAssistant::~CodeAssistant()
{ {

View File

@@ -34,14 +34,18 @@
#include <texteditor/texteditor_global.h> #include <texteditor/texteditor_global.h>
#include <QObject>
namespace TextEditor { namespace TextEditor {
class CodeAssistantPrivate; class CodeAssistantPrivate;
class IAssistProvider; class IAssistProvider;
class BaseTextEditor; class BaseTextEditor;
class CodeAssistant class CodeAssistant : public QObject
{ {
Q_OBJECT
public: public:
CodeAssistant(); CodeAssistant();
~CodeAssistant(); ~CodeAssistant();
@@ -55,6 +59,9 @@ public:
void invoke(AssistKind assistKind, IAssistProvider *provider = 0); void invoke(AssistKind assistKind, IAssistProvider *provider = 0);
signals:
void finished();
private: private:
CodeAssistantPrivate *d; CodeAssistantPrivate *d;
}; };