summaryrefslogtreecommitdiffstats
path: root/src/axis/logvalueaxis
diff options
context:
space:
mode:
Diffstat (limited to 'src/axis/logvalueaxis')
-rw-r--r--src/axis/logvalueaxis/chartlogvalueaxisx.cpp12
-rw-r--r--src/axis/logvalueaxis/chartlogvalueaxisy.cpp11
2 files changed, 16 insertions, 7 deletions
diff --git a/src/axis/logvalueaxis/chartlogvalueaxisx.cpp b/src/axis/logvalueaxis/chartlogvalueaxisx.cpp
index 39e9db6a..426b7618 100644
--- a/src/axis/logvalueaxis/chartlogvalueaxisx.cpp
+++ b/src/axis/logvalueaxis/chartlogvalueaxisx.cpp
@@ -99,14 +99,15 @@ QSizeF ChartLogValueAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constraint
ticksList = createLogValueLabels(m_axis->min(), m_axis->max(), m_axis->base(), tickCount, m_axis->labelFormat());
else
ticksList.append(QString(" "));
+ // 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);
@@ -114,14 +115,17 @@ QSizeF ChartLogValueAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constraint
}
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;
}
diff --git a/src/axis/logvalueaxis/chartlogvalueaxisy.cpp b/src/axis/logvalueaxis/chartlogvalueaxisy.cpp
index d945e795..8a63a885 100644
--- a/src/axis/logvalueaxis/chartlogvalueaxisy.cpp
+++ b/src/axis/logvalueaxis/chartlogvalueaxisy.cpp
@@ -100,6 +100,8 @@ QSizeF ChartLogValueAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constraint
else
ticksList.append(QString(" "));
qreal width = 0;
+ // Height of vertical axis sizeHint indicates the maximum distance labels can extend past
+ // first and last ticks. Base height is irrelevant.
qreal height = 0;
switch (which) {
@@ -107,20 +109,23 @@ QSizeF ChartLogValueAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constraint
QRectF boundingRect = labelBoundingRect(fn, "...");
width = boundingRect.width() + labelPadding();
width += base.width();
- height = qMax(boundingRect.height(), base.height());
+ height = boundingRect.height() / 2.0;
sh = QSizeF(width, height);
break;
}
case Qt::PreferredSize: {
int labelWidth = 0;
+ int firstHeight = -1;
foreach (const QString& s, ticksList) {
QRect rect = labelBoundingRect(fn, s);
labelWidth = qMax(rect.width(), labelWidth);
- height += rect.height();
+ height = rect.height();
+ if (firstHeight < 0)
+ firstHeight = height;
}
width = labelWidth + labelPadding() + 2; //two pixels of tolerance
width += base.width();
- height = qMax(height, base.height());
+ height = qMax(height, qreal(firstHeight)) / 2.0;
sh = QSizeF(width, height);
break;
}