##// END OF EJS Templates
Revert "Fix lingering visible shades from High Contrast theme"...
Revert "Fix lingering visible shades from High Contrast theme" This reverts commit 923279d5fb262b5badda1807cb7248874da85037. Fixing lingering shades from High Contrast theme needs to be rethought, reverting the fix in the meantime. Task-number: QTRD-1947 Change-Id: Iff6c50780ba6c4cd68cc9a27d06f4e5badd63cf1 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>

File last commit:

r2443:5b27b7b1d72a RC2_1.2.1
r2476:34f67c64ed95
Show More
chartcategoryaxisx.cpp
116 lines | 3.2 KiB | text/x-c | CppLexer
/ src / axis / categoryaxis / chartcategoryaxisx.cpp
Marek Rosa
QIntervalsAxis working somewhat
r1701 /****************************************************************************
**
Miikka Heikkinen
Fixed the copyright year 2012 -> 2013
r2432 ** Copyright (C) 2013 Digia Plc
Marek Rosa
QIntervalsAxis working somewhat
r1701 ** 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$
**
****************************************************************************/
Marek Rosa
Renamed QCategoryAxis related files
r1817 #include "chartcategoryaxisx_p.h"
#include "qcategoryaxis.h"
Marek Rosa
QIntervalsAxis working somewhat
r1701 #include "qabstractaxis.h"
#include "chartpresenter_p.h"
#include <QGraphicsLayout>
#include <QFontMetrics>
Michal Klocek
Refactor animator...
r1735 #include <qmath.h>
Marek Rosa
QIntervalsAxis working somewhat
r1701
QTCOMMERCIALCHART_BEGIN_NAMESPACE
Michal Klocek
Refactors internals...
r2273 ChartCategoryAxisX::ChartCategoryAxisX(QCategoryAxis *axis, QGraphicsItem* item)
: HorizontalAxis(axis, item, true),
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_axis(axis)
Marek Rosa
QIntervalsAxis working somewhat
r1701 {
}
Marek Rosa
Renamed QCategoryAxis related files
r1817 ChartCategoryAxisX::~ChartCategoryAxisX()
Marek Rosa
QIntervalsAxis working somewhat
r1701 {
}
Marek Rosa
Renamed QCategoryAxis related files
r1817 QVector<qreal> ChartCategoryAxisX::calculateLayout() const
Marek Rosa
QIntervalsAxis working somewhat
r1701 {
Michal Klocek
Refactors axis updateGeometry handling...
r2111 int tickCount = m_axis->categoriesLabels().count() + 1;
Marek Rosa
QIntervalsAxis working somewhat
r1701 QVector<qreal> points;
Marek Rosa
Fixes and tests to Interval axis
r1708
if (tickCount < 2)
return points;
Jani Honkonen
src folder: another massive victory for coding style police
r2131 const QRectF &gridRect = gridGeometry();
Michal Klocek
Fixes categoryaxis sizeHints
r2136 qreal range = max() - min();
Marek Rosa
Fixed range handling in categoryAxis
r1846 if (range > 0) {
points.resize(tickCount);
Michal Klocek
Refactors axis updateGeometry handling...
r2111 qreal scale = gridRect.width() / range;
Jani Honkonen
src folder: another massive victory for coding style police
r2131 for (int i = 0; i < tickCount; ++i) {
Marek Rosa
Fixed range handling in categoryAxis
r1846 if (i < tickCount - 1) {
Miikka Heikkinen
Fix positioning errors with category ticks...
r2436 qreal x = (m_axis->startValue(m_axis->categoriesLabels().at(i)) - min()) * scale + gridRect.left();
Marek Rosa
Fixed range handling in categoryAxis
r1846 points[i] = x;
} else {
Miikka Heikkinen
Fix positioning errors with category ticks...
r2436 qreal x = (m_axis->endValue(m_axis->categoriesLabels().at(i - 1)) - min()) * scale + gridRect.left();
Marek Rosa
Fixed range handling in categoryAxis
r1846 points[i] = x;
}
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Marek Rosa
Fixed range handling in categoryAxis
r1846 }
Michal Klocek
Refactors axis updateGeometry handling...
r2111
Marek Rosa
QIntervalsAxis working somewhat
r1701 return points;
}
Marek Rosa
Renamed QCategoryAxis related files
r1817 void ChartCategoryAxisX::updateGeometry()
Michal Klocek
Revert "TODOs removed from code. Undo me after release"...
r2407 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 setLabels(m_axis->categoriesLabels() << "");
Michal Klocek
Refactors axis updateGeometry handling...
r2111 HorizontalAxis::updateGeometry();
Marek Rosa
QIntervalsAxis working somewhat
r1701 }
Marek Rosa
Renamed QCategoryAxis related files
r1817 void ChartCategoryAxisX::handleAxisUpdated()
Marek Rosa
Added posibility to replace interval's label in QIntervalsAxis
r1777 {
updateGeometry();
}
Jani Honkonen
src folder: another massive victory for coding style police
r2131 QSizeF ChartCategoryAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const
Michal Klocek
Refactors layout...
r1965 {
Q_UNUSED(constraint)
Michal Klocek
Refactors axis updateGeometry handling...
r2111 QFontMetrics fn(font());
Michal Klocek
Refactors layout...
r1965 QSizeF sh;
Michal Klocek
Refactors ChartAxis...
r2138 QSizeF base = HorizontalAxis::sizeHint(which, constraint);
Michal Klocek
Fixes categoryaxis sizeHints
r2136 QStringList ticksList = m_axis->categoriesLabels();
Miikka Heikkinen
Fix vanishing labels for first and last ticks....
r2443 qreal width = 0; // Width is irrelevant for X axes with interval labels
Jani Honkonen
src folder: another massive victory for coding style police
r2131 qreal height = 0;
Michal Klocek
Refactors layout...
r1965
switch (which) {
Miikka Heikkinen
Fix axis sizehints when labels are angled...
r2412 case Qt::MinimumSize: {
QRectF boundingRect = labelBoundingRect(fn, "...");
height = boundingRect.height() + labelPadding();
Jani Honkonen
src folder: another massive victory for coding style police
r2131 height += base.height();
sh = QSizeF(width, height);
Michal Klocek
Refactors layout...
r1965 break;
Miikka Heikkinen
Fix axis sizehints when labels are angled...
r2412 }
Jani Honkonen
src folder: another massive victory for coding style police
r2131 case Qt::PreferredSize: {
Miikka Heikkinen
Fix axis sizehints when labels are angled...
r2412 int labelHeight = 0;
foreach (const QString& s, ticksList) {
QRect rect = labelBoundingRect(fn, s);
labelHeight = qMax(rect.height(), labelHeight);
Michal Klocek
Refactors layout...
r1965 }
Miikka Heikkinen
Fix axis sizehints when labels are angled...
r2412 height = labelHeight + labelPadding();
Jani Honkonen
src folder: another massive victory for coding style police
r2131 height += base.height();
sh = QSizeF(width, height);
break;
}
default:
Michal Klocek
Refactors layout...
r1965 break;
}
return sh;
}
Marek Rosa
QIntervalsAxis working somewhat
r1701 QTCOMMERCIALCHART_END_NAMESPACE