diff options
author | David Schulz <david.schulz@qt.io> | 2018-03-02 13:32:34 +0100 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2018-03-05 08:35:02 +0000 |
commit | 3c4e723b9f5cb2bf69061b9380894cf08aaa1dcc (patch) | |
tree | f9f26da93fe3a94f6a1eb9ace49ac4567aa1349e /src/plugins/texteditor | |
parent | 124e4499eb64ae50dc0b52c5de5b7cffd679fb3a (diff) |
CodeAssist: move destroy context condition to function
Increasing readability by moving complex construct into own function.
Change-Id: I4cad1a279293e3348f550e7c423d356d9c79769f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/texteditor')
-rw-r--r-- | src/plugins/texteditor/codeassist/codeassistant.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp index e84fbe1aa07..3ba37005582 100644 --- a/src/plugins/texteditor/codeassist/codeassistant.cpp +++ b/src/plugins/texteditor/codeassist/codeassistant.cpp @@ -91,6 +91,7 @@ private: void handlePrefixExpansion(const QString &newPrefix); void finalizeProposal(); void explicitlyAborted(); + bool isDestroyEvent(int key, const QString &keyText); private: CodeAssistant *q = nullptr; @@ -507,6 +508,15 @@ void CodeAssistantPrivate::clearAbortedPosition() m_abortedBasePosition = -1; } +bool CodeAssistantPrivate::isDestroyEvent(int key, const QString &keyText) +{ + if (keyText.isEmpty()) + return key != Qt::LeftArrow && key != Qt::RightArrow && key != Qt::Key_Shift; + else if (auto *provider = dynamic_cast<CompletionAssistProvider *>(m_requestProvider)) + return !provider->isContinuationChar(keyText.at(0)); + return false; +} + bool CodeAssistantPrivate::eventFilter(QObject *o, QEvent *e) { Q_UNUSED(o); @@ -519,19 +529,10 @@ bool CodeAssistantPrivate::eventFilter(QObject *o, QEvent *e) QKeyEvent *keyEvent = static_cast<QKeyEvent *>(e); const QString &keyText = keyEvent->text(); - CompletionAssistProvider *completionProvider = nullptr; - if ((keyText.isEmpty() - && keyEvent->key() != Qt::LeftArrow - && keyEvent->key() != Qt::RightArrow - && keyEvent->key() != Qt::Key_Shift) - || (!keyText.isEmpty() - && (((completionProvider = dynamic_cast<CompletionAssistProvider *>(m_requestProvider)) - ? !completionProvider->isContinuationChar(keyText.at(0)) - : false)))) { + if (isDestroyEvent(keyEvent->key(), keyText)) destroyContext(); - } else if (!keyText.isEmpty() && !m_receivedContentWhileWaiting) { + else if (!keyText.isEmpty() && !m_receivedContentWhileWaiting) m_receivedContentWhileWaiting = true; - } } } |