forked from qt-creator/qt-creator
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:
committed by
David Schulz
parent
67b0637934
commit
a134076062
@@ -134,6 +134,7 @@ EditorToolBar::EditorToolBar(QWidget *parent) :
|
|||||||
connect(d->m_goForwardAction, SIGNAL(triggered()), this, SIGNAL(goForwardClicked()));
|
connect(d->m_goForwardAction, SIGNAL(triggered()), this, SIGNAL(goForwardClicked()));
|
||||||
|
|
||||||
d->m_editorList->setProperty("hideicon", true);
|
d->m_editorList->setProperty("hideicon", true);
|
||||||
|
d->m_editorList->setProperty("notelideasterisk", true);
|
||||||
d->m_editorList->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
d->m_editorList->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||||
d->m_editorList->setMinimumContentsLength(20);
|
d->m_editorList->setMinimumContentsLength(20);
|
||||||
d->m_editorList->setModel(d->m_editorsListModel);
|
d->m_editorList->setModel(d->m_editorsListModel);
|
||||||
|
|||||||
@@ -718,7 +718,20 @@ void ManhattanStyle::drawControl(ControlElement element, const QStyleOption *opt
|
|||||||
editRect.adjust(0, 0, -13, 0);
|
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)) {
|
if ((option->state & State_Enabled)) {
|
||||||
painter->setPen(QColor(0, 0, 0, 70));
|
painter->setPen(QColor(0, 0, 0, 70));
|
||||||
painter->drawText(editRect.adjusted(1, 0, -1, 0), Qt::AlignLeft | Qt::AlignVCenter, text);
|
painter->drawText(editRect.adjusted(1, 0, -1, 0), Qt::AlignLeft | Qt::AlignVCenter, text);
|
||||||
|
|||||||
Reference in New Issue
Block a user