##// END OF EJS Templates
Fixed: axis not redrawing when labelFormat changed
Fixed: axis not redrawing when labelFormat changed

File last commit:

r2316:74962bdcee07
r2323:e9844f86b718
Show More
percentbarchartitem.cpp
123 lines | 4.6 KiB | text/x-c | CppLexer
/ src / barchart / vertical / percent / percentbarchartitem.cpp
Jani Honkonen
Add license headers
r794 /****************************************************************************
**
** Copyright (C) 2012 Digia Plc
** 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) {
topLeft = domain()->calculateGeometryPoint(QPointF(category - barWidth / 2, domain()->minY()));
bottomRight = domain()->calculateGeometryPoint(QPointF(category + barWidth / 2, domain()->minY()));
} else {
topLeft = domain()->calculateGeometryPoint(QPointF(category - barWidth / 2, 0));
bottomRight = domain()->calculateGeometryPoint(QPointF(category + barWidth / 2, 0));
}
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
New bar calculate layout
r2303 QPointF topLeft = domain()->calculateGeometryPoint(QPointF(category - barWidth/2, 100 * (value + sum)/categorySum));
QPointF bottomRight;
Marek Rosa
BarChartItems code cleanup
r2305 if (domain()->type() == AbstractDomain::XLogYDomain || domain()->type() == AbstractDomain::LogXLogYDomain)
Marek Rosa
New bar calculate layout
r2303 bottomRight = domain()->calculateGeometryPoint(QPointF(category + barWidth/2, set ? 100 * sum/categorySum : domain()->minY()));
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 else
Marek Rosa
New bar calculate layout
r2303 bottomRight = domain()->calculateGeometryPoint(QPointF(category + barWidth/2, set ? 100 * sum/categorySum : 0));
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