##// END OF EJS Templates
Doc: added spec about folder from which qmake must be run...
Doc: added spec about folder from which qmake must be run Change-Id: I291b93e402b43b8f960350b410474e7aa1b031f1 Task-number: QTBUG-45905 Reviewed-by: Martin Smith <martin.smith@digia.com>

File last commit:

r2776:bc1f6aa59d42
r2792:84107c5dfb2a
Show More
chartvalueaxisx.cpp
128 lines | 4.2 KiB | text/x-c | CppLexer
/ src / charts / axis / valueaxis / chartvalueaxisx.cpp
Marek Rosa
Added Chart classes for value and categories axis
r1555 /****************************************************************************
**
Titta Heikkala
Copyright header changes...
r2776 ** Copyright (C) 2015 The Qt Company Ltd
Marek Rosa
Added Chart classes for value and categories axis
r1555 ** All rights reserved.
Titta Heikkala
Copyright header changes...
r2776 ** For any questions to The Qt Company, please use contact form at http://qt.io
Marek Rosa
Added Chart classes for value and categories axis
r1555 **
Titta Heikkala
Updated license headers...
r2740 ** This file is part of the Qt Charts module.
Marek Rosa
Added Chart classes for value and categories axis
r1555 **
Titta Heikkala
Updated license headers...
r2740 ** Licensees holding valid commercial license for Qt may use this file in
** accordance with the Qt License Agreement provided with the Software
** or, alternatively, in accordance with the terms contained in a written
Titta Heikkala
Copyright header changes...
r2776 ** agreement between you and The Qt Company.
Marek Rosa
Added Chart classes for value and categories axis
r1555 **
** If you have questions regarding the use of this file, please use
Titta Heikkala
Updated license headers...
r2740 ** contact form at http://qt.io
Marek Rosa
Added Chart classes for value and categories axis
r1555 **
****************************************************************************/
Titta Heikkala
Fix include syntax...
r2714 #include <private/chartvalueaxisx_p.h>
#include <QtCharts/QAbstractAxis>
#include <private/chartpresenter_p.h>
#include <QtCharts/QValueAxis>
#include <private/abstractchartlayout_p.h>
#include <QtWidgets/QGraphicsLayout>
#include <QtCore/QtMath>
#include <QtCore/QDebug>
Marek Rosa
Added Chart classes for value and categories axis
r1555
Michal Klocek
Resubmit commit 394f63738c11558ae410383fbf2403f57fca4bf8 due to too many merge confilcts
r2106
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_BEGIN_NAMESPACE
Marek Rosa
Added Chart classes for value and categories axis
r1555
Miikka Heikkinen
Add Polar chart support...
r2483 ChartValueAxisX::ChartValueAxisX(QValueAxis *axis, QGraphicsItem *item )
Michal Klocek
Refactors internals...
r2273 : HorizontalAxis(axis, item),
m_axis(axis)
Marek Rosa
Added Chart classes for value and categories axis
r1555 {
Miikka Heikkinen
Add Polar chart support...
r2483 QObject::connect(m_axis, SIGNAL(tickCountChanged(int)), this, SLOT(handleTickCountChanged(int)));
QObject::connect(m_axis, SIGNAL(labelFormatChanged(QString)), this, SLOT(handleLabelFormatChanged(QString)));
Marek Rosa
Added Chart classes for value and categories axis
r1555 }
Marek Rosa
renamed QValueAxis related files
r1805 ChartValueAxisX::~ChartValueAxisX()
Marek Rosa
Added Chart classes for value and categories axis
r1555 {
}
Marek Rosa
renamed QValueAxis related files
r1805 QVector<qreal> ChartValueAxisX::calculateLayout() const
Marek Rosa
Added Chart classes for value and categories axis
r1555 {
Titta Heikkala
Qt Charts project file structure change...
r2712 int tickCount = m_axis->tickCount();
Michal Klocek
Refactors internals...
r2273
Q_ASSERT(tickCount >= 2);
Marek Rosa
Added Chart classes for value and categories axis
r1555
QVector<qreal> points;
Michal Klocek
Refactors internals...
r2273 points.resize(tickCount);
Marek Rosa
Added Chart classes for value and categories axis
r1555
Jani Honkonen
src folder: another massive victory for coding style police
r2131 const QRectF &gridRect = gridGeometry();
Miikka Heikkinen
Fix int-qreal rounding errors in axislayout calculations...
r2447 const qreal deltaX = gridRect.width() / (qreal(tickCount) - 1.0);
for (int i = 0; i < tickCount; ++i)
points[i] = qreal(i) * deltaX + gridRect.left();
Marek Rosa
Added Chart classes for value and categories axis
r1555 return points;
}
Marek Rosa
renamed QValueAxis related files
r1805 void ChartValueAxisX::updateGeometry()
Marek Rosa
Added Chart classes for value and categories axis
r1555 {
Miikka Heikkinen
Add Polar chart support...
r2483 const QVector<qreal>& layout = ChartAxisElement::layout();
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (layout.isEmpty())
return;
Miikka Heikkinen
Add Polar chart support...
r2483 setLabels(createValueLabels(min(), max(), layout.size(), m_axis->labelFormat()));
Michal Klocek
Refactors axis updateGeometry handling...
r2111 HorizontalAxis::updateGeometry();
Marek Rosa
Added Chart classes for value and categories axis
r1555 }
Michal Klocek
Refactors internals...
r2273 void ChartValueAxisX::handleTickCountChanged(int tick)
Michal Klocek
Refactors Domain and Axis...
r1698 {
Titta Heikkala
Qt Charts project file structure change...
r2712 Q_UNUSED(tick);
Michal Klocek
Fixes missing layout updated on ticks,base and format calls
r2333 QGraphicsLayoutItem::updateGeometry();
Michal Klocek
Refactors internals...
r2273 if(presenter()) presenter()->layout()->invalidate();
Michal Klocek
Refactors Domain and Axis...
r1698 }
Marek Rosa
Fixed: axis not redrawing when labelFormat changed
r2323 void ChartValueAxisX::handleLabelFormatChanged(const QString &format)
{
Q_UNUSED(format);
Michal Klocek
Fixes missing layout updated on ticks,base and format calls
r2333 QGraphicsLayoutItem::updateGeometry();
Marek Rosa
Fixed: axis not redrawing when labelFormat changed
r2323 if(presenter()) presenter()->layout()->invalidate();
}
Jani Honkonen
src folder: another massive victory for coding style police
r2131 QSizeF ChartValueAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const
Michal Klocek
Refactors layout...
r1965 {
Q_UNUSED(constraint)
QSizeF sh;
Michal Klocek
Refactors ChartAxis...
r2138 QSizeF base = HorizontalAxis::sizeHint(which, constraint);
Michal Klocek
Refactors internals...
r2273 QStringList ticksList = createValueLabels(min(),max(),m_axis->tickCount(),m_axis->labelFormat());
Miikka Heikkinen
Fix vanishing labels for first and last ticks....
r2443 // Width of horizontal axis sizeHint indicates the maximum distance labels can extend past
// first and last ticks. Base width is irrelevant.
Jani Honkonen
src folder: another massive victory for coding style police
r2131 qreal width = 0;
qreal height = 0;
Michal Klocek
Refactors layout...
r1965
Marek Rosa
Multiaxis support...
r2093 switch (which) {
Michal Klocek
test better layout calcuation
r2353 case Qt::MinimumSize: {
Titta Heikkala
Qt Charts project file structure change...
r2712 QRectF boundingRect = ChartPresenter::textBoundingRect(axis()->labelsFont(),
QStringLiteral("..."),
axis()->labelsAngle());
Miikka Heikkinen
Fix vanishing labels for first and last ticks....
r2443 width = boundingRect.width() / 2.0;
Miikka Heikkinen
Fix multiline axis label positioning....
r2534 height = boundingRect.height() + labelPadding() + base.height() + 1.0;
Miikka Heikkinen
Fix axis sizehints when labels are angled...
r2412 sh = QSizeF(width, height);
Michal Klocek
test better layout calcuation
r2353 break;
}
case Qt::PreferredSize: {
Miikka Heikkinen
Fix multiline axis label positioning....
r2534 qreal labelHeight = 0.0;
qreal firstWidth = -1.0;
Miikka Heikkinen
Fix axis sizehints when labels are angled...
r2412 foreach (const QString& s, ticksList) {
Miikka Heikkinen
Added HTML support for various text items...
r2539 QRectF rect = ChartPresenter::textBoundingRect(axis()->labelsFont(), s, axis()->labelsAngle());
Miikka Heikkinen
Fix axis sizehints when labels are angled...
r2412 labelHeight = qMax(rect.height(), labelHeight);
Miikka Heikkinen
Fix vanishing labels for first and last ticks....
r2443 width = rect.width();
Miikka Heikkinen
Fix multiline axis label positioning....
r2534 if (firstWidth < 0.0)
Miikka Heikkinen
Fix vanishing labels for first and last ticks....
r2443 firstWidth = width;
Michal Klocek
test better layout calcuation
r2353 }
Miikka Heikkinen
Fix multiline axis label positioning....
r2534 height = labelHeight + labelPadding() + base.height() + 1.0;
width = qMax(width, firstWidth) / 2.0;
Miikka Heikkinen
Fix axis sizehints when labels are angled...
r2412 sh = QSizeF(width, height);
Michal Klocek
test better layout calcuation
r2353 break;
}
default:
Miikka Heikkinen
Fix axis sizehints when labels are angled...
r2412 break;
Marek Rosa
Multiaxis support...
r2093 }
return sh;
Michal Klocek
Refactors layout...
r1965 }
Michal Klocek
Refactors internals...
r2273 #include "moc_chartvalueaxisx_p.cpp"
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_END_NAMESPACE