aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/texteditor
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2018-03-02 13:32:34 +0100
committerDavid Schulz <david.schulz@qt.io>2018-03-05 08:35:02 +0000
commit3c4e723b9f5cb2bf69061b9380894cf08aaa1dcc (patch)
treef9f26da93fe3a94f6a1eb9ace49ac4567aa1349e /src/plugins/texteditor
parent124e4499eb64ae50dc0b52c5de5b7cffd679fb3a (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.cpp23
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;
- }
}
}