From dd2f8cef9daec2b4c8bf988cc9e0679c4b01a009 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 3 Dec 2018 14:21:16 +0100 Subject: [PATCH] TextEditor: Chop of multi line proposal item texts Change-Id: I57e8b02bffc06a84dbee86e220956baea5ff80a3 Reviewed-by: Nikolai Kosjar --- .../codeassist/genericproposalwidget.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp index 079b7b2db1d..7680d09dee4 100644 --- a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp +++ b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp @@ -89,14 +89,19 @@ QVariant ModelAdapter::data(const QModelIndex &index, int role) const if (!index.isValid() || index.row() >= m_completionModel->size()) return QVariant(); - if (role == Qt::DisplayRole) - return m_completionModel->text(index.row()); - else if (role == Qt::DecorationRole) + if (role == Qt::DisplayRole) { + const QString text = m_completionModel->text(index.row()); + const int lineBreakPos = text.indexOf('\n'); + if (lineBreakPos < 0) + return text; + return QString(text.leftRef(lineBreakPos) + QLatin1String(" (...)")); + } else if (role == Qt::DecorationRole) { return m_completionModel->icon(index.row()); - else if (role == Qt::WhatsThisRole) + } else if (role == Qt::WhatsThisRole) { return m_completionModel->detail(index.row()); - else if (role == Qt::UserRole) + } else if (role == Qt::UserRole) { return m_completionModel->proposalItem(index.row())->requiresFixIts(); + } return QVariant(); }