##// END OF EJS Templates
Fix lingering visible shades from High Contrast theme...
Fix lingering visible shades from High Contrast theme Task-number: QTRD-1926 Reviewed-by: Mika Salmela

File last commit:

r2432:53927f716a3d
r2450:923279d5fb26
Show More
percentbarchartitem.cpp
129 lines | 4.8 KiB | text/x-c | CppLexer
/ src / barchart / vertical / percent / percentbarchartitem.cpp
Jani Honkonen
Add license headers
r794 /****************************************************************************
**
Miikka Heikkinen
Fixed the copyright year 2012 -> 2013
r2432 ** Copyright (C) 2013 Digia Plc
Jani Honkonen
Add license headers
r794 ** 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$
**
****************************************************************************/
sauimone
combined barpresenterbase and barpresenter. renamed barchartpresenters to barchartitems
r666 #include "percentbarchartitem_p.h"
sauimone
renamed bar.h to bar_p.h
r118 #include "bar_p.h"
sauimone
renamed barseries files to abstractbarseries
r1586 #include "qabstractbarseries_p.h"
sauimone
Added pen & brush to QBarSet
r214 #include "qbarset.h"
sauimone
Removed QPointF from QBarSet
r1580 #include "qbarset_p.h"
sauimone
percent bar chart
r101
QTCOMMERCIALCHART_BEGIN_NAMESPACE
Michal Klocek
Refactors internals...
r2273 PercentBarChartItem::PercentBarChartItem(QAbstractBarSeries *series, QGraphicsItem* item) :
AbstractBarChartItem(series, item)
sauimone
percent bar chart
r101 {
}
Marek Rosa
Bar animations refactored
r2316 void PercentBarChartItem::initializeLayout()
{
qreal categoryCount = m_series->d_func()->categoryCount();
qreal setCount = m_series->count();
qreal barWidth = m_series->d_func()->barWidth();
m_layout.clear();
for(int category = 0; category < categoryCount; category++) {
for (int set = 0; set < setCount; set++) {
QRectF rect;
QPointF topLeft;
QPointF bottomRight;
if (domain()->type() == AbstractDomain::XLogYDomain || domain()->type() == AbstractDomain::LogXLogYDomain) {
Marek Rosa
Negative values with log axis handled
r2356 topLeft = domain()->calculateGeometryPoint(QPointF(category - barWidth / 2, domain()->minY()), m_validData);
bottomRight = domain()->calculateGeometryPoint(QPointF(category + barWidth / 2, domain()->minY()), m_validData);
Marek Rosa
Bar animations refactored
r2316 } else {
Marek Rosa
Negative values with log axis handled
r2356 topLeft = domain()->calculateGeometryPoint(QPointF(category - barWidth / 2, 0), m_validData);
bottomRight = domain()->calculateGeometryPoint(QPointF(category + barWidth / 2, 0), m_validData);
Marek Rosa
Bar animations refactored
r2316 }
Marek Rosa
Negative values with log axis handled
r2356 if (!m_validData)
return;
Marek Rosa
Bar animations refactored
r2316 rect.setTopLeft(topLeft);
rect.setBottomRight(bottomRight);
m_layout.append(rect.normalized());
}
}
}
sauimone
animations to stacked and percent barchart
r694 QVector<QRectF> PercentBarChartItem::calculateLayout()
sauimone
percent bar chart
r101 {
sauimone
animations to stacked and percent barchart
r694 QVector<QRectF> layout;
sauimone
bug fix in bar charts. Crashed, if layout was set before data. Also integrated to test app.
r165
sauimone
removed categories from barseries. categories are now only on axis
r1321 // Use temporary qreals for accuracy
qreal categoryCount = m_series->d_func()->categoryCount();
Tero Ahola
Minor modifications to properties of abstract, area and bar series
r1462 qreal setCount = m_series->count();
Marek Rosa
New bar calculate layout
r2303 qreal barWidth = m_series->d_func()->barWidth();
sauimone
correct x-positioning for barcharts
r1228
Marek Rosa
New bar calculate layout
r2303 for(int category = 0; category < categoryCount; category++) {
qreal sum = 0;
qreal categorySum = m_series->d_func()->categorySum(category);
for (int set = 0; set < setCount; set++) {
qreal value = m_series->barSets().at(set)->at(category);
Marek Rosa
BarChartItems code cleanup
r2305 QRectF rect;
Marek Rosa
Negative values with log axis handled
r2356 QPointF topLeft = domain()->calculateGeometryPoint(QPointF(category - barWidth/2, 100 * (value + sum)/categorySum), m_validData);
Marek Rosa
New bar calculate layout
r2303 QPointF bottomRight;
Marek Rosa
BarChartItems code cleanup
r2305 if (domain()->type() == AbstractDomain::XLogYDomain || domain()->type() == AbstractDomain::LogXLogYDomain)
Marek Rosa
Negative values with log axis handled
r2356 bottomRight = domain()->calculateGeometryPoint(QPointF(category + barWidth/2, set ? 100 * sum/categorySum : domain()->minY()), m_validData);
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 else
Marek Rosa
Negative values with log axis handled
r2356 bottomRight = domain()->calculateGeometryPoint(QPointF(category + barWidth/2, set ? 100 * sum/categorySum : 0), m_validData);
if (!m_validData)
return QVector<QRectF>();
Marek Rosa
New bar calculate layout
r2303 rect.setTopLeft(topLeft);
rect.setBottomRight(bottomRight);
Marek Rosa
Bar animations refactored
r2316 layout.append(rect.normalized());
Marek Rosa
New bar calculate layout
r2303 sum +=value;
sauimone
Floating values to bar charts
r263 }
sauimone
refactored barcharts. layout to derived classess other funtionality to base class
r126 }
Marek Rosa
BarChartItems code cleanup
r2305 return layout;
}
Marek Rosa
New bar calculate layout
r2303
Marek Rosa
BarChartItems code cleanup
r2305 void PercentBarChartItem::handleUpdatedBars()
{
// Handle changes in pen, brush, labels etc.
int categoryCount = m_series->d_func()->categoryCount();
int setCount = m_series->count();
int itemIndex(0);
Marek Rosa
New bar calculate layout
r2303
Marek Rosa
BarChartItems code cleanup
r2305 for (int category = 0; category < categoryCount; category++) {
for (int set = 0; set < setCount; set++) {
QBarSetPrivate *barSet = m_series->d_func()->barsetAt(set)->d_ptr.data();
Bar *bar = m_bars.at(itemIndex);
bar->setPen(barSet->m_pen);
bar->setBrush(barSet->m_brush);
bar->update();
QGraphicsSimpleTextItem *label = m_labels.at(itemIndex);
int p = m_series->d_func()->percentageAt(set, category) * 100;
QString vString(QString::number(p));
vString.truncate(3);
vString.append("%");
label->setText(vString);
label->setFont(barSet->m_labelFont);
label->setBrush(barSet->m_labelBrush);
label->update();
itemIndex++;
}
}
sauimone
percent bar chart
r101 }
sauimone
combined barpresenterbase and barpresenter. renamed barchartpresenters to barchartitems
r666 #include "moc_percentbarchartitem_p.cpp"
sauimone
moved tooltip to presenter
r288
sauimone
percent bar chart
r101 QTCOMMERCIALCHART_END_NAMESPACE