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>
This commit is contained in:
Vasiliy Sorokin
2012-10-11 11:18:26 +04:00
committed by David Schulz
parent 67b0637934
commit a134076062
2 changed files with 15 additions and 1 deletions

View File

@@ -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);