TextEditor: Make automatic completion timeout configurable

Allow to configure the timeout in the range from 0 to 500ms.

Task-number: QTCREATORBUG-13393
Change-Id: I3e421109db919ab0dd5d63b8cbb9339fce132dbb
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2014-12-05 09:59:15 +01:00
parent 949a86f035
commit ec6c13d02c
8 changed files with 126 additions and 80 deletions

View File

@@ -82,7 +82,7 @@ public:
void startAutomaticProposalTimer();
void automaticProposalTimeout();
void clearAbortedPosition();
void updateCompletionSettings(const TextEditor::CompletionSettings &settings);
void updateFromCompletionSettings(const TextEditor::CompletionSettings &settings);
virtual bool eventFilter(QObject *o, QEvent *e);
@@ -115,8 +115,6 @@ private:
// --------------------
const QChar CodeAssistantPrivate::m_null;
static const int AutomaticProposalTimerInterval = 400;
CodeAssistantPrivate::CodeAssistantPrivate(CodeAssistant *assistant)
: q(assistant)
, m_editorWidget(0)
@@ -125,17 +123,14 @@ CodeAssistantPrivate::CodeAssistantPrivate(CodeAssistant *assistant)
, m_assistKind(TextEditor::Completion)
, m_proposalWidget(0)
, m_receivedContentWhileWaiting(false)
, m_settings(TextEditorSettings::completionSettings())
, m_abortedBasePosition(-1)
{
m_automaticProposalTimer.setSingleShot(true);
m_automaticProposalTimer.setInterval(AutomaticProposalTimerInterval);
connect(&m_automaticProposalTimer, &QTimer::timeout,
this, &CodeAssistantPrivate::automaticProposalTimeout);
connect(TextEditorSettings::instance(), &TextEditorSettings::completionSettingsChanged,
this, &CodeAssistantPrivate::updateCompletionSettings);
this, &CodeAssistantPrivate::updateFromCompletionSettings);
connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged,
this, &CodeAssistantPrivate::clearAbortedPosition);
@@ -456,9 +451,11 @@ void CodeAssistantPrivate::stopAutomaticProposalTimer()
m_automaticProposalTimer.stop();
}
void CodeAssistantPrivate::updateCompletionSettings(const TextEditor::CompletionSettings &settings)
void CodeAssistantPrivate::updateFromCompletionSettings(
const TextEditor::CompletionSettings &settings)
{
m_settings = settings;
m_automaticProposalTimer.setInterval(m_settings.m_automaticProposalTimeoutInMs);
}
void CodeAssistantPrivate::explicitlyAborted()
@@ -520,6 +517,11 @@ void CodeAssistant::configure(TextEditorWidget *editorWidget)
d->configure(editorWidget);
}
void CodeAssistant::updateFromCompletionSettings(const CompletionSettings &settings)
{
d->updateFromCompletionSettings(settings);
}
void CodeAssistant::process()
{
d->process();