summaryrefslogtreecommitdiffstats
path: root/src/axis/valueaxis/chartvalueaxisx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/axis/valueaxis/chartvalueaxisx.cpp')
-rw-r--r--src/axis/valueaxis/chartvalueaxisx.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/axis/valueaxis/chartvalueaxisx.cpp b/src/axis/valueaxis/chartvalueaxisx.cpp
index ead4abf6..ccf49254 100644
--- a/src/axis/valueaxis/chartvalueaxisx.cpp
+++ b/src/axis/valueaxis/chartvalueaxisx.cpp
@@ -92,14 +92,15 @@ QSizeF ChartValueAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constraint) c
QSizeF base = HorizontalAxis::sizeHint(which, constraint);
QStringList ticksList = createValueLabels(min(),max(),m_axis->tickCount(),m_axis->labelFormat());
+ // Width of horizontal axis sizeHint indicates the maximum distance labels can extend past
+ // first and last ticks. Base width is irrelevant.
qreal width = 0;
qreal height = 0;
-
switch (which) {
case Qt::MinimumSize: {
QRectF boundingRect = labelBoundingRect(fn, "...");
- width = qMax(boundingRect.width(), base.width());
+ width = boundingRect.width() / 2.0;
height = boundingRect.height() + labelPadding();
height += base.height();
sh = QSizeF(width, height);
@@ -107,14 +108,17 @@ QSizeF ChartValueAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constraint) c
}
case Qt::PreferredSize: {
int labelHeight = 0;
+ int firstWidth = -1;
foreach (const QString& s, ticksList) {
QRect rect = labelBoundingRect(fn, s);
labelHeight = qMax(rect.height(), labelHeight);
- width += rect.width();
+ width = rect.width();
+ if (firstWidth < 0)
+ firstWidth = width;
}
height = labelHeight + labelPadding();
height += base.height();
- width = qMax(width, base.width());
+ width = qMax(width, qreal(firstWidth)) / 2.0;
sh = QSizeF(width, height);
break;
}