From 74f13467c1adeca3d553286b907ba7e80ffa6d87 Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Thu, 11 Nov 2010 12:05:01 +0100 Subject: [PATCH] QmlOutline: Only show first line of annotation Fix the artifacts when the annotations contain a multi-line string. Task-number: QTCREATORBUG-2889 Reviewed-by: erikv --- src/plugins/qmljseditor/qmljsoutlinetreeview.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp b/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp index 1e47392f70d..02676195592 100644 --- a/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp +++ b/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp @@ -36,13 +36,21 @@ void QmlJSOutlineItemDelegate::paint(QPainter *painter, const QStyleOptionViewIt painter->fillRect(opt.rect, option.palette.highlight()); const QString typeString = index.data(Qt::DisplayRole).toString(); - const QString annotationString = index.data(QmlOutlineModel::AnnotationRole).toString(); + QString annotationString = index.data(QmlOutlineModel::AnnotationRole).toString(); QStyle *style = QApplication::style(); style->drawControl(QStyle::CE_ItemViewItem, &opt, painter, 0); if (!annotationString.isEmpty()) { + + int newlinePos = annotationString.indexOf(QLatin1Char('\n')); + if (newlinePos != -1) { + // print first line with '...' at end + const QChar ellipsisChar(0x2026); + annotationString = annotationString.left(newlinePos) + ellipsisChar; + } + QPalette::ColorRole textColorRole = QPalette::Text; if (option.state & QStyle::State_Selected) { textColorRole = QPalette::HighlightedText; -- GitLab