##// END OF EJS Templates
Fix label truncate issues with multiple axes...
Fix label truncate issues with multiple axes If there were multiple axes on single side of the chart, the axes wider/higher than average never got their preferred size, causing labels to truncate. Fixed by calculating the required squeeze ratio instead of just blindly using even fraction of available space. Task-number: QTRD-1897 Reviewed-by: Mika Salmela

File last commit:

r2133:8c175959daec
r2411:6fca0e6f42a3
Show More
charttitle.cpp
94 lines | 2.2 KiB | text/x-c | CppLexer
Michal Klocek
Refactors layout...
r1965 /****************************************************************************
**
** Copyright (C) 2012 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
** This file is part of the Qt Commercial Charts Add-on.
**
** $QT_BEGIN_LICENSE$
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia.
**
** If you have questions regarding the use of this file, please use
** contact form at http://qt.digia.com
** $QT_END_LICENSE$
**
****************************************************************************/
#include "charttitle_p.h"
#include <QFont>
#include <QFontMetrics>
#include <QDebug>
QTCOMMERCIALCHART_BEGIN_NAMESPACE
Jani Honkonen
more coding style fixes for src-folder...
r2104 ChartTitle::ChartTitle(QGraphicsItem *parent)
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 : QGraphicsSimpleTextItem(parent)
Michal Klocek
Refactors layout...
r1965 {
}
ChartTitle::~ChartTitle()
{
}
void ChartTitle::setText(const QString &text)
{
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 m_text = text;
Michal Klocek
Refactors layout...
r1965 }
QString ChartTitle::text() const
{
return m_text;
}
void ChartTitle::setGeometry(const QRectF &rect)
{
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 QFontMetrics fn(font());
Michal Klocek
Refactors layout...
r1965
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 int width = rect.width();
Michal Klocek
Refactors layout...
r1965
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 if (fn.boundingRect(m_text).width() > width) {
QString string = m_text + "...";
while (fn.boundingRect(string).width() > width && string.length() > 3)
string.remove(string.length() - 4, 1);
QGraphicsSimpleTextItem::setText(string);
} else {
QGraphicsSimpleTextItem::setText(m_text);
}
Michal Klocek
Refactors layout...
r1965
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 setPos(rect.topLeft());
Michal Klocek
Refactors layout...
r1965 }
QSizeF ChartTitle::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const
{
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 Q_UNUSED(constraint);
QFontMetrics fn(font());
QSizeF sh;
Michal Klocek
Refactors layout...
r1965
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 switch (which) {
Michal Klocek
Refactors layout...
r1965 case Qt::MinimumSize:
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 sh = QSizeF(fn.boundingRect("...").width(), fn.height());
Michal Klocek
Refactors layout...
r1965 break;
case Qt::PreferredSize:
Michal Klocek
Updates axis drawing code...
r2133 sh = fn.boundingRect(m_text).size();
Michal Klocek
Refactors layout...
r1965 break;
case Qt::MaximumSize:
Michal Klocek
Updates axis drawing code...
r2133 sh = fn.boundingRect(m_text).size();
Michal Klocek
Refactors layout...
r1965 break;
case Qt::MinimumDescent:
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 sh = QSizeF(0, fn.descent());
Michal Klocek
Refactors layout...
r1965 break;
default:
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 break;
}
Michal Klocek
Refactors layout...
r1965
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 return sh;
Michal Klocek
Refactors layout...
r1965 }
QTCOMMERCIALCHART_END_NAMESPACE