diff options
author | Vasiliy Sorokin <sorokin.vasiliy@gmail.com> | 2012-10-11 11:18:26 +0400 |
---|---|---|
committer | David Schulz <david.schulz@digia.com> | 2012-10-30 08:36:30 +0100 |
commit | a1340760620a18004a8244e7815bfe645a812d50 (patch) | |
tree | 63fea39e7cbc3e674883c1a0c3edd1736072ac74 | |
parent | 67b0637934d0aacc5f9e3525fb8e91623fd7a9bf (diff) | |
download | qt-creator-a1340760620a18004a8244e7815bfe645a812d50.tar.gz |
Showing asterisk on EditorToolbar for unsaved files with long names
Task-number: QTCREATORBUG-8003
Change-Id: If9ac6d75123e65486ff0cf243c9537805f3fe5a3
Reviewed-by: David Schulz <david.schulz@digia.com>
-rw-r--r-- | src/plugins/coreplugin/editortoolbar.cpp | 1 | ||||
-rw-r--r-- | src/plugins/coreplugin/manhattanstyle.cpp | 15 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/plugins/coreplugin/editortoolbar.cpp b/src/plugins/coreplugin/editortoolbar.cpp index 6b05293e36..7dafb93e0c 100644 --- a/src/plugins/coreplugin/editortoolbar.cpp +++ b/src/plugins/coreplugin/editortoolbar.cpp @@ -134,6 +134,7 @@ EditorToolBar::EditorToolBar(QWidget *parent) : connect(d->m_goForwardAction, SIGNAL(triggered()), this, SIGNAL(goForwardClicked())); d->m_editorList->setProperty("hideicon", true); + d->m_editorList->setProperty("notelideasterisk", true); d->m_editorList->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); d->m_editorList->setMinimumContentsLength(20); d->m_editorList->setModel(d->m_editorsListModel); diff --git a/src/plugins/coreplugin/manhattanstyle.cpp b/src/plugins/coreplugin/manhattanstyle.cpp index 3b0163217a..330f6576d3 100644 --- a/src/plugins/coreplugin/manhattanstyle.cpp +++ b/src/plugins/coreplugin/manhattanstyle.cpp @@ -718,7 +718,20 @@ void ManhattanStyle::drawControl(ControlElement element, const QStyleOption *opt editRect.adjust(0, 0, -13, 0); } - QString text = option->fontMetrics.elidedText(cb->currentText, Qt::ElideRight, editRect.width()); + QLatin1Char asterisk('*'); + int elideWidth = editRect.width(); + + bool notElideAsterisk = widget && widget->property("notelideasterisk").toBool() + && cb->currentText.endsWith(asterisk) + && option->fontMetrics.width(cb->currentText) > elideWidth; + + QString text; + if (notElideAsterisk) { + elideWidth -= option->fontMetrics.width(asterisk); + text = asterisk; + } + text.prepend(option->fontMetrics.elidedText(cb->currentText, Qt::ElideRight, elideWidth)); + if ((option->state & State_Enabled)) { painter->setPen(QColor(0, 0, 0, 70)); painter->drawText(editRect.adjusted(1, 0, -1, 0), Qt::AlignLeft | Qt::AlignVCenter, text); |