Fixed the hangup bug because of very long label words
--HG-- branch : feature
This commit is contained in:
parent
166ef0b82e
commit
21445db240
|
@ -445,6 +445,21 @@ QStringList VTextManager::SplitString(const QString &qs, qreal fW, const QFontMe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
qslLines << qsCurrent;
|
qslLines << qsCurrent;
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
int iHorSp = fm.width(" ");
|
||||||
|
while (i < qslLines.count()) {
|
||||||
|
if (fm.width(qslLines[i]) + iHorSp > fW) {
|
||||||
|
int iPos = qslLines[i].length() >> 1;
|
||||||
|
QString qs1 = qslLines[i].left(iPos);
|
||||||
|
QString qs2 = qslLines[i].mid(iPos);
|
||||||
|
qslLines[i] = qs1;
|
||||||
|
qslLines.insert(i + 1, qs2);
|
||||||
|
} else {
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return qslLines;
|
return qslLines;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -232,6 +232,7 @@ void VTextGraphicsItem::Clear()
|
||||||
*/
|
*/
|
||||||
void VTextGraphicsItem::SetSize(qreal fW, qreal fH)
|
void VTextGraphicsItem::SetSize(qreal fW, qreal fH)
|
||||||
{
|
{
|
||||||
|
qDebug() << "Setting size to" << fW << parentItem()->boundingRect().width();
|
||||||
// don't allow resize under specific size
|
// don't allow resize under specific size
|
||||||
if (fW < MIN_W || fH < m_iMinH)
|
if (fW < MIN_W || fH < m_iMinH)
|
||||||
{
|
{
|
||||||
|
@ -255,6 +256,7 @@ void VTextGraphicsItem::SetSize(qreal fW, qreal fH)
|
||||||
fH = m_iMinH;
|
fH = m_iMinH;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qDebug() << "Actual size set to" << fW;
|
||||||
m_rectBoundingBox.setTopLeft(QPointF(0, 0));
|
m_rectBoundingBox.setTopLeft(QPointF(0, 0));
|
||||||
m_rectBoundingBox.setWidth(fW);
|
m_rectBoundingBox.setWidth(fW);
|
||||||
m_rectBoundingBox.setHeight(fH);
|
m_rectBoundingBox.setHeight(fH);
|
||||||
|
@ -599,6 +601,7 @@ void VTextGraphicsItem::CorrectLabel()
|
||||||
{
|
{
|
||||||
++iFS;
|
++iFS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// decrease the font size until the bounding rect is big enough
|
// decrease the font size until the bounding rect is big enough
|
||||||
while (m_tm.IsBigEnough(m_rectBoundingBox.width(), m_rectBoundingBox.height(), iFS, fMinW, fMinH) == false)
|
while (m_tm.IsBigEnough(m_rectBoundingBox.width(), m_rectBoundingBox.height(), iFS, fMinW, fMinH) == false)
|
||||||
{
|
{
|
||||||
|
@ -610,6 +613,8 @@ void VTextGraphicsItem::CorrectLabel()
|
||||||
{
|
{
|
||||||
SetSize(fMinW, fMinH);
|
SetSize(fMinW, fMinH);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qDebug() << "DEC FONT" << iFS << m_rectBoundingBox.width() << fMinW;
|
||||||
}
|
}
|
||||||
qreal dX;
|
qreal dX;
|
||||||
qreal dY;
|
qreal dY;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user